• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مثال Login کردن به این انجمن با استفاده از curl
#1
من دارم روی curl کار می کنم. بعضی جاها به نتیجه رسیدم ولی بعضی جاها خیر.
به عنوان مثال برای لاگین کردن به این انجمن از اسکریپت زیر استفاده کردم:
کد پی‌اچ‌پی:
<?php
$url
="http://forum.iranphp.org/member.php";
$postdata "username=myusername&password=mypassword&submit=&action=do_login";
$ch curl_init();
curl_setopt($chCURLOPT_URL$url);
curl_setopt($chCURLOPT_USERAGENT"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22");
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
curl_setopt($chCURLOPT_POSTtrue);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_setopt($chCURLOPT_POSTFIELDS$postdata);
curl_setopt($chCURLOPT_TIMEOUT3600);
$result curl_exec($ch);
header("location:http://forum.iranphp.org/");
curl_close($ch);
?>
نام کاربری و کلمه عبور و تشخیص می ده ولی در مرحله آخر که باید صفحه اصلی سایت رو به صورت لاگین شده نشونم بده موفق نمی شم.
دلیلش چیه؟
  پاسخ
تشکر شده توسط :
#2
کسی پاسخ نمی ده؟ Confused
  پاسخ
تشکر شده توسط :
#3
باید واستی تی تا یه نفر جوابت رو بده من تا حالا وارد این بحث از curl نشدم و خواهم شد SmileSmile
  پاسخ
تشکر شده توسط :
#4
من تاحالا curl کار نکردم، اما چیزی که متوجه شدم اینکه با curl لاگین میکنی، خب تا اینجا درست، اما کوکی هایی که این سایت اون موقع برای مرورگر میفرسته چی میشه؟ به مرورگر کلاینت ارسال میشه؟ نه، کوکی ها پیش curl است!! پس معلومه که مرورگر شما کوکی های لاگین رو نداره و لاگین نمیشه. شما داری با curl و از سمت سرور لاگین میکنی، نه با مرورگر خودت و از سمت کلاینت.
و اما راه حل چیست؟
خب فکر کنم باید کوکی ها رو از curl بگیری و بفرستی برای مرورگر، و بعد ریدایرکت کنی.
البته در بعضی شرایط ممکنه این کوکی ها به مشخصات خاصی وابسته باشن رو روی مرورگر در طرف دیگه کار نکنن.
  پاسخ
تشکر شده توسط :
#5
اوه تازه یه چیزی!
شما اصلا نمیتونی کوکی های یک دامین دیگر رو از طرف خودت (که سرور و دامین دیگری هستی طبیعتا) به مرورگر ارسال کنی.
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۲ آذر ۰۵, ۱۲:۵۰ ب.ظ)vejmad نوشته: اوه تازه یه چیزی!
شما اصلا نمیتونی کوکی های یک دامین دیگر رو از طرف خودت (که سرور و دامین دیگری هستی طبیعتا) به مرورگر ارسال کنی.
منم دقیقا داشتم به همین فکر می کردم!
  پاسخ
تشکر شده توسط :
#7
حالا واسه چی میخوای این کار رو بکنی؟
یعنی میخوای خودت یا دیگران رو بطور خودکار لاگین کنی در سایت دیگه؟ چرا؟
البته این کار میتونه سمت کلاینت انجام بشه. بستگی به سایتش هم داره. الان فرم لاگین این سایت ظاهر توکن CSRF نداره، بنابراین فکر کنم بشه سمت کلاینت لاگین خودکار کرد از طریق سایت دیگری. یعنی فرم رو میفرستی سمت کلاینت و از طریق جاوااسکریپت بطور خودکار سابمیتش میکنی.
  پاسخ
تشکر شده توسط :
#8
(۱۳۹۲ آذر ۰۵, ۰۱:۰۲ ب.ظ)vejmad نوشته: حالا واسه چی میخوای این کار رو بکنی؟
یعنی میخوای خودت یا دیگران رو بطور خودکار لاگین کنی در سایت دیگه؟ چرا؟
البته این کار میتونه سمت کلاینت انجام بشه. بستگی به سایتش هم داره. الان فرم لاگین این سایت ظاهر توکن CSRF نداره، بنابراین فکر کنم بشه سمت کلاینت لاگین خودکار کرد از طریق سایت دیگری. یعنی فرم رو میفرستی سمت کلاینت و از طریق جاوااسکریپت بطور خودکار سابمیتش میکنی.
همین طور خواستم یه کاری کرده باشم! Big Grin
  پاسخ
تشکر شده توسط :
#9
آقا منم این مشکل را با curl دارم وقتی از درگاه پرداخت payline به آدرس Callback برمیگردم به جای اینکه وارد صفحه کاربر بشه اونو به لاگین میبره مشکل چیه ؟
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان