PDA

View Full Version : Top Referring Sites



adnan
شنبه 19 دی 1383, 09:18 صبح
من برنامه ای با فایل نوشتم که همواره 12 سایتی که کاربران از آن به ما رجوع کردند را نشان دهد .
در localhost بدرستی کار می کند ولی آپلود که می کنم کار نمی کنه ! :sad2:

دوستان ! این برنامه را اگر تونستند تستش کنند و ببینند روی سرور آنها جواب میده ؟ اگر اشکالی هست به من بگید ...
2 کار باید صورت بگیرد :
1- یک شاخه بنام url که درون آن فایلی بنام url.txt ایجاد کنید . پرمیشن فایل و شاخه را هم 777 قرار دهید .

محتویات فایل url.txt :


http://localhost/;www.google.com;www.google.com;www.google.com;www. google.com;www.google.com;;

2- برنامه موردنظر این است :


<?php
$key=";";
$fp=fopen("url/url.txt",'r');
$read=fgets($fp,1024000);
fclose($fp);
$read=$HTTP_REFERER.$key.$read;
$fp=fopen("url/url.txt",'w');
$url=strtok($read,$key);
print "<ol>";
for($i=0;$i<12;$i++)
{
print "<li>$url</li>";
fputs($fp,$url);
fputs($fp,$key);
$url=strtok($key);
}
fclose($fp);
print "</ol>";
?>

oxygenws
شنبه 19 دی 1383, 17:58 عصر
دوستان ! این برنامه را اگر تونستند تستش کنند و ببینند روی سرور آنها جواب میده ؟ اگر اشکالی هست به من بگید ...

یعنی چی؟؟ خوب این برنامه چکار می کنه؟؟ خروجی چیه؟؟ بعد از مدتی توی فایل چی قرار می گیره؟؟
می تونی یه phpinfo روی سرورت بهم بدی؟؟

موفق باشید، امید

adnan
شنبه 19 دی 1383, 21:49 عصر
امید جان !

خودت که اینکاره ای . با دیدن این برنامه می فهمی که داره چکار می کنه .
برای بار اول که برنامه اجرا میشه میره فایل url.txt را می خونه و چون همش گوگل است می نویسه :
1- www.google.com
2- www.google.com
...
12- www.google.com

هر دفعه که برنامه فراخوانی میشه آدرس اولی نوشته میشه و آدرس آخری از فایل url.txt پاک میشه . درحقیقت همواره 12 url در فایل url.txt وجود دارد .

adnan
شنبه 19 دی 1383, 22:04 عصر
می تونی یه phpinfo روی سرورت بهم بدی؟؟

www.yarantoos.com/phpinfo.php

oxygenws
شنبه 19 دی 1383, 22:13 عصر
:) می دونم کارش چیه...... منظورم این بود که چکار می کنه که می فهمی درست کار نمی کنه؟؟ یعنی همینی که خرابه چکار می کنه (نه اون سالمه!!)

adnan
یک شنبه 20 دی 1383, 20:12 عصر
امید جان شما برنامه مرا چک کردی ؟ :oops:

در localhost هیج مشکلی ندارم .اما روی سرور که آپلود می کنم فایل url.txt همواره همونی که بوده هست !!! یعنی اصلا تغییر نمی کنه و همواره همان 12 آدرس www.google.com را می نویسه . انگار روی فایل url.txt هیچ تغییری نمیده . ( البته موقع اجرا برنامه هم هیچ خطایی یا warning ایی نمی ده )

adnan
سه شنبه 22 دی 1383, 21:38 عصر
امید جان آیا برنامه مرا تست کردی ؟
آیا مشکل کار را فهمیدی ؟
آیا .... ؟ :(

آیا من باید از کمک شما ناامید بشم و کاری از دست شما بر نمیاد ( در مورد سوالم ) ؟؟؟؟ :sad2:

یک جواب کوچولو تکلیف ما را روشن می کند که با هزار آرزو به این تاپیک سر نزنیم !!! :mrgreen:

oxygenws
چهارشنبه 23 دی 1383, 01:18 صبح
شرمنده ادنان جان..... پست قبلیت رو ندیده بودم :oops:

کدت رو اینطوری تغییر بده ببین چی میشه.....


<?php
error_reporting(E_ALL);
$key=";";
$fp=fopen('url/url.txt','r+') or die('oops, cannot open file');
$read=fgets($fp,10240);
$read=$HTTP_REFERER.$key.$read;
$url=strtok($read,$key);
print "<ol>";
for($i=0;$i<12;$i++)
{
print "<li>$url</li>";
fputs($fp,$url);
fputs($fp,$key);
$url=strtok($key);
}
fclose($fp);
print "</ol>";
?>

اگر کد بالا مشکلی برگردوند، برای اینکه فعلا 100% مطمئن بشی که مشکلی نیست، دسترسی فایل url.txt و شاخه url رو 777 بکن :) اگر باز هم مشکلی بود خبر بده.

adnan
چهارشنبه 23 دی 1383, 10:42 صبح
ممنون !

این خطا را میده :
Notice: Undefined variable: HTTP_REFERER in /home/yaran/public_html/12url.php on line 6

oxygenws
چهارشنبه 23 دی 1383, 12:28 عصر
به جای اون از این عبارت استفاده کنید:

$_SERVER["HTTP_REFERER"]

adnan
چهارشنبه 23 دی 1383, 13:21 عصر
به جای اون از این عبارت استفاده کنید:

$_SERVER["HTTP_REFERER"]همچنان آون خطار را نشان میده !!! :(

oxygenws
چهارشنبه 23 دی 1383, 14:36 عصر
HTTP_REFERER کاملا بستگی به مرورگر شما داره. چه مرورگری استفاده می کنی؟؟ برای لوکال با اینترنت فرق داشت؟؟

adnan
چهارشنبه 23 دی 1383, 15:25 عصر
IE

بله ! در لوکال کار می کنه و در اینترنت خیر !!! :(

adnan
چهارشنبه 23 دی 1383, 15:51 عصر
اینم مشکل منو داره : :mrgreen:
http://www.phpbuilder.com/lists/php-windows/2003091/0032.php

oxygenws
چهارشنبه 23 دی 1383, 18:58 عصر
احیانا با یک ISP دیگه چک کن....
اگر تونستی برنامه رو رو سرور های دیگه ات هم تست کن.

هر چیزی این وسط باشه (بین و شما و سرور)، می تونه مشکل زا باشه :)

oxygenws
جمعه 25 دی 1383, 19:09 عصر
من نمی دونم مشکل شما حل شد یا نه...... ولی من وقتی روی phpinfo صفحه قبل کلیک می کنم متغیر زیر رو می بینم:::



_SERVER["HTTP_REFERER"] http://www.barnamenevis.org/forum/viewtopic.php?t=19564&start=0


چاکریم

adnan
شنبه 26 دی 1383, 13:17 عصر
مرسی ایمدجان از پیگیریت

من بیخیالش شده بودم ولی با این پستت مجدد جرقه ای خورد و مشکل من حل شد !!!
من phpinfo را نگاه کردم و جالب بود که در نگاه قبلیم _SERVER["HTTP_REFERER"] ست نشده بود ولی حالا .... :strange:
با این حال من چون سیستم firewall داشت هیچ وقت این متغیر ست نمیشه ولی چون کاربرای دیگه به سایت سر میزدند بهرحال باید این فایل url.txt تغییر می کرد که فهمیدم کد برنامه شما ( کد تغییر یافته برنامه من ) باعث شده که همواره url اول پاک شده و url جدید جایگزین گردد و 11 url دیگر بدون تغییر بماند .
بهرحال کد اصلاح شده بصورت زیر است که بدرستی کار می کند :


<?php
$key=";";
$fp=fopen("url/url.txt",'r');
$read=fgets($fp,10240);
fclose($fp);
if ($HTTP_REFERER )
{
$read=$HTTP_REFERER.$key.$read;
$fp=fopen("url/url.txt",'w');
$url=strtok($read,$key);
print "<ol>";
for($i=0;$i<12;$i++)
{
print "<li>$url</li>";
fputs($fp,$url);
fputs($fp,$key);
$url=strtok($key);
}
fclose($fp);
print "</ol>";
exit;
}
$url=strtok($read,$key);
print "<ol>";
for($i=0;$i<12;$i++)
{
print "<li>$url</li>";
$url=strtok($key);
}
print "</ol>";
?>

اما یک سوال ؟
حالا پرمیشن فایل را چی بگذارم که تنها توسط این برنامه قابل تغییر باشه . چون 777 که دیگه خیلی ناچوره !!! :wink:

oxygenws
شنبه 26 دی 1383, 14:24 عصر
:) متاسفم..... 777 باید باشه......
مگر اینکه PHP رو CGI نصب کنند.