PDA

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



mohammadangizi
پنج شنبه 12 اسفند 1395, 12:26 عصر
با عرض سلام خدمت اساتید محترم بنده در حال برنامه نویسی یک برنامه با php هستم که بتوانیم از یک سرور دیگر اطلاعاتی مانند شماره سریال کارت ماشین یا شماره گواهینامه را به سایت راهور بفرستم و اطلاعات دریافتی را ارسال کنم و به کاربر نمایش دهم این کار رو برای ایجاد ربات راهور در تلگرام می خواهیم انجام دهیم که من زبان php را برای انجام این کار برگزیدم.

فقط در حین برنامه نویسی و اجرای کد به یک مشکلی بر خودم که نمی دانم آن را چگونه رفع کنم و از اساتیدی که در این کار حرفه ای می باشند درخواست راهنمایی میخواهم.

ابتداع این لینک را مشاهده نمایید.
http://estelam.rahvar120.ir/index.jsp?siteid=1&fkeyid=&siteid=1&pageid=2371666

در این صفحه اطلاعات زیر با متد POST به سرور ارسال می شه و در صورت بررسی و صحت اطلاعات به آدرس زیر منتقل می شه
http://estelam.rahvar120.ir/index.jsp?siteid=1&fkeyid=&siteid=1&pageid=2542

من یک برنامه با استفاده از 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);
$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


144612


اسکرین شات صفحه 2


144613

samdoft
پنج شنبه 12 اسفند 1395, 18:39 عصر
کدت کار نکرد واسم اخطار امنیتی اورد حتی لینک پیج رو هم عوض کردم باز نشد ولی شما
این کد رو میان کدهات قرار بده بببین بازم مشکل داری؟:



curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );

mohammadangizi
جمعه 13 اسفند 1395, 00:01 صبح
کدت کار نکرد واسم اخطار امنیتی اورد حتی لینک پیج رو هم عوض کردم باز نشد ولی شما
این کد رو میان کدهات قرار بده بببین بازم مشکل داری؟:



curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );

سلام اره بازم همون مشکل رو داره

samdoft
جمعه 13 اسفند 1395, 01:03 صبح
سلام اره بازم همون مشکل رو داره

سلام این پیام رو واسه من میاره:

Malicious Activity Detected

اگه میتونی یه نسخه از اونی که واسه خودت کار میکنه اپلود کن

mohammadangizi
شنبه 14 اسفند 1395, 00:21 صبح
سلام این پیام رو واسه من میاره:

Malicious Activity Detected

اگه میتونی یه نسخه از اونی که واسه خودت کار میکنه اپلود کن

اجرایی
http://elshanco.ir/index.php

دانلود
http://elshanco.ir/index.php.zip


البته روی سرور این ارور رو برای منم داد من روی لوکال تست میکردم

samdoft
شنبه 14 اسفند 1395, 16:51 عصر
اجرایی
http://elshanco.ir/index.php

دانلود
http://elshanco.ir/index.php.zip


البته روی سرور این ارور رو برای منم داد من روی لوکال تست میکردم

علت اینکه اسکریپت به درستی کار نمیکنه اینه که اسکریپت ها و استایلها(سی اس اس) نسبی ادرس دهی شدن تو سایت
و وقتی لود میشن به عنوان مثال اینجوری لود میشن:

http://localhost/uploads/theme.init.js

در نتیجه سایت شما به درستی لود نمیشه و خیلی از اسکریپتها کار نمیکنه

من واسه حل مشکل شما با استفاده از ریجکس لینک ها رو ادرس دهی مطلق کردم ولی بازهم سایت به خاطر
مسائل امنیتی به درستی لود نمیشه چون که وقتی شما سایت رو لود میکنید در مرورگرتون کوکی (و کوکی سشن) باقی میذاره
که این با CURL امکان پذیر نیست...
موفق باشید...

mohammadangizi
دوشنبه 16 اسفند 1395, 18:42 عصر
علت اینکه اسکریپت به درستی کار نمیکنه اینه که اسکریپت ها و استایلها(سی اس اس) نسبی ادرس دهی شدن تو سایت
و وقتی لود میشن به عنوان مثال اینجوری لود میشن:

http://localhost/uploads/theme.init.js

در نتیجه سایت شما به درستی لود نمیشه و خیلی از اسکریپتها کار نمیکنه

من واسه حل مشکل شما با استفاده از ریجکس لینک ها رو ادرس دهی مطلق کردم ولی بازهم سایت به خاطر
مسائل امنیتی به درستی لود نمیشه چون که وقتی شما سایت رو لود میکنید در مرورگرتون کوکی (و کوکی سشن) باقی میذاره
که این با CURL امکان پذیر نیست...
موفق باشید...

ممنون هیچ راهی وجود نداره توی PHP که بشه این کار رو باهاش انجام داد ؟
الان توی برنامه نویسی اندروید چطوری این کار رو انجام میدن مثلا الان خیلی از نرم افزار هایی توی کافه بازار وجود داره که حلافی رو از سایت راهور میگیره و نمایش میده

samdoft
سه شنبه 17 اسفند 1395, 13:23 عصر
ممنون هیچ راهی وجود نداره توی PHP که بشه این کار رو باهاش انجام داد ؟
الان توی برنامه نویسی اندروید چطوری این کار رو انجام میدن مثلا الان خیلی از نرم افزار هایی توی کافه بازار وجود داره که حلافی رو از سایت راهور میگیره و نمایش میده
فعلاخودسایت از کار افتاده و استعلام تخلفات کار نمیکنه...
اگه سایت دوباره راه افتاد به احتمال زیاد بتونم اسکریپتشو با پی اچ پی براتون بنویسم...