كيفية بناء نظام تعقب او تتبع الزوار لموقع الويب الخاص بك

 كيفية تصميم  نظام تتبع الزوار  لموقع الويب الخاص بك

إذا كان لديك موقع على شبكة الانترنت، وربما كنت ترغب في معرفة من يزور موقع لك. قد ترغب في معرفة عدد الزوار، وأين هم من، وكيف أنها لم تحصل على موقع الويب الخاص بك، وما إلى ذلك هناك بعض الخيارات المتاحة على الانترنت تتبع، مثل غوغل تحليلات أو إذا كنت تستخدم خدمة استضافة أنها قد توفر لك بعض الإحصاءات . ولكن ما إذا كنت ترغب في تعقب الشخصية التي يظهر لك ما تحتاج فقط؟ في هذا البرنامج التعليمي سوف تظهر لك كيفية بناء واحد!
كيفية بناء نظام تعقب الزائر لايف لموقع الويب الخاص بك

ما نحن ذاهبون لبناء اليوم؟

سأريكم كيفية بناء صغير PHP السيناريو تعقب الذي يحفظ المعلومات التالية حول زوار موقعك في قاعدة بيانات: عنوان IP الخاص بهم، وموقعها (البلد والمدينة) على أساس الملكية الفكرية الخاصة بهم، وتاريخ ووقت زيارتهم، وبعض معلومات عن المتصفح التي استخدموها، ونظام التشغيل، والمرجعية (إذا كانت النقر على وصلة على موقع آخر للحصول على يدكم، وسوف تعرف الموقع الذي أحالتهم)، وسلسلة الاستعلام الذي يبحثون عنه في حالة وأحالهم 1 محرك البحث. وسوف تظهر لك أيضا كيفية التحقق إذا كان الزائر كان بوت (هذه هي تطبيقات البرامج التي تعمل المهام الآلي عبر الإنترنت). سأريكم كيفية كتابة هذا السيناريو الصغيرة وأيضا صفحة مع بعض الإحصاءات من قاعدة البيانات.
يمكنك تحميل شفرة المصدر هنا . يمكنك ان ترى أيضا عرض حي هنا .
أولا، نحن بحاجة إلى جدول في قاعدة البيانات للاحتفاظ معلومات حول الزوار. سوف نطلق عليه "تعقب".
سنحتاج الأعمدة التالية في الجدول: الهوية، والتاريخ، والوقت، والملكية الفكرية، البلد، المدينة، QUERY_STRING، http_referer، http_user_agent، isbot (وهذا سوف يعقد القيمة 1 هو المستخدم بوت و 0 خلاف ذلك).
وهنا يكمن الأمر SQL اللازمة لإنشاء الجدول:
1CREATE TABLE IF NOT EXISTS `tracker` (
2`id` int(11) NOT NULL auto_increment,
3`date` date NOT NULL,
4`time` time NOT NULL,
5`ip` text NOT NULL,
6`country` text NOT NULL,
7`city` text NOT NULL,
8`query_string` text NOT NULL,
9`http_referer` text NOT NULL,
10`http_user_agent` text NOT NULL,
11`isbot` int(11) NOT NULL,
12PRIMARY KEY  (`id`)
13);
التالي، وسوف نحتاج الى PHP السيناريو الصغيرة التي يكتشف كل المعلومات المطلوبة وإدراجها في قاعدة البيانات.
وهنا هي الأشياء التي سوف تحتاج إلى القيام به:
  • الحصول على المعلومات اللازمة من الخادم
  • العثور على موقع على أساس الملكية الفكرية عنوان
  • معرفة ما اذا كان الزائر هو بوت
  • إدراج كل شيء في database
وهنا رمز لاسترداد المعلومات من الملقم:
1$ip = $_SERVER['REMOTE_ADDR'];
2$query_string = $_SERVER['QUERY_STRING'];
3$http_referer = $_SERVER['HTTP_REFERER'];
4$http_user_agent = $_SERVER['HTTP_USER_AGENT'];
$_ملقم هو مجموعة من المعلومات التي تحتوي على مثل رؤوس الصفحات، والمسارات، والمواقع النصي. يتم إنشاء الإدخالات في هذه المجموعة من قبل خادم الويب. سنقوم حفظ الملكية الفكرية للزائر ($ _SERVER ['REMOTE_ADDR'])، والمرجع ($ _SERVER ['HTTP_REFERER'])، والمستخدم سلسلة الاستعلام لبحث ($ _SERVER ['QUERY_STRING'])، وبيانات حول زوار المتصفح ونظام التشغيل (SERVER ['HTTP_USER_AGENT']).
وظيفة لمعرفة ما اذا كان الزائر هو بوت يبدو مثل هذا:
1وظيفة is_bot()
2{
3$botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi",
4"looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory",
5"Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot",
6"crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp",
7"msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz",
8"Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot",
9"Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot",
10"Butterfly","Twitturls","Me.dium","Twiceler");
11foreach($botlist as $bot)
12{
13if(strpos($_SERVER['HTTP_USER_AGENT'], $bot) !== false)
14return true;
15}
16return false;
17}
لقد وجدت قائمة من السير. للتحقق من هو الزائر هو بوت، ونحن بحاجة إلى التحقق من $ _SERVER ['HTTP_USER_AGENT'] متغير.
معرفة تفاصيل موقع باستخدام عنوان IP هو قليلا أكثر صعوبة. سنحتاج لتقديم طلب إلى خادم يرى أن هذا النوع من المعلومات، والحصول على نتيجة من الخادم (يرسل ملف XML)، تحليل النتائج والحصول على أسماء البلدان والمدن.
The php code looks like this:
2$init = curl_init($url);
3curl_setopt($init, CURLOPT_RETURNTRANSFER, true);
4curl_setopt($init, CURLOPT_TIMEOUT, 10);
5$exec = curl_exec($init);
6$info = curl_getinfo($init);
7curl_close($init);
8if($info['http_code'] === 200)
9{
10/ / تحليل XML والحصول على البلد والمدينة من EXEC
11$objDOM = new DOMDocument();
12$objDOM->loadXML($exec);
13
14$country1 = $objDOM->getElementsByTagName("CountryName");
15$country  = $country1->item(0)->nodeValue;
16$city1 = $objDOM->getElementsByTagName("City");
17$city  = $city1->item(0)->nodeValue;
18}
نحن أولا تعريف عنوان الموقع من الخادم (http://ipinfodb.com/ip_query.php)، وإرسال طلب إلى أنه مع عنوان IP الزوار. ونحن في طريقنا لاستخدام حليقة لإرسال طلب إلى ملقم واسترداد النتيجة. حليقة هو أداة لنقل البيانات باستخدام بروتوكولات مختلفة. نحن تهيئة أول جلسة، تعيين معلمات قليلة ومن ثم إرسال الطلب. سيتم حفظ النتيجة في المتغير $ EXEC. النتيجة من الخادم هو ملف XML. نحن بحاجة إلى تحليل الأمر وتحصل على قيمتين، البلد والمدينة. وتوجد هناك القيم في "CountryName" و "المدينة" به. نحن في طريقنا للاستخدامDOMDocument class to parse the xml file.
وضعنا المتغير $ isbot إلى 1 إذا كان الزائر هو بوت و 0 خلاف ذلك. وسوف نتمكن من إنقاذ هذا المتغير في قاعدة البيانات.
1if (is_bot())
2$isbot = 1;
3else
4$isbot = 0;
We’ll get the system date and time
1$date = date("Y-m-d");
2$time = date("H:i:s");
لدينا استرجاع جميع المعلومات التي يريد! التالي، سيكون لدينا لإضافة كافة المعلومات في قاعدة البيانات.
نحن بحاجة لتعيين خادم قاعدة البيانات، اسم قاعدة البيانات، اسم المستخدم وكلمة المرور، ثم الاتصال بخادم قاعدة البيانات وقاعدة البيانات.
1$server = "SERVER NAME";
2$username = "USER NAME";
3$password = "PASSWORD";
4$database = "DATABASE NAME";
5$connId = mysql_connect($server,$username,$password) or die("Cannot connect to server");
6$selectDb = mysql_select_db($database,$connId) or die("Cannot connect to database");
Then, we run the query to insert the information into the tracker table.
1$query = "insert into `tracker` (`country`,`city`,`date`, `time`, `ip`, `query_string`, `http_referer`, `http_user_agent`, `isbot`)
2values ('$country','$city','$date', '$time', '$ip', '$query_string', '$http_referer' ,'$http_user_agent' , $isbot)";
3$result = mysql_query($query);
يتم الآن حفظ كل المعلومات أردنا في قاعدة البيانات!
كل ما نحتاج الى القيام به هو الآن يشمل هذا البرنامج النصي في الصفحة الرئيسية للموقع، ويمكننا تتبع الزوار! ويمكن أن نضيف أيضا هذا السيناريو إلى الصفحات الأخرى للموقع، إضافة متغير آخر لعقد اسم الصفحة وإدراج هذا في قاعدة البيانات أيضا. بهذه الطريقة، سوف نعرف بالضبط ما لم صفحات للمستخدم تصفح على الموقع.

سوف تظهر لك أيضا كيفية إنشاء صفحة لعرض بعض الإحصاءات. هناك الكثير من الإحصاءات التي قد ترغب في عرضها باستخدام معلومات من قاعدة البيانات. سأريكم مثال صغير، والتي سوف تفعل ما يلي:
  • show the number of unique visitors
  • show a table with all the visitors
The code for this is shown below.
1<html>
2
3<head>
4    <title>Statistics</title>
5</head>
6
7<body>
8
9    <h1>Statistics</h1>
10
11    <br/><br/>
12
13    The number of unique visitors is:
14    <?php
15    // connect to the database
16
17    // fill in your databasa data here!
18    $server = "SERVER NAME";
19    $username = "USER NAME";
20    $password = "PASSWORD";
21    $database = "DATABASE NAME";
22
23    $connId = mysql_connect($server,$username,$password) or die("Cannot connect to server");
24    $selectDb = mysql_select_db($database,$connId) or die("Cannot connect to database");
25
26    // get the number of unique visitors
27    $query = "select distinct ip from tracker";
28    $result = mysql_query($query);
29    $number = mysql_num_rows($result);
30
31    // show the number
32    echo $number;
33    ?>
34
35    <br/><br/>
36
37    Site's visitors:
38    <br/><br/>
39    <table border="1">
40        <tr>
41            <th>Id</th>
42            <th>IP</th>
43            <th>Country</th>
44            <th>City</th>
45            <th>Referer</th>
46            <th>Is a bot?</th>
47        </tr>
48        <?php
49        // get the list of visitors
50        $query = "select * from tracker";
51        $result = mysql_query($query);
52        while ($row = mysql_fetch_array($result))
53        {
54        ?>
55            <tr>
56                <td><?php echo $row['id'];?></td>
57                <td><?php echo $row['ip'];?></td>
58                <td><?php echo $row['country'];?></td>
59                <td><?php echo $row['city'];?></td>
60                <td><?php echo $row['http_referer'];?></td>
61                <td><?php if ($row['isbot']==1) echo "yes"; else echo "no";?></td>
62            </tr>
63        <?php
64        }
65        ?>
66    </table>
67
68</body>
69
70</html>
ما فعلناه كان لاسترجاع المعلومات من قاعدة البيانات باستخدام المناسبة استعلامات SQL وطباعة المعلومات على الشاشة.:
وهذا هو عن ذلك! لدينا الآن تعقب زائر!
Iو كانت لديك أسئلة أو تعليقات أو حاجة مزيد من التفاصيل عن شيء، اسمحوا لي ان اعرف. سأكون سعيدا للمساعدة!

1 تعليقات

أحدث أقدم