ببخشید اگه دیر آپ میکنم.
امروز براتون میخوام آموزش ساخت آخرین مراجعین رو بزارم، نمونشم در این بلوک کناری قرار داره.
خوب اول یک بانک اطلاعاتی مثلا با نام refer_end بسازید، بعد دستورات sql زیر رو درون بانک اطلاعاتی مورد نظر درج کنید تا جداول مورد نظر ساخته بشن.
-- -- Table structure for table `refer` -- CREATE TABLE `refer` ( `ip` int(100) NOT NULL, `page` varchar(225) NOT NULL, `date` varchar(225) NOT NULL, `back_page` varchar(225) NOT NULL, `browser` varchar(225) NOT NULL )
سپس یک فایل php مثلا با نام refer_end.php میسازین و شروع میکنین به نوشتن دستورات…
ادامه دستورات در (دنباله)
ابتدا به بانک اطلاعاتی مورد نظر متصل میشین
<?php $result = mysql_connect("localhost", "root", ""); mysql_select_db("refer_end");
بعدش دوتا متغییر برای تنظیمات برناممون اضافه میکنیم.
// تنظیمات $view = 10; $out = 2592000;
1. متغییر اولی تعیین میکنه یه میخوایین چه تعداد نمایش داده بشه، مثلا من مقدار ۱۰ رو بهش دادم که ۱۰ تای آخر رو به نمایش میزاره
۲/ متغییر دومی واسه اینکه بعد از یه مدت دادههایی که در بانک اطلاعاتی بودن رو پاک می کنه، چون ما به ۱۰ تا یا ۲۰ تای آخر نیاز داریم و نمیخواییم بانک اطلاعاتیمون رو سنگین کنیم، الان من به این متغییر مقدار ۲۵۹۲۰۰۰ رو دادم که بر حسب ثانیست و حدود ۱ ماه میشه، که بعد از یک ماه داده ها حذف میشن و دوباره شروع به کار میکنه.
خوب دستور بعدی مشخصات بازدید کنندگان رو در بانک اطلاعاتی درج میکنه.
// درج داده ها در بانک اطلاعاتی if (isset($_SERVER['HTTP_REFERER'])) { mysql_query("insert into `refer` (ip, page, date, back_page, browser) values ( '".$_SERVER['REMOTE_ADDR']."', '".$_SERVER['REQUEST_URI']."', '".time()."', '".$_SERVER['HTTP_REFERER']."', '".$_SERVER['HTTP_USER_AGENT']."' ) "); }
اول چک میکنه که آیا یک کاربر از صفحه ای به این صفحه مراجعه کرده یا نه، اگه از سایتی یا صفحهای دیگه مراجعه کرده باشه، در بانک اطلاعاتی مشخصاتش ذخیره میشه.
این دستور هم دادهها رو بعد از زمان مشخص شده پاک میکنه.
//پاک کردن داده ها از بانک اطلاعاتی بعد از یک مدت مشخص $timeout = time() - $out; mysql_query("DELETE FROM `refer` WHERE `date` < $timeout");
خوب در آخر سرم دادهها رو به نمایش میزاریم.
اول دادهها رو از بانک اطلاعاتی میگیریم، سپس چک میکنیم که آدرس مراجعه کننده اولش http:// داره یا نه، اگه نداشت اولش http:// رو میچسبونه و بعد با استفاده از تابع split و با توجه به ‘/’ تکه تکه میکنه آدرسو و سومین تکه رو جدا میکنه و به نمایش میزاره، به این مثال توجه کنین http://www.mjm3d.com/123 خوب اگه تیکه تیکش کنیم اولی میشه http: و بعدش دومی هم که مقداری نداره و سومی هم که www.mjm3d.com میشه.
//گرفتن داده ها از بانک اطلاعاتی و نمایش داده ها $result = mysql_query ("SELECT * FROM `refer` ORDER BY `date` DESC LIMIT ".$view); echo "<ul>"; while ($row = mysql_fetch_array($result)) { $ref_long = $row['back_page']; if (strtoupper(substr($ref_long, 0, 7)) != "HTTP://") { $ref_long = "http://" . $ref_long; } $sp = split("/", $ref_long); $ref_short = $sp[2]; echo "<li> <a title=\"".date('j F Y - h:i A', $row['date'])."\" href=\"".$ref_long."\"> ".$ref_short." </a> </li>"; } echo "</ul>"; ?>
این هم سورس کامل + فایل sql
لینک دانلود: refer_end.zip
حجم:۲ kb
پسورد: mjm3d.com
سه شنبه ۲۳ تیر ۱۳۸۸ - ۰۱:۵۸ بعد از ظهر
عالی بود.
چهارشنبه ۲۴ تیر ۱۳۸۸ - ۰۱:۰۷ بعد از ظهر
مرسی آقا مازیار
سه شنبه ۶ مرداد ۱۳۸۸ - ۱۲:۲۳ قبل از ظهر
خوب بود فقط دو نکته.
اگر از خود سایت به خود سایت لینک بشه نیازی نیست در لیست مراجعین ظاهر بشه و دیگه اینکه چون ممکنه عرض بلوک محدود باشه شاید بهتر باشه یه تیکه اون نشون داده بشه و باقیش سه نقطه بزاره.
لینک پروژه وردپرس فارسی هم زیر وبلاگت بزار.
چهارشنبه ۷ مرداد ۱۳۸۸ - ۱۲:۴۲ قبل از ظهر
ممنون آقا نبی
—
بله این دو نکته رو میدونم، تو فکرش هم بودم، ولی عجله دادشتم، دیگه این دو نکته رو توجه نکردم، بزودی در نسخه جدیدش اینها رو لحاظ میکنم.
با تشکر