PDA

View Full Version : سوال: مشکل با Curl



redhat2
جمعه 09 فروردین 1392, 09:43 صبح
سلام به دوستان ، من این کد را نوشتم ، میخوام وقتی که کاربر مثلا یه چیزی را تایپ میک نه در صفحه index ، این اطلاعات گرفته بشه و به صفحه ی name.php فرستاده بشه و اینجا چاپ بشه .

index.php :


<?php
if (isset($_POST['username'])) {
$urltopost = "http://localhost/test/name.php";
$datatopost = array(
"username" => $_POST['username'],
);

$ch = curl_init($urltopost);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datatopost);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$returndata = curl_exec($ch);
echo $returndata;
}
?>
<form action="index.php" method="POST">
<input type="text" name="username" />
<input type="submit" value="click" />
</form>



name.php :



<?php
echo $_POST['username'];
?>



وقتی که اطلاعات را می نویسم توی همون صفحه ی index.php اطلاعات را چاپ میکنه و هنوز فیلد ، text را نشون میده ، در صورتی که میخوام به name.php بره و در اونجا اطلاعات نشون داده بشه ، یعنی url من این بشه :
localhost/name.php .

linuxUser
جمعه 09 فروردین 1392, 10:52 صبح
سلام دوست عزیز
می شه یه کم بیشتر توضیح بدی؟ cURL که شما رو به یه صفحه دیگه انتقال نمی ده ! خوب اگه می خوای اطلاعات توی اون صفحه چاپ بشه و url هم عوض بشه چرا خیلی راحت این کارو نمی کنی :

index.php


<form action="name.php" method="POST">
<input type="text" name="username" />
<input type="submit" value="click" />
</form>
name.php:

<?php echo $_POST['username'];?>

redhat2
جمعه 09 فروردین 1392, 11:10 صبح
نه دیگه ، وقتی بحث mvc باشه ، دیگه نمیشه به این راحتی کار کرد ، curl یه چیزی داره به نام curl_followlocation ، میخواستم بدونم چطوری باید ازش استفاده کرد . ؟ فرض کنید که یه متد دارم به نام index و یه متد دارم به نام verfiy ، متد index اطلاعات را به حالت post میگیره ، حالا میخوام این اطلاعات را به متد verfiy بفرستم و در اونجا چاپش کنم ولی نمیشه ، حالا شاید بگید با این دستور میشه اینکارور انجام داد :


$this->verfiy($_POST['username']);

ولی من امتحان کردم و نشد .

linuxUser
جمعه 09 فروردین 1392, 13:13 عصر
curl_followlocation ربطی به اون چیزی که می خوای نداره. curl_followlocation برای این استفاده می شه که مشخص کنه اون صفحه که با cURL صدا زده می شه اگه با header("Location: page.php")a به یه صفحه دیگه redirect می شد، این rediect شدن را دنبال کنه یا نه. برای توضیحات بیشتر هم به این لینک رجوع کن:
http://www.php.net/manual/en/function.curl-setopt.php
به عنوان راه حل هم من پیشنهاد می کنم که متغییر ها رو تو session بریزی و بعد با header("Location: name.php")a به اون صفحه name بری. فکر نکنم راه بهتری برای تغییر آدرس داشته باشی.

راستی در MVC برای این جور کارها مثل verify کردن نام کاربری و پسورد زیاد از redirect کردن صفحه به یه صفحه دیگه استفاده نمی شه!