راهنمایی در تکمیل برنامه ارسال اطلاعات و کار با فرم های سایت راهور از طریق CURL
با عرض سلام خدمت اساتید محترم بنده در حال برنامه نویسی یک برنامه با php هستم که بتوانیم از یک سرور دیگر اطلاعاتی مانند شماره سریال کارت ماشین یا شماره گواهینامه را به سایت راهور بفرستم و اطلاعات دریافتی را ارسال کنم و به کاربر نمایش دهم این کار رو برای ایجاد ربات راهور در تلگرام می خواهیم انجام دهیم که من زبان php را برای انجام این کار برگزیدم.
فقط در حین برنامه نویسی و اجرای کد به یک مشکلی بر خودم که نمی دانم آن را چگونه رفع کنم و از اساتیدی که در این کار حرفه ای می باشند درخواست راهنمایی میخواهم.
ابتداع این لینک را مشاهده نمایید.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
در این صفحه اطلاعات زیر با متد POST به سرور ارسال می شه و در صورت بررسی و صحت اطلاعات به آدرس زیر منتقل می شه
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
من یک برنامه با استفاده از curl نوشتم که اطلاعات رو ارسال میکنه اطلاعات رو که وارد میکنم فقط پیغام "لطفا منتظر بمانید ..." رو نمایش می ده و جلوتر نمیره تا اطلاعات بعدی رو نمایش بده.
نمونه کد نوشته شده + اسکرین شات رو براتون می زارم تا مشکل رو ببینید و بررسی کنید.
کد:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>استعلام تخلفات رانندگی و نمره منفی</title>
</head>
<body>
<?php
if(isset($_POST['send'])){
$aform = $_POST['aform'];
$rc = $_POST['rc'];
$duration = $_POST['duration'];
$hashtraghami = $_POST['hashtraghami'];
$capcha = $_POST['capcha'];
// آماده سازی داده ها
$data = array();
$data['aform'] = $aform;
$data['rc'] = $rc;
$data['duration'] = $duration;
$data['hashtraghami'] = $hashtraghami;
$data['capcha'] = $capcha;
// آماده سازی داده ها برای ارسال
$post_str = '';
foreach($data as $key=>$val) {
$post_str .= $key.'='.urlencode($val).'&';
}
$post_str = substr($post_str, 0, -1);
// تصال به URL مورد نظر
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://estelam.rahvar120.ir/index.jsp?siteid=1&fkeyid=&siteid=1&pageid=2371666');
/* ارسال(submit) داده ها */
## ابتدا بهcURL اعلام می کنیم که می خواهیم با متد POST داده ارسال کنیم
curl_setopt($ch, CURLOPT_POST, TRUE);
## سپس داده هایی(فیلدهایی) را که می خواهیم ارسال کنیم به cURL تحویل می دهیم
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str);
## در نهایت با استفاده از curl_exec داده ها را ارسال کرده و پاسخ را دریافت می کنیم و نمایش می دهیم(البته ممکن است شما با regular expression داده ها را دستکاری و یا چک کنید سپس پسغام دلخواه را به کاربر نمایش دهید)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
## Redirect
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
}
?>
<form action="" method="post" autocomplete="off" enctype="application/x-www-form-urlencoded" dir="rtl">
<input name='aform' value='add' type='hidden'/>
<input name='rc' value='ELSHANCO0RAHVAR' type='hidden'/>
<input name='duration' id='duration' value="0" type='hidden'/>
<p><input type="text" name="hashtraghami" id="hashtraghami" dir="ltr" maxlength="8" size="8" onkeypress='return onlyNumbers(event);'></p>
<p><img src="http://estelam.rahvar120.ir/includes/captcha.jpg?rand=<?php echo rand(1,100); ?>"><br><input type="text" value="" name="capcha" id="capcha" dir="ltr" maxlength="6" size="6"></p>
<p><input type="submit" name="send" id="send" value="استعلام"></p>
</form>
<script language=javascript>
function onlyNumbers(evt){var charCode = (evt.which) ? evt.which : event.keyCode;if (charCode > 31 && (charCode < 48 || charCode > 57))return false;return true;}
</script>
</body>
</html>
اسکرین شات صفحه 1
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اسکرین شات صفحه 2
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]