PDA

View Full Version : سوال: ساخت یک سیستم آمارگیر متفاوت



soroush.r70
دوشنبه 11 اردیبهشت 1391, 13:03 عصر
مهندسین چطوری می تونم یه سیستم آمارگیر به صورت زیر درست کنم :

کنترل سایت و بازدید با رفرش از هر صفحه
- بازدید کل
بازدید دیروز
بازدید امروز
تعداد افراد آنلاین
بدون بانک اطلاعاتی و در یک فایل PHP ذخیره بشه از نوع TXT نباشه
زیر فشار بازدید خراب نشه و کم نیاره .

Hamid.RDN
دوشنبه 11 اردیبهشت 1391, 13:07 عصر
توی فایل PHP که به این راحتی ها نمیشه داده ذخیره کرد.

خوب استفاده از چند فایل TXT هم کارایی بالاتری داره هم ساده تر نوشته می شه

soroush.r70
دوشنبه 11 اردیبهشت 1391, 13:46 عصر
حالا شما در مورد سیستم بالا نمونه ای , راه حلی نداری ...؟

simple
دوشنبه 11 اردیبهشت 1391, 13:52 عصر
منظورتون چيه؟ "در یک فایل PHP ذخیره بشه"

به چه كاري مياد اين فايل.
خب شما از همون ساختار فايل تكست استفاده كن ولي پسوندش رو بذار PHP:بامزه:

soroush.r70
دوشنبه 11 اردیبهشت 1391, 14:04 عصر
منظورتون چيه؟ "در یک فایل PHP ذخیره بشه"

به چه كاري مياد اين فايل.
خب شما از همون ساختار فايل تكست استفاده كن ولي پسوندش رو بذار PHP:بامزه:



جالب بود!

حالا واقعا نمی شه که به جای اینکه این داخل تکست ذخیره بشه داخل فایل پی اچ پی ذخیره بشه.

Hamid.RDN
دوشنبه 11 اردیبهشت 1391, 14:11 عصر
میشه عزیزم چرا نشه.

فرض کن میخوای یه آرایه رو ذخیره کنی که اطلاعات نمایش توش قرار داره

این کدش میش


$data = array();

file_put_contents('MyFile.php', var_export($data, TRUE));

soroush.r70
دوشنبه 11 اردیبهشت 1391, 14:21 عصر
میشه عزیزم چرا نشه.

فرض کن میخوای یه آرایه رو ذخیره کنی که اطلاعات نمایش توش قرار داره

این کدش میش


$data = array();

file_put_contents('MyFile.php', var_export($data, TRUE));

دوست من از این روش آمارگیری زیاد اطلاعی ندارم و طریقه ساختش رو نمی دونم می تونی طبق اطلاعاتی که من در بالا گفتم یه نمونه کد بهم بدی که کارم راه بیفته متشکرم.

Hamid.RDN
دوشنبه 11 اردیبهشت 1391, 14:50 عصر
خوب دوتا فایل داریم
index.php

<?php

// Get Stats info
$stats = include 'stats.php';

$stats['TodayVisits'] = $stats['TodayVisits'] + 1;
$stats['TotalVisits'] = $stats['TotalVisits'] + 1;

// Save to PHP file
file_put_contents('stats.php', '<?php return ' . var_export($stats, TRUE) . ' ?>');

print_r($stats);

?>

و stats.php

<?php return array (
'TodayVisits' => 0,
'TotalVisits' => 0,
) ?>

با اجرای index.php اطلاعات توی فایل stats.php به صورت کد php ذخیره و خونده می شن.

Hamid.RDN
دوشنبه 11 اردیبهشت 1391, 14:51 عصر
لازم به تذکر هست که استفاده از فایل TXT به مراتب ساده تر و خوانایی بالاتری نسبت به روش فوق داره.

soroush.r70
دوشنبه 11 اردیبهشت 1391, 22:25 عصر
با تشکر از شما می تونین یه مثال از فایل txt هم بزنین که بازدید امروز- دیروز -کل - آی پی- کاربران آنلاین رو نمایش بده

Hamid.RDN
دوشنبه 11 اردیبهشت 1391, 22:27 عصر
تا آخر امشب واستون مینویسم

ravand
سه شنبه 12 اردیبهشت 1391, 10:43 صبح
بازديد امروز:

<?php
include('jdf.php');
$date=date('dmy');

mysql_connect('localhost','root','');
mysql_select_db('ravand');

$Q=mysql_query("SELECT * FROM `counter` WHERE `date`='{$date}'");
$count=mysql_num_rows($Q);
mysql_query("insert INTO `counter` (`date`,`time`) VALUES ('{$date}','".time()."') ");


mysql_close();
?>

Today We had <?php echo $count; ?> Visitors .
<br>
<?php
$date=jdate('Y/m/d h:i:s',$row['time']);
echo $date;
?>

روش ديگه :

<?php
$servername = 'localhost';
$dbname = 'search';
$user = 'root';
$pass = '';
mysql_connect($servername, $user, $pass) or die('Connection error')or die(mysql_error());
mysql_select_db($dbname) or die('Database error');
mysql_query('SET NAMES \'utf8\'');
$dbresult = mysql_result(mysql_query('SELECT COUNT(*) AS `tcount` FROM `amari` WHERE (SUBSTRING(`date`, 1, 10)=\''.date('Y-m-d').'\')'), 0, 0)or die(mysql_error());
echo 'آمار امروز : '.$dbresult;
?>


بازديد ديروز:

<?php
$servername = 'localhost';
$dbname = 'search';
$user = 'root';
$pass = '';
mysql_connect($servername, $user, $pass) or die('Connection error')or die(mysql_error());
mysql_select_db($dbname) or die('Database error');
mysql_query('SET NAMES \'utf8\'');
$dbresult = mysql_result(mysql_query('SELECT COUNT(*) AS `tcount` FROM `amari` WHERE (SUBSTRING(`date`, 1, 10)=\''.date('Y-m-d', time() - 86400).'\')'), 0, 0)or die(mysql_error());
echo 'بازديد ديروز : '.$dbresult;
?>

soroush.r70
سه شنبه 12 اردیبهشت 1391, 16:47 عصر
ravand جان اون چیزی که من می خوام با این چیزی که شما نوشتی تفاوت داره به هر حال تشکر

Hamid.RDN
چهارشنبه 13 اردیبهشت 1391, 12:30 عصر
ببخشید که یکم دیر شد.
بفرمایید:


list($today, $yesterday, $total, $timestamp) = file('sts.txt');
$total = (int)$total + 1;
$today_date = getdate();
$last_date = getdate((int)$timestamp);
if( $today_date['yday'] == $last_date['yday'])
{
$today = (int)$today +1;
}
else
{
$yesterday = (int)$today + 1;
$today = 1;
$total++;
}
$timestamp = time();
$yesterday = (int)$yesterday;
file_put_contents('sts.txt', $today."\n".$yesterday."\n".$total."\n".$timestamp);


این اسکریپت اطلاعات رو درون فایل sts.txt ذخیره می کنه که نمونه اولیشو در زیر می بینید:

0
0
0
1336032612

saadatieathar
چهارشنبه 13 اردیبهشت 1391, 13:25 عصر
یه سوال شاید بی ربط
اینکه میگن با دیتابیس بنویسید بهتره به خاطر اصولی تر بودن کار هست یا از لحاظ فنی بهتره ؟
مثلا تاثیرش رو بار ترافیکی سایت و این چیزا

Hamid.RDN
چهارشنبه 13 اردیبهشت 1391, 13:35 عصر
تنها دلایل برتری دیتابیس بر فایل TXT(در این مورد خاص) امکان نمایش اطلاعات فایل TXT به کاربر و نیاز به کد نوشتن بیشتر هست.

با این حال استفاده از فایل txt این مزایا را نسبت به دیتابیس داره:
از بین بردن سربار ناشی از اتصال به DBMS
عدم نیاز به درج و بروز رسانی اطلاعات بر روی DB و درنتیجه افزایش سرعت و کارایی

soroush.r70
جمعه 15 اردیبهشت 1391, 14:29 عصر
ببخشید که یکم دیر شد.
بفرمایید:


list($today, $yesterday, $total, $timestamp) = file('sts.txt');
$total = (int)$total + 1;
$today_date = getdate();
$last_date = getdate((int)$timestamp);
if( $today_date['yday'] == $last_date['yday'])
{
$today = (int)$today +1;
}
else
{
$yesterday = (int)$today + 1;
$today = 1;
$total++;
}
$timestamp = time();
$yesterday = (int)$yesterday;
file_put_contents('sts.txt', $today."\n".$yesterday."\n".$total."\n".$timestamp);


این اسکریپت اطلاعات رو درون فایل sts.txt ذخیره می کنه که نمونه اولیشو در زیر می بینید:

0
0
0
1336032612



سیستم آمارگیر خوبیه ولی چطوری می شه تعداد کاربران جاری - آی پی کاربر - تاریخ روز رو هم نمایش بده.

soroush.r70
یک شنبه 17 اردیبهشت 1391, 18:33 عصر
منتظر راهنمایی خوب شما

soroush.r70
دوشنبه 18 اردیبهشت 1391, 08:51 صبح
:لبخندساده: