PDA

View Full Version : حرفه ای: اتصال به سایت دیگر



trade_mark
یک شنبه 02 خرداد 1389, 12:23 عصر
سلام دوستان
آیا امکان این که به یه سایت وصل بشم و یه سری اطلاعات رو از یه سایت دیگه ارسال کنیم و نتیجه اون رو برگردونیم ،تو php امکانش هست؟
نمیدونم سوالمو درست گفتم یا نه؟
بزاری بیشتر توضیح بدم .فرض کنین من سایت x1 رو دارم و می خوام از سایت x1 به سایت x2 در قسمت کاربری لاگین کنم .حالا با چه دستوری می تونم این اطلاعات رو به اون صفحه پست کنم؟و با چه دستوری می تونم بفهمم که لاگین انجام شده یا نه؟
دوستان کلا هر اطلاعی در این مورد دارن اعلام کنن
با تشکر

pashaie
یک شنبه 02 خرداد 1389, 15:16 عصر
واسه این کار می تونی از curl استفاده کنی

کد لاگین کردن به ورد پرس




$username="admin";
$password="blog";
$url="http://wordpressblogURL/";
$cookie="cookie.txt";

$postdata = "log=". $username ."&pwd=". $password ."&wp-submit=Log%20In&redirect_to=". $url ."blog/wordpress/wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
echo $result;
exit;

trade_mark
یک شنبه 02 خرداد 1389, 18:18 عصر
دوست عزیز یکم درباره کد هاتون توضیح میدی؟

curl_setopt ($ch, CURLOPT_URL, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "blog/wordpress/wp-login.php");

curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
با تشکر

pashaie
یک شنبه 02 خرداد 1389, 21:27 عصر
دوست عزیز یکم درباره کد هاتون توضیح میدی؟
چشم!

از تابع curl_setopt برای ست کردن پارامتر های مختلف curl استفاده می شه


curl_setopt ($ch, CURLOPT_URL, $url . "blog/wordpress/wp-login.php");

این دستور پارامتر CURLOPT_URL که آدرس پیجی رو که قراره اطلاعات بهش ارسال بشه و نتیجهازش خونده بشه رو ست می کنه


curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
این دستور باعث می شه که اعتبار سایت مورد نظر رو چک نکنه - یعنی اگه سایت رو SSL بود چک نمیکنه که آیا امضای دیجیتالی سایت معتبر هست یا نه


curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
بشخصه با این گزینه خیلی حال میکنم!
با استفاده از این آپشن، به سروری که می خوای درخواست رو بهش بفرستی، می گیه که از چه بروزی داری استفاده می کنی!


curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
حداکثر زمانی که اگه سرور مورد نظر پاسخ نداد، برنامه خاتمه پیدا کنه


curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
این دستور باعث می شه که اگه سرور بعد از پردازش اطلاعاتی که بهش ارسال کردی، تصمیم گرفت به پیج دیگه ای ردایرکت کنه، برنامه هم به اون پیج رداریکت کنه و در نتیجه پاسخ نهایی، درست باشه


curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
این دستور باعث می شه که پاسخ دریافتی از سرور مورد نظر مستقیم تو خروجی چاپ بشه، اگه بخوای که پاسخ رو قبل از چاپ بررسی کنی، باید مقدار این آپشن رو True کنی


curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
اسم فایلی که قراره کوکی های سرور مورد نظر رو داخلش ذخیره کنی


curl_setopt ($ch, CURLOPT_REFERER, $url . "blog/wordpress/wp-login.php");
اینم که مشخه چی کار می کنه!
نتیجه اخلاقی این دستو اینه که هیچوقت به $_SERVER['HTTP_REFERER'] اعتماد نکنی


curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
اطلاعاتی که قراره با درخواست به سرور مورد نظر ارسال بشه


curl_setopt ($ch, CURLOPT_POST, 1);
این دستورم نوع درخواست رو روی POST تنظیم می کنه

trade_mark
دوشنبه 03 خرداد 1389, 00:08 صبح
مستر پاشایی دست گلت درد نکنه
من رفتم رو کد هاتون کار کنم
اگه سوالی بود دوباره مزاحمت می شم:لبخند:

parsaatef
سه شنبه 24 آبان 1390, 18:03 عصر
سلام من یه سایت دارم که توش ثبت آنلاین دامنه رو گذاشتم ولی تابع fsockopen( $server, 43 ) نمی تونه به سرور ها وصل بشه و خطای 110 رو میده که یعنی connection time out
می خواستم بدونم دومین من یا هاست من باید شرایط خاصی داشته باشه که این تابع بتونه درست کار کنه یا درکل مشکل از کجاست؟