PDA

View Full Version : ارسال فرم با متد پست به صورت خودکار با php



cpuram
سه شنبه 31 اردیبهشت 1392, 17:17 عصر
سلام.
میخوام یه فرم رو با متد post به صورت اتوماتیک ارسال کنم یعنی وقتی صفحه فراخوانی میشه فرم ارسال بشه به یک صفحه ولی به javascript اعتماد ندارم. لطفا راهنمایی کنید.
مثلا درگاه بانک ها به صورت خودکار اطلاعات بازگشت رو با متد پست ارسال میکنن.

Tarragon
سه شنبه 31 اردیبهشت 1392, 17:49 عصر
فکر کنم این بدرد بخوره!
http://barnamenevis.org/showthread.php?386354

xcodex
سه شنبه 31 اردیبهشت 1392, 17:53 عصر
با سلام

به وسیله CURL میشه فرستاد

یه نمونه :



$url = 'http://localhost/curl/test.php';
$params = "keyword=123&zxczxc=333"; //you must know what you want to post
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$result=curl_exec ($ch);
curl_close ($ch);

echo "Results: <br>".$result;


در صفحه test.php



print_r($_POST);

cpuram
سه شنبه 31 اردیبهشت 1392, 17:56 عصر
تشکر. میشه یه مثال بزنید؟

cpuram
سه شنبه 31 اردیبهشت 1392, 18:07 عصر
با سلام

به وسیله CURL میشه فرستاد

یه نمونه :



$url = 'http://localhost/curl/test.php';
$params = "keyword=123&zxczxc=333"; //you must know what you want to post
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$result=curl_exec ($ch);
curl_close ($ch);

echo "Results: <br>".$result;


در صفحه test.php



print_r($_POST);

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

Tarragon
سه شنبه 31 اردیبهشت 1392, 20:29 عصر
اینم نمونه اما قبلش کلاس رو اینکلود کنید.

$curl = new Curl(); $postVars = array( 'username' => 'test', 'password' => 'test');echo $curl->Open('http://example.com', $postVars)->contents;

cpuram
سه شنبه 31 اردیبهشت 1392, 22:56 عصر
اینم مثل قطعه کد بالا عمل میکنه و مقدار داخل صفحه چاپ میکنه نمیدونم کاربردش چیه؟ من میخوام ریدارکت بشه یه صفحه دیگه و اون جا با $_POST مقدار رو بگیرم.

Tarragon
چهارشنبه 01 خرداد 1392, 06:24 صبح
سلام
شما باید تو صفحه دوم اول متغیر های دریافتی رو با سشن دخیره کنی و بعد با هدر کامل به خودس انتقالش بدی .

cpuram
چهارشنبه 01 خرداد 1392, 09:39 صبح
خوب اگه نیاز به سشن باشه که نیازی به این کارا نیست من بدون سشن میخواستم این کار انجام بشه.

xcodex
چهارشنبه 01 خرداد 1392, 10:57 صبح
فکر کنم بتونید یه فرم توی یه پیج html درست کنید با متد POST و اکشن مثلا test.php و بعد اطلاعاتتون رو به صورت پیش فرض وارد فرم کنید بعد با javascript دکمه submit فرم رو اجرا کنید . فرم رو هم میتونید display:none کنید که کسی نبینه . تست نکردم ولی شاید جواب بده .

cpuram
چهارشنبه 01 خرداد 1392, 13:23 عصر
فکر کنم بتونید یه فرم توی یه پیج html درست کنید با متد POST و اکشن مثلا test.php و بعد اطلاعاتتون رو به صورت پیش فرض وارد فرم کنید بعد با javascript دکمه submit فرم رو اجرا کنید . فرم رو هم میتونید display:none کنید که کسی نبینه . تست نکردم ولی شاید جواب بده .
سوالم رو نخونید. من گفتم نمیخوام از جاوااسکریپت استفاده کنم.

xcodex
چهارشنبه 01 خرداد 1392, 14:00 عصر
ببخشید

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



$url = 'http://localhost/curl/test.php';
$params = "keyword=123&zxczxc=333"; //you must know what you want to post
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result=curl_exec ($ch);


در خط زیر redirect ست میشه .


curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);


تست کنید ببینید درست میشه

یا حق

MMSHFE
چهارشنبه 01 خرداد 1392, 15:02 عصر
دوست گرامی، بانک به اون عظمتش داره از JS برای سابمیت خودکار فرم استفاده میکنه اونوقت شما اعتماد ندارین؟ هر کاری یک ابزار مشخصی داره. اگه میخواین به صفحه مقصد منتقل بشین، باید فرم سابمیت بشه و تنها راه سابمیت خودکار هم JS هست. شما یکبار برای امتحان JS رو غیرفعال کنید ببینید از صفحه مقصد بانک به سایت شما منتقل میشین یا نه؟ حتی برخی از بانکها برای اطمینان، یک دکمه سابمیت هم گذاشتن و گفتن اگه بطور خودکار ظرف چند ثانیه منتقل نشدین، روی این دکمه کلیک کنید.

cpuram
پنج شنبه 02 خرداد 1392, 05:56 صبح
ممنون نشد. یعنی ریدایرکت نمیشه.

cpuram
پنج شنبه 02 خرداد 1392, 05:59 صبح
دوست گرامی، بانک به اون عظمتش داره از JS برای سابمیت خودکار فرم استفاده میکنه اونوقت شما اعتماد ندارین؟ هر کاری یک ابزار مشخصی داره. اگه میخواین به صفحه مقصد منتقل بشین، باید فرم سابمیت بشه و تنها راه سابمیت خودکار هم JS هست. شما یکبار برای امتحان JS رو غیرفعال کنید ببینید از صفحه مقصد بانک به سایت شما منتقل میشین یا نه؟ حتی برخی از بانکها برای اطمینان، یک دکمه سابمیت هم گذاشتن و گفتن اگه بطور خودکار ظرف چند ثانیه منتقل نشدین، روی این دکمه کلیک کنید.
تشکر. ببخشید من مثل شما برنامه نویس نیستم شروع کردم به ساختن یه سایت. خیلی ممنون از راهنمایی شما. پس یه دکمه هم میزارم.