PDA

View Full Version : سوال: مشکل در اجرای تابع curl



mehrn00sh
شنبه 11 مهر 1394, 22:05 عصر
سلام دوستان
من تازه در حال یادگیری PHP هستم و می خواستم یک phonebook بنویسم.برای قسمت ویرایش اطلاعات قصد دارم از تابع curl استفاده کنم تا id مخاطب را با کلیک روی لینک ویرایش از صفحه مشاهده مخاطبین به صفحه ویرایش بفرسته.
از کدهای زیر برای فرستادن id استفاده کردم.

<table> <tr>
<td>نام</td>
<td>نام خانوادگی</td>
<td>عملیات</td>
</tr>
<?php
while($show = @mysql_fetch_assoc($result1))
{
$fname = $show['fname'] ;
$lname = $show['lname'];
$id = $show['id'];
$curl = curl_init("localhost/phonebook/edit-contact.html");
curl_setopt($curl,CURLOPT_POST,true);
curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_qu ery(array('data' => $id)));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($curl);
$error=curl_error($curl);
echo $error;
curl_close($curl);
echo "<tr>".
"<td>".$fname."</td>".
"<td name=\"fnmae\">".$lname."</td>".
"<td><a href=\"edit-contact.html\" \">ویرایش</a></td>".
"</tr>";
}
?>
</table>
برای صفحه ویرایش هم از
$_POST['data']; را echo کردم تا ببینم مقدار را دریافت می کند یا نه که با این خطا مواجه شدم.
Notice: Undefined index: data
لطفا راهنمایی کنید کدوم قسمت از کدها را باید تغییر بدم تا مشکل حل شود.

hamedarian2009
شنبه 11 مهر 1394, 22:40 عصر
خب اگه result$ رو echo کنید جواب می گیرید در ضمن پسوند فایلتون هم باید php باشه ولی برای این کاری که شما می خواهید باید از فرم ها استفاده کنید

mehrn00sh
یک شنبه 12 مهر 1394, 06:22 صبح
خب اگه result$ رو echo کنید جواب می گیرید در ضمن پسوند فایلتون هم باید php باشه ولی برای این کاری که شما می خواهید باید از فرم ها استفاده کنید
$result را echo کردم اما باز هم پیغام Notice: Undefined variable: result را دریافت کردم.
تغییر پسوند هم نتیجه ای نداشت.
راه حل دیگه ای سراغ ندارید؟

hamedarian2009
یک شنبه 12 مهر 1394, 09:01 صبح
$result را echo کردم اما باز هم پیغام Notice: Undefined variable: result را دریافت کردم.
تغییر پسوند هم نتیجه ای نداشت.
راه حل دیگه ای سراغ ندارید؟
منظورم echo تو همین صفحه که متغیر result$ رو تعریف کردین هست تو صفحه edit-contact.php که باید همون $_POST['data'] رو اکو کنید اما در کل کاربرد curl چیز دیگه ای هست

اگه می خواهید با post ارسال کنید باید با فرم ولی می تونید با get هم ارسال کنید به این صورت :


<table>
<tr>
<td>نام</td>
<td>نام خانوادگی</td>
<td>عملیات</td>
</tr>
<?php
while($show = @mysql_fetch_assoc($result1))
{
$fname = $show['fname'] ;
$lname = $show['lname'];
$id = $show['id'];
echo "<tr>".
"<td>".$fname."</td>".
"<td name=\"fnmae\">".$lname."</td>".
"<td><a href=\"edit-contact.php?id={$id}\" \">ویرایش</a></td>".
"</tr>";
}
?>
</table>


تو صفحه edit-contact.php هم به این صورت میتونید بهش دسترسی داشته باشید:

echo intval($_GET['id']);

mehrn00sh
یک شنبه 12 مهر 1394, 15:07 عصر
منظورم echo تو همین صفحه که متغیر result$ رو تعریف کردین هست تو صفحه edit-contact.php که باید همون $_POST['data'] رو اکو کنید
این کار را انجام دادم اما با همان اخطار قبلی مواجه شدم.


اگه می خواهید با post ارسال کنید باید با فرم ولی می تونید با get هم ارسال کنید
بابت راهنمایی تون سپاسگذار از تابع get استفاده کردم اما اگر بخواهم بدون استفاده از فرم با تابع post اطلاعات را به صفحه ی دیگه ای ارسال کنم تابع یا روشی وجود ندارد؟

hamedarian2009
یک شنبه 12 مهر 1394, 16:56 عصر
این کار را انجام دادم اما با همان اخطار قبلی مواجه شدم.
خب شما رو لینک کلیک می کنید و میرید به صفحه ای که در آن لحظه متغیری به نام data داخلش وجود نداره


بابت راهنمایی تون سپاسگذار از تابع get استفاده کردم اما اگر بخواهم بدون استفاده از فرم با تابع post اطلاعات را به صفحه ی دیگه ای ارسال کنم تابع یا روشی وجود ندارد؟
نه دلیل خاصی دارید که نمی خواهید از فرم استفاده کنید؟ البته روش GET برای کاری که می خواهید رایج تر است