ايران ويج

نسخه‌ی کامل: ثبت مشخصات بازدید کننده
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
حالا من متوجه شدم چی میخواهی ؛

جواب سوال شما به یه نحوی تو یکی از آموزش های ققنوس بود ( آموزش فریم ها توی اچ تی ام ال هست)
ولی چطوری ؟

اگر به اون فایلهایی که ضمیمه کردم نگاه بکنید یک نمونه کامل هست که وقتی صفحه ایندکس باز بشه مشخصات بازدید کننده از اون صفحه توی دیتابیس ثبت میشه .
تنها کاری که باید بکنی اینه که اون صفحه ایندکس رو توی یک فریم مخفی بازش کنی
یعنی توی وبلاگت یه جایی بنویسی :
کد:
<iframe src="http://localhost/visitor_counter_sample/index.php" style="display:none">
ولی خوب حالا این فریم ها دیگه زیاد استفاده نمیشن پس میاییم از جاوا اسکریپت استفاده میکنیم تا اون صفحه رو لود کنیم

پس بجای اون کد آیفریم از این کد استفاده میکنیم :
کد:
<script type="text/javascirpt" language="javascirpt" src="http://localhost/visitor_counter_sample/index.php" ></script>
ولی اینجا یه مشکلی هست؛ الان داریم به مرور گر میگیم تو این آدرس یک فایل جاوا اسکریپت هست و اگر واقعا نباشه مرورگر اصلا اونو اجراش نمیکنه

پس تو اون صفحه ایندکس یه کوچولو تغییر میدیم تا بهش تلقین کنیم که یک فایل جاوا اسکریپت هست
اینجوری که بعد از علامت شروع پی اچ پی اینو اضافه میکنیم :

کد php:
Header("content-type: application/x-javascirpt"); 
حالا مثلا اگر دلت خواست یه عکسی چیزی هم بندازی اون جا این خط رو هم اضافه کن بعد اون دستور بالا و بنابر نیازت تغیرش بده :
کد php:
echo "document.write(\"IranVigCounter\")"
و نکته مهم این که دستورات نمایش اطلاعات که توی فایل ایندکس نوشتم باید حذف بشن
خلاصش این که فایل ایندکس من باید اینجوری باشه محتواش :
کد php:
<?
Header
("content-type: application/x-javascirpt");
echo 
"document.write(\"IranVigCounter\")";
require_once 
"db.php";

$config['database']['type'] = 'mysqli';
$config['database']['database'] = 'your_db_name';
$config['database']['table_prefix'] = 'pico_';
$config['database']['hostname'] = 'localhost';
$config['database']['username'] = 'root';
$config['database']['password'] = '';


$db = new DB_MySQL;
$db->connect($config['database']);
$db->set_table_prefix($config['database']['table_prefix']);
$db->type $config['database']['type'];

require_once 
"visitor_counter.php";
?>
خوب تموم شد حالا هر موقع وبلاگت باز بشه این ها هم اجرا میشن و اطلاعات بازدید کنندرو ثبت میکنن .
کدتو چک کردم جواب نمیده

ببین بطور مثال از این سایت
www.test.com

وارد

www.test2.com
میشم

بعد کد
کد:
<script type="text/javascirpt" language="javascirpt" src="www.test3.com/1.php" ></script>
و وقتی هم کد
کد:
$_SERVER['HTTP_REFERER'];

اجرا میشه در نتیجه www.test2.com بر میگردونه در صورتی من میخوام
www.test.com
برگردونه



انشالا که متوجه شده باشی عزیز
برای اینکه بتونم راهنمایی کنم باید به چند تا سوال جواب بدی :)
  1. کد منو چجوری چک کردی ؟ (چه کارهایی انجام دادی؟)
  2. از سایت تست چجوری میری به تست 2 ؟
  3. توی 1. پی اچ پی چی نوشتی ؟
  4. اون خط جاوا اسکریپت رو کجا نوشتی ؟
  5. دستور $_SERVER['HTTP_REFERER']; کجا نوشتی ؟
برای تست وارد www.test.com شدم بعد بر روی لینک www.test2.com کلیک کردم

داخل سایت www.test.com لینکی از www.test2.com قرار دادم که روش کلیک میکنم

این خط جاوا داخل کد www.test2.com قرار دادم
کد:
<script type="text/javascirpt" language="javascirpt" src="www.test3.com/1.php" ></script>


توی 1.php این کد نوشتم برای تست
کد:
<?php
Header("content-type: application/x-javascirpt");
$t=$_SERVER['HTTP_REFERER'];


$handle = fopen('txt.php', 'a');
fwrite($handle,'<p> ' . $t . '</p>');
fclose($handle);


?>
اینجا یه تعداد مشکل هست
یک اینکه شما پستهای قبلی من رو نخوندین و یا گذرا خوندین و اصلا دقت نکردین چی نوشتم .
دوم اینکه شما یه غلط املایی داری که همیشه اونو تکرار کردی .


تقریبا کلیات کارت درسته یه چند تا ریزه کاری داره که بصورت کامل قبلا توضیح دادم .

یادم رفت مشکل سوم رو بنویسم :
این کدهای شما غیر ممکنه تست2 رو برگردونه یعنی اصلا هیچ مقداری رو توی فایل نمی نویسن مگر اینکه فایل 1.پی اچ پی رو مستقیم اجرا کنین .
عزیز اشکالاتمو خب میگفتی
نه درست خوندم عزیز مگه بیکارم سوال کنم بعد گذرا بخونم !


عزیز چرا امکان داره الان به این آدرس برین

http://funcloob98.ir/site1.php

کد صفحه :
کد:
<a href="http://funcloob98.ir/site2.php"><strong>load site 2</strong></a>

بعد بر روی لینک کلیک کن وارد این صفحه میشه

http://funcloob98.ir/site2.php
کد صفحه :
کد:
<script type="text/javascirpt" language="javascirpt" src="http://funcloob98.ir/1.php" ></script>


و در نتیجه باعث اجرا کد :
کد:
<?

Header("content-type: application/x-javascirpt");

$t=$_SERVER['HTTP_REFERER'];


$handle = fopen('txt.php', 'a');
fwrite($handle,'<p> ' . $t . '</p>');
fclose($handle);


?>

در آدرس
http://funcloob98.ir/1.php

میشه
و آدرس
http://funcloob98.ir/site2.php

در
http://funcloob98.ir/txt.php

ذخیره میشه !!


نام کاربری پسورد هاست هم برات پیام خصوصی کردم
الیاس جان اسم من حامد هست نه عزیز Biggrin

یک اینکه ایول اون پستت رو درست ویرایش کردی .
دوم اینکه اونی که من فکر میکردم غلط املاییت هست باعث و بانیش مای بی بی هست که اونو عوض میکنه
منظورم اینه : کلمه جاوا اسکرییت رو میکنه جاوا اسکیرپت .

الان همه چیز درسته .
ببین فایل 1.پی اچ پی رو کی احضار میکنه ؟ فایل تست2 درسته ؟ پس آدرس درسته .
شما که میخواهی آدرس دو صفحه قبل ثبت بشه باید اونو پاس بدی .

اینجوری :
کد php:
<script type="text/javascirpt" language="javascirpt" src="http://funcloob98.ir/1.php?ref=<? echo($_SERVER['HTTP_REFERER']); ?>" ></script

و تو فایل 1.پی اچ پی اونو بگیری :
کد php:
<?
$ref
=$_Get['ref']
?>
حالا این متغییر رو سیو کنی حل میشه .
نکته :کدهارو اینجا نوشتم ممکنه خطا داشته باشن
جدی Biggrin باشه حامد جان
اره دگه دسته کم گرفتی !

این روشی گفتی جواب نداد!

و اینکه اگر تو فایل
http://funcloob98.ir/site2.php
php جواب میداد که نیاز به این همه بدبختی نبود که ! من این فایل site2.php برای تست کردم درست کردم و نمیخوام هیچ کد php داخلش قرار بدم


یعنی راه حل درست حسابی نیسته؟پس این آمار سنج ها چکار میکنن
که یه کد جاوا میذاری داخل وبلاگ
در نتیجه اونا امار دقیق صفحه قبل هم دارن



--------------------------
ضمنا" خارج از این بحث یه سوال
میگم بطور مثال بازدید کننده ای به سایت من مراجعه میکنه آیا یه چیزی مثل آی پی نیسته که بتونم ازش ذخیره کنم که دفعات بعد باهمون کامپیوتر یا اینترنت به سایتم مراجعه کنه من متوجه بشم؟

آی پی که نمیشه چون تغییر میکنه
(۲۴-فروردین-۱۳۹۳, ۱۰:۵۰:۱۸)aleas نوشته است: [ -> ]یعنی راه حل درست حسابی نیسته؟پس این آمار سنج ها چکار میکنن
که یه کد جاوا میذاری داخل وبلاگ
در نتیجه اونا امار دقیق صفحه قبل هم دارن

سلام
این سوالت منو مجبور کرد تحقیق کنم Biggrin

سوال خوبی بود پس اونا چجوری کار میکنن ؟
اونا اینجوری کار میکنن :
وقتی از طریق جاوا اسکریپت فایل 1.پی اچ پی احضار میشه، چیزی ثبت نمیشه فقط یه iframe به خروجی میفرسته :)
و وقتی این iframe به مرورگر رسید و خواست لود بشه اون موقع هست که اطلاعات ثبت میشه .

اگر بخوام حرفامو کد کنم میشه این :
اون جاوا رو اینجوری مینویسیم :
کد php:
<script type="text/javascirpt" language="javascirpt" src="http://test.com/1.php?s=start" ></script
و داخل 1.پی اچ پی اینارو می نویسیم :
کد php:
<?
$s
=$_GET['s'];
if(
$s && $s=='start')
{
     
Header("content-type: application/x-javascirpt");
    echo 
"document.write('<iframe scrolling=\"no\" width=\"0\" height=\"0\" border=\"0\" frameborder=\"0\" allowtransparency=\"true\" src=\"http://test.com/1.php?s=save&ref=' + document.referrer + '\"></iframe>')";
}
else
{
     
$ref=$_GET['ref'];
    
$handle fopen('txt.php''a');
     
fwrite($handle,'<p> ' $ref '</p>');
     
fclose($handle);
}
?>

تموم شد - حالا شد جواب ایده آل ؟
(۲۴-فروردین-۱۳۹۳, ۱۴:۲۴:۵۱)hamed_Arfaee نوشته است: [ -> ]سلام
این سوالت منو مجبور کرد تحقیق کنم Biggrin

قربونت تحقیق خیلی خوبه آفرین !:d

(۲۴-فروردین-۱۳۹۳, ۱۴:۲۴:۵۱)hamed_Arfaee نوشته است: [ -> ]تموم شد - حالا شد جواب ایده آل ؟

نه Biggrin

چون کار نمیکنه!
مشکل چی؟
اون پست من با قبلی ها فرقش اینه که، اینا رو تست کردم بعد برات پست کردم Biggrin
یعنی حتما کار میکنن مگر اینکهههههه کل کد هامو همینطوری که کپی کردی استفاده بکنی Biggrin

چون خود مای بی بی جاوا سکریپت ها رو بهم ریخته
یعنی هر جا دیدی j a v a s c i r p t اونو ویاریش کن به : j a v a s c r i p t
صفحه‌ها: 1 2 3 4