PDA

View Full Version : مبتدی: بدست آوردن رفرنس های مراجعه شده با سایت



mehran901
یک شنبه 01 دی 1392, 01:16 صبح
سلام دوستان
بنده برنامه نویس وب نیستم از اونجایی که یک فروشگاه کوچیک بر پایه پی اچ پی دارم مشکل داشتم گفتم بپرسم کمکم کنین حلش کنم

کلیت و هدف :
ماهانه هزینه هایی برای تبلیغات انجام میشه و من میخوام از طریق بخشی که خرید انجام میشه لینک رفرنس کسی که داره خرید میکنه رو تو ی فایل تکست رو هاست با ساعت خرید داشته باشم که بفهمم بیشترین خریداران از چه سایتی لینک شدن

سوال 1 :


چطور میشه وقتی روی تصویری و همین طور دکمه ای کلیک شد ، علاوه بر بازشدن لینک تصویر ، یا دکمه ، فانکشن دیگه ای هم صدا زده بشه ...

به طور مثال من این قطعه کد رو نوشتم :


<div align="center"><a href='aaa.php?fn=some_function' src="servic2.png"<a/><img class="decoded" alt="--" src="servic2.png"></a></div>




و فایل aaa.php :

<?php
switch($_GET['fn']) {
case 'some_function':
//call your function




break;
default:
//Handle this
}
?>


حالا مسئله دیگه اینه ک چطور در یک فایل باشن ...یعنی کد پی اچ پی به صورتی فانکشنی تعریف بشه که با اجرای اون لینک یا کلیک بر روی تصویر ، فراخوانی بشه ... :متفکر:

سوال 2 :

اصلا امکان پذیر هست ک متغییر داخل فایل 1 در فایل های دیگه در دسترس باشه ؟ الان ذهنیت و منظور من ی چیزی تو مایه های متغییر های کلاس حافظه extern سی++ هست البته تو پی اچ پی به نظرم این ی مورد کاملا غیرمنطقیه ! ولی گفتم بپرسم هرچیزی امکان داره!!


باتشکر از همه دوستان

a_mzadeh
یک شنبه 01 دی 1392, 10:06 صبح
سلام؛

چطور میشه وقتی روی تصویری و همین طور دکمه ای کلیک شد ، علاوه بر بازشدن لینک تصویر ، یا دکمه ، فانکشن دیگه ای هم صدا زده بشه
شما میتونید از event مربوط به onclick در سمت جاوااسکریپت استفاده کنید:


<div align="center">
<a href='aaa.php?fn=some_function' src="servic2.png" onclick="myFunc(param1, param2)">
<img class="decoded" alt="--" src="servic2.png" />
</a>
</div>

برای فراخوانی توابع php از داخل javascript باید url اون رو فراخوانی کنید. شما برای این کار میتونی از توابع ajax کتابخانه jquery استفاده کنی.

اصلا امکان پذیر هست ک متغییر داخل فایل 1 در فایل های دیگه در دسترس باشه
این کار امکان پذیر هست، البته روش صحیح اون رو من الان نمیدونم ولی شما میتونی از session استفاده کنی. متغیری که میخوای از داخل فایل‌های دیگه به اون دسترسی داشته باشی رو بریز تو متغیر $_session و بعد هر جا که خواستی از اون استفاده کن.

mehran901
یک شنبه 01 دی 1392, 13:04 عصر
تشکر فراوان ،

ی سوال دیگه

توی پی اچ پی مثلا من ی متغییر دارم که با باز شدن صفحه آیپی کاربر رو میگیره .. در حینی که صفحه بازه از ی سیستم دیگه کاربر دیگه ای اون صفحه رو باز کنه مقدار اون متغییر من تغییر میکنه به صورت سراسری ؟ یا اینکه مثل اینه نسخه دیگه ای از برنامه اجرا شده باشه و توی هر بروزر برای هر کاربر مقدار خودشو حفظ میکنه ؟

a_mzadeh
یک شنبه 01 دی 1392, 13:22 عصر
همونطوری که خود شما بهش اشاره کردی، وقتی یک کاربر جدید از یک سیستم دیگه صفحه مورد نظر رو باز می‌کنه، مثل این هست که نسخه دیگه‌ای از برنامه شما اجرا میشه، توی هر بروزر و برای هر کاربر مقدار خودش رو داره.

mehran901
یک شنبه 01 دی 1392, 13:39 عصر
تشکر مجدد ،

با $_SESSION تست کردم متاسفانه نشد

ببینین درسته ؟ :
فایل 1 :

$_SESSION['count']= "abcd";


در فایل 2 هم :

<?php
echo $_SESSION['count'];
?>


متاسفانه در فایل یک که مقدار دهی میشه در فایل 2 خالی هست

Tarragon
یک شنبه 01 دی 1392, 14:21 عصر
سلام
قبلش باید اول فایل بنویسید
session_start();

mehran901
یک شنبه 01 دی 1392, 14:23 عصر
سلام ، در این صورتبعدش این ارور رو از این خط میگیره :


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/mehrupda/public_html/get_url.php:1) in /home/mehrupda/public_html/get_url.php on line 5

hamedarian2009
یک شنبه 01 دی 1392, 14:26 عصر
تشکر مجدد ،

با $_SESSION تست کردم متاسفانه نشد

ببینین درسته ؟ :
فایل 1 :

$_SESSION['count']= "abcd";


در فایل 2 هم :

<?php
echo $_SESSION['count'];
?>


متاسفانه در فایل یک که مقدار دهی میشه در فایل 2 خالی هست
سلام شما هرجا که از سشن استفاده میکنید بایستی اولین خط برنامه و قبل از هرکدی سشن رو استارت کنید یعنی تو هردوتا صفحه 1 و 2 اولین خط این دستورو بزارین:

session_start();

mehran901
یک شنبه 01 دی 1392, 14:30 عصر
سلام شما هرجا که از سشن استفاده میکنید بایستی اولین خط برنامه و قبل از هرکدی سشن رو استارت کنید یعنی تو هردوتا صفحه 1 و 2 اولین خط این دستورو بزارین:

session_start();

تشکر ، متاسفانه بعد از این که این کارو انجام دادم اروری به شرح زیر میده :
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/mehrupda/public_html/get_url.php:1) in /home/mehrupda/public_html/get_url.php on line 2

کل سورسی که برای تست نوشته بودم :

<?php
session_start();
$myFile = "buy_ref.txt";

$lines = file($myFile);//file in to an array


$_SESSION['count']= "abcd";
$tedad= $_SERVER['HTTP_REFERER'] . " - " ;

file_put_contents('buy_ref.txt',$tedad,FILE_APPEND );

echo $tedad;


?>

Tarragon
یک شنبه 01 دی 1392, 14:56 عصر
رفع مشکل نمایش پیغام Cannot modify header information – headers already sent (http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576420&viewfull=1#post1576420)

mehran901
یک شنبه 01 دی 1392, 19:09 عصر
این مشکل رو با سرچ حل کردم ، بیان میکنم کسی مشکل داشت مشکلش رو حل کنه




Download Notepad++ and open the file there, delete all fancy characters before the <?PHP
Make sure there is no whitespace character like " " or tab or linebreak before the <?PHP.
In Notepad++ click Encoding and then UTF-8 without BOM to convert the file to UTF-8 without BOM, then save it.
Also add ob_start(); before session_start(); to be safe.

mehran901
یک شنبه 01 دی 1392, 20:29 عصر
سوال دیگه ای هم داشتم از اساتید

خط زیر رو در نظربگیرید :

$_SESSION['ref']= $_SERVER['HTTP_REFERER'] . "\n" ;



وقتی مقادیر سشن داخل یک فایل ذخیره میشن ، عبارت \n آخرش میخوره!! چطور میشه new line ایجاد کرد ؟ :متفکر: جالب اینه تو همه سرچ هایی هم ک زدیم به همین شکلیا با استفاده از "<br>" خط جدید ایجاد کردن ولی برای من جواب نمیده ...:متفکر:

Javidhb
یک شنبه 01 دی 1392, 20:47 عصر
برای ایجاد new line میتونید از PHP_EOL استفاده کنید که در واقع یه متغیر هست که با توجه به سیستم عامل از عبارت مناسب برای ایجاد خط جدید استفاده میکنه.

$_SESSION['ref']= $_SERVER['HTTP_REFERER'] . PHP_EOL ;