مشکل در دریافت نتایج آزمون سراسری توسط کد php از راه دور !

NabiKAZ

Well-Known Member
سلام
شخصی شماره داوطلبی آزمون سراسری رو گم کرده، سعی کردم به قطعه کد زیر شماره های مختلف رو تست کنم. اما در خروجی چیزی ظاهر نشد.
در مورد فرم های سایت های دیگر مشکلی نیست ، اما در مورد فرم جستجوی نتایج آزمون سراسری مشکل وجود دارد.
PHP:
	$req = &new HTTP_Request('http://www.sanjesh.org/result_dav.php');	
	$req->setMethod(HTTP_REQUEST_METHOD_POST);
		
	$req->addPostData('sds', '1111111');
	$req->addPostData('slns', 'نام خانوادگی');
	$req->addPostData('sns', 'نام');
	$req->addPostData('sshs', '11111');
	$req->addPostData('stts', '66');

	$req->sendRequest();
	$response1 = $req->getResponseBody();
	print $response1;

تشکر
نبی
 
آخرین ویرایش:

1p30

Member
یک سئوال شما که به دیتابیس وصل نشدید از کجا بیاره؟
 

mosi20

Active Member
خوب پارامتر های دیگه هم مهمه
مثلا رفر را بفرست
کوکی ست کن
سشن میفرسته
و...
 

NabiKAZ

Well-Known Member
یک سئوال شما که به دیتابیس وصل نشدید از کجا بیاره؟

نیازی به اینکار نیست .
کاری که انجام میشه اینه که پارامترها خودکار به url پاس داده میشن و خروجی دستی نمایش داده میشه. یعنی از بانک اطلاعاتی خود سایت سنجش استفاده میکنه.
 

NabiKAZ

Well-Known Member
خوب پارامتر های دیگه هم مهمه
مثلا رفر را بفرست
کوکی ست کن
سشن میفرسته
و...


سلام
از راهنمایی شما ممنونم.
مشکل در همون رفرر بود که توسط دستور زیر باید انجام میشد:
PHP:
$req->addHeader('Referer', 'http://www.sanjesh.org/index.php');
خوشبختانه با اضافه کردن این دستور به کد بالا مشکل حل شد.
دوستان میتونن از این اسکریپت مجانی استفاده کنند !!!!!!

تشکر
نبی
 

nima_divone

Member
خوب مرسی...ممنون...
چیزه دیگه ای احتیاج نداره ؟؟؟؟
همین کافیه ؟؟؟؟
 

HotHost.ir

Member
سلام
نبی جان کار نکرد.
خودم هم یکم تغیرش دادم... اما باز هم کار نکرد!
میشه کمک کنید؟
 

NabiKAZ

Well-Known Member
سلام

چون دوستان nima_divone ، it5 و HotHost.ir سوال پرسیده بودند، یک بار کامل داستان رو شرح میدم.

این کد کاملش است:
PHP:
<?PHP
    include('HTTP/Request.php');

    $req = &new HTTP_Request('http://www.sanjesh.org/result_dav.php');
    $req->setMethod(HTTP_REQUEST_METHOD_POST);
    $req->addHeader('Referer', 'http://www.sanjesh.org/index.php');

    $req->addPostData('sds', 'شماره داوطلبی');
    $req->addPostData('slns', 'نام خانوادگی');
    $req->addPostData('sns', 'نام');
    $req->addPostData('sshs', 'شماره شناسنامه');
    $req->addPostData('stts', 'دو رقم سمت راست سال تولد');

    $req->sendRequest();
    $response1 = $req->getResponseBody();
    print $response1; 
?>
طرز استفاده هم سادس، کافیه "شماره داوطلبی" ، "نام خانوادگی" ، "نام" ، "شماره شناسنامه" ، "دو رقم سمت راست سال تولد" رو در محل های مشخصه وارد کنید و اسکریپت php رو اجرا کنید. در صورتی که اطلاعات صحیح باشد کارنامه ظاهر خواهد شد. اینکار را به صورت local هم میشه انجام داد.

مورد استفاده این کد هم زمانی است که مثلا شما شماره داوطلبی را گم کرده اید و سایر اطلاعات را دارید. کافیست اطلاعات خود را وارد کنید و بجای شماره داوطلبی از متغییر استفاده کنید و آن را در یک حلقه قرار دهید. مثل کد زیر:
PHP:
<?PHP
set_time_limit(0);
include('HTTP/Request.php');
for ($i=10000; $i<=20000; $i++)
{
    $req = &new HTTP_Request('http://www.sanjesh.org/result_dav.php');
    $req->setMethod(HTTP_REQUEST_METHOD_POST);
    $req->addHeader('Referer', 'http://www.sanjesh.org/index.php');

    $req->addPostData('sds', $i);
    $req->addPostData('slns', 'حسینی');
    $req->addPostData('sns', 'حسن');
    $req->addPostData('sshs', '123456');
    $req->addPostData('stts', '67');

    $req->sendRequest();
    $response1 = $req->getResponseBody();
    print $response1;
}

?>
کد بالا داوطلب با مشخصات بالا را به ازای کلیه شماره داوطلبی های 10000 تا 20000 امتحان میکنه و در صورتی که شماره صحیح پیدا بشه کارنامه نمایش داده میشه.

نکه مهم: کتابخونه PEAR رو باید نصب داشته باشید.

یادتون باشه تاوقتی که نتایج بر روی سایت سازمان سنجش موجود باشه کد کار میکنه.

تشکر
نبی
 
آخرین ویرایش:

RainDigital

Member
چه جلب مخفی

اینطوری به هر آدرسی میشه پارمتر هایی رو پست کرد؟

من یه تابع تویه نصب یه برنامه ای دیدم که بجای get کردن step نصب اونها رو پست میکرد.

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

NabiKAZ

Well-Known Member
ممنون ، فقط میشه کد Request.php رو هم بذاری؟
HTTP_Request جزو کتابخونه های PEAR هست که معمولا روی هر سروری نصب است.
با این حال از اینجا میتونید دون لود کنید:
http://pear.php.net/package/HTTP_Request/download

خود این بسته نیاز به دو بسته زیر نیز داره:
http://pear.php.net/package/Net_URL/download
http://pear.php.net/package/Net_Socket/download

همچنین بسته اصلی PEAR هم که مسلماً لازمه:
http://pear.php.net/package/PEAR/download


تشکر
نبی
 

rezamasoom

New Member
سلام
ببخشید چند وقته دیگه نتایج آزاد رو می دن منم شماره داوطلبیم رو گم کردم
کسی می تونه کمکم کنه ؟؟
مرسی
 

NabiKAZ

Well-Known Member
سلام
راستش اصلاً فکر نمیکردم از این موضوع اینقدر استقبال بشه، تعدادی از دوستان پیغام خصوصی فرستادند و در مورد این موضوع سوال کردند.
شاید همین مسئله باعث بشه یه نسخه جستجوگر آنلاین برای دریافت نتایج بدین روش بنویسم. هیچ قولی نمیدم چون خیلی سرم شلوغه. اما سعی میکنم در اولین فرصت اینکار رو بکنم.

تشکر
 

jhoseini

Member
ببخشید یه سوال
تا حال باا این HTTP_Request کار نکرده بودم
فرقش با fsockopen چیه؟
مزیت یا خصوصیت خاصی داره؟

ممنون : )
 

rezamasoom

New Member
دوستای منم بیشترشون همین مشکل رو دارن
یعنی اگه همچین کاری بکنید خیلی کارتون درسته .....
منتظرم :d
 

NabiKAZ

Well-Known Member
ببخشید یه سوال
تا حال باا این HTTP_Request کار نکرده بودم
فرقش با fsockopen چیه؟
مزیت یا خصوصیت خاصی داره؟

ممنون : )

تقریبا مشابه هستند.

HTTP_Request یه کتابخونه کامل از مجموعه PEAR با امکانات و توانایی های زیاد و انعطاف پذیری بالا است ، مثل ارسال داده ها به url به روش های get, post ,... و ست کردن رفرر ، ست کردن کوکیها و کلاً تغییر در هدر و ....

اما fsockopen تنها یه تابع ساده با چند پارامتر ورودی جهت برگردوندن محتوای یک url است که انعطاف پذیری زیادی ندارد.

البته اگر اشتباه نکنم نهایتاً HTTP_Request در درون خود از همون fsockopen کمک میگیره.


تشکر
 

جدیدترین ارسال ها

بالا