PDA

View Full Version : گرفتن کلمات جستجو شده توسط گوگل



رضا قربانی
چهارشنبه 01 مهر 1394, 20:42 عصر
سلام و خسته نباشید

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

قبلنا شنیده بودم اگر سایتی https داشته باشه نمیشه آدرسش رو گرفت.

ممنون میشم با تست پاسخ بدید .

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

kb0y667
چهارشنبه 01 مهر 1394, 22:37 عصر
تنها درصورتی میشه بدونی کاربر از کجا آمده ، که رفرر داشته باشه

خب با فرض داشتن رفرر ، میشه به این صورت عمل کرد :


$A=$_SERVER['HTTP_REFERER'];
if(!empty($A)){
$pos=strpos($A,"q=")+2;
$end=strpos($A,"&",$pos);
$OK=substr($pos,$end);
$OK=rawurldecode($OK);
}

بصورت تابع میشه بسادگی استفاده کرد :


function query($A){
if(!empty($A)){
$pos=strpos($A,"q=")+2;
$end=strpos($A,"&",$pos);
$OK=substr($pos,$end);
$OK=rawurldecode($OK);
}
else $OK='';
return $OK;
}

// این هم طریقه استفاده

$natijeh=query($_SERVER['HTTP_REFERER']);



تابع بصورت فشرده :


function query($A){return empty($A)?'':rawurldecode(substr(strpos($A,"q=")+2,strpos($A,"&",strpos($A,"q=")+2)));}



تذکر :
--- هیچوقت به رشته ها اعتماد نکن ، هرچند رشته توی سرور باشه
--- همیشه باید فیلتر کارکترها و استفاده از توابع امنیتی لحاظ بشه
--- که بنده انجام ندادم ، فقط اصل قضیه رو نوشتم

*** فورا نوشتم برات .... تست ش نکردم ، دیگه کار کردنش با خدا

رضا قربانی
پنج شنبه 02 مهر 1394, 17:24 عصر
تنها درصورتی میشه بدونی کاربر از کجا آمده ، که رفرر داشته باشه

خب با فرض داشتن رفرر ، میشه به این صورت عمل کرد :

عملش زیاد مهم نیست . من رفرر رو میخوام ( اونم رفرر گوگل )

CodeKhor
پنج شنبه 02 مهر 1394, 17:35 عصر
بله جریان رو متوجه شده جوابش هم درست بود در تکمیل حرف ایشان "تنها درصورتی میشه بدونی کاربر از کجا آمده ، که رفرر داشته باشه" کاربرانی که از گوگل وارد سایت میشن 100% referer دارند و با این کدی که دادن referer رو میگیری و هرجور دوست داشتی توی دیتابیس ذخیره میکنی




$_SERVER['HTTP_REFERER']

رضا قربانی
پنج شنبه 02 مهر 1394, 18:05 عصر
بله جریان رو متوجه شده جوابش هم درست بود در تکمیل حرف ایشان "تنها درصورتی میشه بدونی کاربر از کجا آمده ، که رفرر داشته باشه" کاربرانی که از گوگل وارد سایت میشن 100% referer دارند و با این کدی که دادن referer رو میگیری و هرجور دوست داشتی توی دیتابیس ذخیره میکنی




$_SERVER['HTTP_REFERER']



همون اول گفتم خواهشا تست کنید . شما هم دارید اشتباه می کنید . بعد این همه سال میدونم رفرر کارش چیه .

شما تست کنید و از گوگل بیایید به سایت خودتون ! اگر دقت کنید فقط آدرس سایت گوگل نمایش داده میشه (من میخوام تمام آدرس گوگل بیاد همراه با جستجو که در url هست)

رضا قربانی
پنج شنبه 02 مهر 1394, 18:46 عصر
با این کد میشه کلمات رو گرفت


print_r(parse_url($_SERVER['HTTP_REFERER']));

منتها زمانی که گوگل با https بالا بیاد جواب نمیده . (اول هم گفتم و دقت نکردین)

مشکل اصلی من با https هست و چطوری باید کلمات رو گرفت




پ . ن : شما گوگل رو با http باز کنید به راحتی آدرس کامل با رفرر گرفته میشه و بعدش با https بازش کنید ببینید بازم میشه (سایت وبگذر داره با هر دو پروتکل کلمات رو میگیره) :متفکر:

Unique
پنج شنبه 02 مهر 1394, 20:02 عصر
سلام

جناب قربانی این موضوع اصلا چیز جدیدی نیست ! تا اونجا که من میدونم چند سالی هست که گوگل در نسخه https کلا keyword ها را ارسال نمیکنه و به روش خودش secure میکنه برای کاربر .
در مورد سایت وبگذر هم اگه خودشون میگن که چرت میگن و اگه خودتون دیدیدن لطفا دقیق تر ببینین احتمالا http هست نه https یا دارن fake نشون میدن.

شما توی این صفحه بیا پایین به قسمت Industry Response و ببی چه غول هایی دارن در موردش حرف میزنن و ازش مینالن ! اونوقت وب گذر مثلا راه حل داده !؟

رضا قربانی
پنج شنبه 02 مهر 1394, 20:23 عصر
جناب قربانی این موضوع اصلا چیز جدیدی نیست ! تا اونجا که من میدونم چند سالی هست که گوگل در نسخه https کلا keyword ها را ارسال نمیکنه و به روش خودش secure میکنه برای کاربر .


طی تحقیقاتی که انجام دادم فهمیدم که لینک های گوگل از feedproxy که برای خود گوگل هست سرچشمه میگیره و اون به سایت ریدایرکت میکنه تا نتونیم ریفرر رو در بیاریم .

حالا یه سوال اگر سایتی با SSL باشه این مشکل https برطرف میشه ؟ کسی هست که سایتش HTTPS باشه و تست بگیره و اینجا اعلام کنه؟

ممنون میشم

مهرداد سیف زاده
پنج شنبه 02 مهر 1394, 20:27 عصر
همون اول گفتم خواهشا تست کنید . شما هم دارید اشتباه می کنید . بعد این همه سال میدونم رفرر کارش چیه .


شما دوستان رو ببخشید آقای قربانی. الان دوستانی که به سوال شما جواب دادن نمیدونن یه زمانی شما بودید که دست ما رو میگرفتید و کمک میکردید
البته در rfc2616 دقیقا ذکر شده reefer در صورتی میتونه برداشت بشه که در حال secure uri نباشه
Clients SHOULD NOT include a Referer header field in a (non-secure)
HTTP request if the referring page was transferred with a secure
protocol.
و همون طور که خودتون هم گفتید فقط در حالت http قابل برداشت هست
جز این که از api گوگل استفاده کنید. analytic api یه سری query داره که میونید از لینک زیر توضیحات بیشتر رو در بیارید.
https://developers.google.com/analytics/devguides/reporting/core/v3/common-queries?hl=en

Unique
جمعه 03 مهر 1394, 00:12 صبح
حالا یه سوال اگر سایتی با SSL باشه این مشکل https برطرف میشه ؟ کسی هست که سایتش HTTPS باشه و تست بگیره و اینجا اعلام کنه؟
ربطی نداره ! چون از مبدا فیلتر انجام میشه. در واقع حالا با proxy یا هر روش دیگه ای قبل از اینکه به ما برسه keyword ها حذف میشن.

رضا قربانی
جمعه 03 مهر 1394, 19:03 عصر
ربطی نداره ! چون از مبدا فیلتر انجام میشه. در واقع حالا با proxy یا هر روش دیگه ای قبل از اینکه به ما برسه keyword ها حذف میشن.

اطمینان کامل دارید ؟
اگر آره که من کلا بیخیال این پروسه بشم:متفکر:


در مورد سایت وبگذر هم اگه خودشون میگن که چرت میگن و اگه خودتون دیدیدن لطفا دقیق تر ببینین احتمالا http هست نه https یا دارن fake نشون میدن. طی مکاتبه با یکی از دوستان : چون وبگذر از JS استفاده می کنه میاد از از history مرورگر ، نتایج رو استخراج میکنه

Unique
شنبه 04 مهر 1394, 00:24 صبح
اطمینان کامل دارید ؟
تا حالا انجام ندادم اما تتئوریش درسته و تغییرات قبل از رسیدن به سایت ما اعمال میشه.