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

شروع موضوع توسط NabiKAZ ‏4 آگوست 2007 در انجمن برنامه‌نویسی با PHP

  1. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    سلام
    شخصی شماره داوطلبی آزمون سراسری رو گم کرده، سعی کردم به قطعه کد زیر شماره های مختلف رو تست کنم. اما در خروجی چیزی ظاهر نشد.
    در مورد فرم های سایت های دیگر مشکلی نیست ، اما در مورد فرم جستجوی نتایج آزمون سراسری مشکل وجود دارد.
    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;
     
    تشکر
    نبی
     
    آخرین ویرایش: ‏4 آگوست 2007
    نوشته شده توسط NabiKAZ در ‏4 آگوست 2007
    3dsmax از این پست تشکر کرده است.
  2. 1p30

    1p30 Member

    ارسال‌ها:
    724
    تشکر شده:
    244
    امتیاز دستاورد:
    16
    یک سئوال شما که به دیتابیس وصل نشدید از کجا بیاره؟
     
    نوشته شده توسط 1p30 در ‏4 آگوست 2007
  3. mosi20

    mosi20 Active Member

    ارسال‌ها:
    1,296
    تشکر شده:
    220
    امتیاز دستاورد:
    36
    خوب پارامتر های دیگه هم مهمه
    مثلا رفر را بفرست
    کوکی ست کن
    سشن میفرسته
    و...
     
    نوشته شده توسط mosi20 در ‏4 آگوست 2007
  4. mosi20

    mosi20 Active Member

    ارسال‌ها:
    1,296
    تشکر شده:
    220
    امتیاز دستاورد:
    36
    نوشته شده توسط mosi20 در ‏4 آگوست 2007
  5. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    نیازی به اینکار نیست .
    کاری که انجام میشه اینه که پارامترها خودکار به url پاس داده میشن و خروجی دستی نمایش داده میشه. یعنی از بانک اطلاعاتی خود سایت سنجش استفاده میکنه.
     
    نوشته شده توسط NabiKAZ در ‏5 آگوست 2007
    3dsmax از این پست تشکر کرده است.
  6. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36

    سلام
    از راهنمایی شما ممنونم.
    مشکل در همون رفرر بود که توسط دستور زیر باید انجام میشد:
    PHP:

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

    تشکر
    نبی
     
    نوشته شده توسط NabiKAZ در ‏5 آگوست 2007
    3dsmax از این پست تشکر کرده است.
  7. nima_divone

    nima_divone Member

    ارسال‌ها:
    86
    تشکر شده:
    34
    امتیاز دستاورد:
    6
    نبی جان همشهری عزیز میشه لینک این اسکریپتت رو بدی ؟؟؟
     
    نوشته شده توسط nima_divone در ‏5 آگوست 2007
  8. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    سلام همشهری
    کدش رو که اون بالا نوشتم.
    فقط بعد از setMethod خط جدیدی که در پست بعدی نوشتم رو اضافه کن
     
    نوشته شده توسط NabiKAZ در ‏5 آگوست 2007
    3dsmax از این پست تشکر کرده است.
  9. nima_divone

    nima_divone Member

    ارسال‌ها:
    86
    تشکر شده:
    34
    امتیاز دستاورد:
    6
    خوب مرسی...ممنون...
    چیزه دیگه ای احتیاج نداره ؟؟؟؟
    همین کافیه ؟؟؟؟
     
    نوشته شده توسط nima_divone در ‏5 آگوست 2007
  10. it5

    it5 Member

    ارسال‌ها:
    123
    تشکر شده:
    1
    امتیاز دستاورد:
    16
    یک سوال!
    چطور از این کد میشه استفاده کرد؟
     
    نوشته شده توسط it5 در ‏5 آگوست 2007
  11. HotHost.ir

    HotHost.ir Member

    ارسال‌ها:
    317
    تشکر شده:
    54
    امتیاز دستاورد:
    16
    سلام
    نبی جان کار نکرد.
    خودم هم یکم تغیرش دادم... اما باز هم کار نکرد!
    میشه کمک کنید؟
     
    نوشته شده توسط HotHost.ir در ‏5 آگوست 2007
    RainDigital از این پست تشکر کرده است.
  12. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    سلام

    چون دوستان 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 رو باید نصب داشته باشید.

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

    تشکر
    نبی
     
    آخرین ویرایش: ‏13 آگوست 2007
    نوشته شده توسط NabiKAZ در ‏13 آگوست 2007
    robic، 3dsmax، rezamasoom و 4 نفر دیگر از این ارسال تشکر کرده اند.
  13. tabib_m

    tabib_m Member

    ارسال‌ها:
    689
    تشکر شده:
    268
    امتیاز دستاورد:
    16
    ممنون ، فقط میشه کد Request.php رو هم بذاری؟
     
    نوشته شده توسط tabib_m در ‏13 آگوست 2007
    RainDigital و HotHost.ir از این پست تشکر کرده اند.
  14. RainDigital

    RainDigital Member

    ارسال‌ها:
    729
    تشکر شده:
    238
    امتیاز دستاورد:
    16
    چه جلب مخفی

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

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

    از این روش نبود یه تابع بود. الان نه تابع یادمه نه اسم برنامه.
    اگر میدونید بگید.
     
    نوشته شده توسط RainDigital در ‏14 آگوست 2007
  15. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    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


    تشکر
    نبی
     
    نوشته شده توسط NabiKAZ در ‏14 آگوست 2007
    robic، 3dsmax، iroweb و 3 نفر دیگر از این ارسال تشکر کرده اند.
  16. rezamasoom

    rezamasoom New Member

    ارسال‌ها:
    8
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    سلام
    ببخشید چند وقته دیگه نتایج آزاد رو می دن منم شماره داوطلبیم رو گم کردم
    کسی می تونه کمکم کنه ؟؟
    مرسی
     
    نوشته شده توسط rezamasoom در ‏29 آگوست 2007
  17. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    سلام
    راستش اصلاً فکر نمیکردم از این موضوع اینقدر استقبال بشه، تعدادی از دوستان پیغام خصوصی فرستادند و در مورد این موضوع سوال کردند.
    شاید همین مسئله باعث بشه یه نسخه جستجوگر آنلاین برای دریافت نتایج بدین روش بنویسم. هیچ قولی نمیدم چون خیلی سرم شلوغه. اما سعی میکنم در اولین فرصت اینکار رو بکنم.

    تشکر
     
    نوشته شده توسط NabiKAZ در ‏29 آگوست 2007
    robic، 3dsmax، iroweb و یک نفر دیگر از این ارسال تشکر کرده اند.
  18. jhoseini

    jhoseini Member

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

    ممنون : )
     
    نوشته شده توسط jhoseini در ‏29 آگوست 2007
  19. rezamasoom

    rezamasoom New Member

    ارسال‌ها:
    8
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    دوستای منم بیشترشون همین مشکل رو دارن
    یعنی اگه همچین کاری بکنید خیلی کارتون درسته .....
    منتظرم :d
     
    نوشته شده توسط rezamasoom در ‏29 آگوست 2007
    NabiKAZ از این پست تشکر کرده است.
  20. NabiKAZ

    NabiKAZ Active Member

    ارسال‌ها:
    1,182
    تشکر شده:
    429
    امتیاز دستاورد:
    36
    تقریبا مشابه هستند.

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

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

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


    تشکر
     
    نوشته شده توسط NabiKAZ در ‏30 آگوست 2007
    robic، my friend و jhoseini از این ارسال تشکر کرده اند.

به اشتراک بگذارید