PDA

View Full Version : سوال: کمک. فرستادن اطلاعات از طریق POST به سایت دیگه واسه Login



ataomega
سه شنبه 03 شهریور 1388, 12:42 عصر
سلام به همه.

دوستان عزیز، یه کدی نوشتم که خودش میره با یوزر پسی که داره تو nic.ir لاگین می کنه ولی خروجیش خالیه کسی می تونه کمکم کنه؟

خیلی ممنون می شم

<?php
$params = array(
'handlemail' => 'XXXXXXXX',
'passwd' => 'YYYYYYYY'
);

$curl = curl_init() or die(curl_error());
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$submitUrl = "https://www.nic.ir/Login";
curl_setopt($curl, CURLOPT_URL, $submitUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);

$result = curl_exec($curl);
echo $result;
curl_close($curl);
?>


XXXXXXX نام کاربری
YYYYYYYY پسورد

ataomega
سه شنبه 03 شهریور 1388, 13:11 عصر
ممنون از جوابتون
یعنی چطوری؟ کجای کد رو باید عوض کنم؟
<form> که ننوشتم براش action تعریف کنم :متفکر:

ataomega
سه شنبه 03 شهریور 1388, 13:23 عصر
"tarhebartar" جان میشه یه راهنمایی بکنی؟

امیـرحسین
سه شنبه 03 شهریور 1388, 16:33 عصر
شما همه input ها رو باید ارسال کنید. غیر از یوزر و پسورد، دو تا دیگه هم هست. به فرمش نگاه کنید. یه فیلد مخفی داره و یک submit. که submitاش اسم نداره.
$params = array(
'handlemail' => 'XXXXXXXX',
'passwd' => 'YYYYYYYY',
'step' => '1'
);

ataomega
سه شنبه 03 شهریور 1388, 17:07 عصر
خیلی خیلی ممنون از جوابتون.
واسه گرفتن اطلاعات یا مثلا یه چیز خاص از صفحه بعد از لاگین باید از file_get_content استفاده کنم؟ آخه همه صفحه رو نمی خوام فقط یه قسمت خاص.

میشه اینم یه لطفی بکنین راهنمایی کنین؟

ممنون

ataomega
سه شنبه 03 شهریور 1388, 17:19 عصر
بازم خروجی سفید بود.

امیـرحسین
سه شنبه 03 شهریور 1388, 17:59 عصر
شاید آدرس صفحه ای که ازش فوروارد شدید هم لازم داشته باشه. اون رو هم براش تعیین کنید. همینطور تابع curl_error رو آخر هم بیارید ببینید اروری وجود داره یا نه؟

ataomega
چهارشنبه 04 شهریور 1388, 00:09 صبح
عزیز آدرس صفحه که گفتین رو چجوری بذارم؟ (http_refer...)

امیـرحسین
چهارشنبه 04 شهریور 1388, 05:25 صبح
curl_setopt($curl, CURLOPT_REFERER, $submitUrl);
تو یه سایتی، این ثابت cURL رو معرفی کرده بود و گفته که به دلیل سادگی همچین کاری، هیچ کانتری موثق نیست حتی گوگل انلایتکس!

ataomega
چهارشنبه 04 شهریور 1388, 15:38 عصر
متاسفانه بازم خروجی سفید هست.

<?php
$params = array(
'handlemail' => 'email',
'passwd' => 'password',
'step' => '1'
);

$curl = curl_init() or die(curl_error());
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

$submitUrl = "https://www.nic.ir/Login";
curl_setopt($curl, CURLOPT_URL, $submitUrl);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_REFERER, $submitUrl);

$result = curl_exec($curl);
echo $result;
echo "<br>" . curl_error();
?>

امیـرحسین
چهارشنبه 04 شهریور 1388, 16:16 عصر
من با cURL کار نکردم. اگر توابعش رو درست استفاده کردید که پس نمیشه. شاید المانهای دیگه ای برای لاگین داشته باشه...

ataomega
چهارشنبه 04 شهریور 1388, 21:15 عصر
عزیز بازم همون مشکل قبلی. راهی به فکرتون نمی رسه؟

ataomega
پنج شنبه 05 شهریور 1388, 10:26 صبح
سلام tarhebartar جان آخه با Java سابمیت کنم چه بخوام چه نخوام می ره به اون سایت و نشونش می ده من چند تا کار می خوام اونجا بکنم یکیش لاگین کردن هست یوزر قرار نیست صفحه nic.ir رو ببینه
وگرنه یه فرم ساده html هم نوشتم کار کرد

به هر حال خیلی ممنون از راهنمایی تون

امیـرحسین
پنج شنبه 05 شهریور 1388, 14:16 عصر
اولا، دوست عزیز، واقعا شاید نشه! مثلا اگر براساس SESSION باشه چی؟
دوما، این کار شما غیرقانونیه! شما دارید توسط Phishing به الطلاعات کاربران دسترسی پیدا می کنید!!!!

ataomega
پنج شنبه 05 شهریور 1388, 17:22 عصر
عزیز غیرقانونی چرا، nic.ir به نمایندگانش API نداده. این سیستم هم قبلا توسط سایت هایی از جمله پ ا ر س ی ن ی ک، م ی ه ن ن ی ک نوشته شده
این یه سیستم واسه نمایندگان nic.ir هست مثل irreseller.ir که نماینده ها امکان پرداخت آنلاین هزینه دامنه ها رو به یوزراشون می دن.
سوء تفاهم نشه

ataomega
پنج شنبه 05 شهریور 1388, 18:59 عصر
سلام. یه تغییراتی تو کد دادم بالاخره خروجی داد ولی این طوری ! :

HTTP/1.1 100 Continue HTTP/1.1 302 Found Date: Thu, 27 Aug 2009 14:56:46 GMT
Server: Apache/2.2.3 (CentOS) X-Powered-By: PHP/5.2.6
Set-Cookie: IRNIC=tc3u2sl96rbrdbdsmepg8qrsc0; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache Location: My_Domains Content-Length: 0 Connection: close Content-Type: text/html; charset=UTF-8

این یعنی درست اجرا شده؟

امیـرحسین
پنج شنبه 05 شهریور 1388, 19:59 عصر
عزیز غیرقانونی چرا، nic.ir به نمایندگانش API نداده. این سیستم هم قبلا توسط سایت هایی از جمله پ ا ر س ی ن ی ک، م ی ه ن ن ی ک نوشته شده
این یه سیستم واسه نمایندگان nic.ir هست مثل irreseller.ir که نماینده ها امکان پرداخت آنلاین هزینه دامنه ها رو به یوزراشون می دن.
سوء تفاهم نشه
شما هم سوء تفاهم نشه. من شما رو نگفتم. کارتون رو گفتم. اون سایتها هم اشتباه می کنند!
من یوزر و پسوردم رو توی یک فرم وارد می کنم و اون فرم بجای اینکه من رو مستقیما وارد اون سایت کنه، قبلش، یوزر و پسورد من رو یه جا ذخیره می کنه....
اگر ایرنیک همچین چیزی رو متوجه بشه، باید با عنوان سوء استفاده و Phishing شکایت کنه. اینجوری شما ممکنه تحت اتهام کار نکرده واقع بشید.
اگر حرف من رو قبول ندارید، با سایتش تماس بگیرید بگید من میخوام از سایتم لاگین کنم. راهنماییم کنید.....
این نظر من بود واسه هشدار. نه برای سایت شما، کلا برای همه فرمهای این سبکی....

ataomega
جمعه 06 شهریور 1388, 10:30 صبح
شما هم سوء تفاهم نشه. من شما رو نگفتم. کارتون رو گفتم. اون سایتها هم اشتباه می کنند!
من یوزر و پسوردم رو توی یک فرم وارد می کنم و اون فرم بجای اینکه من رو مستقیما وارد اون سایت کنه، قبلش، یوزر و پسورد من رو یه جا ذخیره می کنه....
اگر ایرنیک همچین چیزی رو متوجه بشه، باید با عنوان سوء استفاده و Phishing شکایت کنه. اینجوری شما ممکنه تحت اتهام کار نکرده واقع بشید.
اگر حرف من رو قبول ندارید، با سایتش تماس بگیرید بگید من میخوام از سایتم لاگین کنم. راهنماییم کنید.....
این نظر من بود واسه هشدار. نه برای سایت شما، کلا برای همه فرمهای این سبکی....

سلام.
عزیز قرار نیست کسی یوزر نیم پسوردشو وارد کنه! این اسکریپت واسه نماینده هاست! یه اسکریپت که یوزر میاد عضو میشه حسابشو شارژ می کنه اسم دامنه ای که می خواد پرداخت شه وارد می کنه بعد پرداخت می شه. که فعلا اولش گیر کردم.

کسی قرار نیس یوزر پس خودشو وارد کنه فقط نماینده، اونم یوزر پسش تو دیتابیس ثبت می شه این واسه امتحانه.

امیدوارم مسئله حل شده باشه.
حالا این کد درست هست؟ این خروجی که داده درسته؟