رفتن به مطلب

یک مشکل ساده در php


پست های پیشنهاد شده

سلام

اول بابت عنوان عذرخواهی میکنم چون واقعا نمیدونستم باید چی بنویسم

من کدهای زیر روی توی فایل index.php مینویسم و با ارور مواجه میشم


<form action="index.php" method="POST">
<input type="text" name="num1"/>
<input type="text" name="num2"/>
<input type="submit" value="calculate"/>
</form>
<?php
echo $_POST['num1'] + $_POST['num2'];
?>

اروری هم که میده اینه :

Notice: Undefined index: num1 in C:\wamp\www\index.php on line 7

Notice: Undefined index: num2 in C:\wamp\www\index.php on line 7

اما اگر توی اکشن فرم یه صفحه ی دیگه رو وارد کنم و کدهای پی اچ پی رو توی اون صفحه وارد کنم مشکل حل میشه و جمع دوتا تکس باکس رو چاپ میکنه

ممنون میشم راهنمایی کنید.

لینک به ارسال

سلام

این پیغام به خاطر این هست که $_POST هنوز مقدار دهی نشده و خالیه.

شما میتونید با این کد این پیغام رو حذف کنید.


error_reporting(E_ERROR | E_WARNING | E_PARSE);

یا


error_reporting(E_ALL & ~E_NOTICE);

اما بهترین کار اینه که چک کنید مقدار شده یا نه :


if(isset($_POST['num1']) && isset($_POST['num2']))
echo $_POST['num1'] + $_POST['num2'];

یا


if(!empty($_POST['num1']) && !empty($_POST['num2']))
echo $_POST['num1'] + $_POST['num2'];

لینک به ارسال

سلام

اول بابت عنوان عذرخواهی میکنم چون واقعا نمیدونستم باید چی بنویسم

من کدهای زیر روی توی فایل index.php مینویسم و با ارور مواجه میشم


<form action="index.php" method="POST">
<input type="text" name="num1"/>
<input type="text" name="num2"/>
<input type="submit" value="calculate"/>
</form>
<?php
echo $_POST['num1'] + $_POST['num2'];
?>

اروری هم که میده اینه :

Notice: Undefined index: num1 in C:\wamp\www\index.php on line 7

Notice: Undefined index: num2 in C:\wamp\www\index.php on line 7

اما اگر توی اکشن فرم یه صفحه ی دیگه رو وارد کنم و کدهای پی اچ پی رو توی اون صفحه وارد کنم مشکل حل میشه و جمع دوتا تکس باکس رو چاپ میکنه

ممنون میشم راهنمایی کنید.

سلام

این کد رو تست کنید


<form action="index.php" method="POST">
<input type="text" name="num1"/>
<input type="text" name="num2"/>
<input type="submit" value="calculate"/>
</form>
<?php
echo $_POST['num1'] . $_POST['num2'];
?>

لینک به ارسال

سلام

این پیغام به خاطر این هست که $_POST هنوز مقدار دهی نشده و خالیه.

شما میتونید با این کد این پیغام رو حذف کنید.


error_reporting(E_ERROR | E_WARNING | E_PARSE);

یا


error_reporting(E_ALL & ~E_NOTICE);

اما بهترین کار اینه که چک کنید مقدار شده یا نه :


if(isset($_POST['num1']) && isset($_POST['num2']))
echo $_POST['num1'] + $_POST['num2'];

یا


if(!empty($_POST['num1']) && !empty($_POST['num2']))
echo $_POST['num1'] + $_POST['num2'];

خوب اگر مقدار دهی نشده پس چرا وقتی کد پی اچ پی رو منتقل میکنم به صفحه ی دیگه و توی اکشن فرم اون صفحه رو معرفی میکنم مشکل حل میشه؟

سلام

این کد رو تست کنید


<form action="index.php" method="POST">
<input type="text" name="num1"/>
<input type="text" name="num2"/>
<input type="submit" value="calculate"/>
</form>
<?php
echo $_POST['num1'] . $_POST['num2'];
?>

آقا حمید این که همون کدیه که خودم توی پست اول گفتم

لینک به ارسال

خوب اگر مقدار دهی نشده پس چرا وقتی کد پی اچ پی رو منتقل میکنم به صفحه ی دیگه و توی اکشن فرم اون صفحه رو معرفی میکنم مشکل حل میشه؟

چون شما که اون صفحه رو نمیبینید که بخواد پیغام بهتون نشون بده.

وقتی هم submit میکنید و به اون صفحه میرید ، متغییر ها مقدر دهی شدند دیگه !!!

لینک به ارسال

چون شما که اون صفحه رو نمیبینید که بخواد پیغام بهتون نشون بده.

وقتی هم submit میکنید و به اون صفحه میرید ، متغییر ها مقدر دهی شدند دیگه !!!

آهان درسته

اما من توی فیلم آموزشی که دیدم دقیقا همینکار رو انجام داده بود و هیچ مشکلی هم نداشت

لینک به ارسال

آهان درسته

اما من توی فیلم آموزشی که دیدم دقیقا همینکار رو انجام داده بود و هیچ مشکلی هم نداشت

حتما داخل فایل php.ini تنظیم کرده که این پیغام رو نشون نده.


http://www.phpknowhow.com/configuration/php-ini-error-settings/

لینک به ارسال

آهان درسته

اما من توی فیلم آموزشی که دیدم دقیقا همینکار رو انجام داده بود و هیچ مشکلی هم نداشت

حالا که ارورتون حذف شده

به احتمال زیاد وقتی sumbit میکنید فقط 0 رو نشون بده

چون علامت جمع تو php بعلاوه نیست و از نقطه استفاده میکنند. مثل این


echo $_POST['num1'] . $_POST['num2'];

لینک به ارسال

حتما داخل فایل php.ini تنظیم کرده که این پیغام رو نشون نده.


http://www.phpknowhow.com/configuration/php-ini-error-settings/

آهان شاید همین باشه

در هر صورت من که بیخیالش شدم همون توی یک فایل دیگه میزارمشون که دردسری هم نباشه

متشکر از راهنماییتون

حالا که ارورتون حذف شده

به احتمال زیاد وقتی sumbit میکنید فقط 0 رو نشون بده

چون علامت جمع تو php بعلاوه نیست و از نقطه استفاده میکنند. مثل این


echo $_POST['num1'] . $_POST['num2'];

نه ارور حذف نشده مشکل هنوز پا برجاست

ولی فکر میکنم که . برای جمع نباشه بلکه برای کنار هم قرار دادن متن ها باشه یعنی یه جوری چسبوندنشون به هم ، ولی برای جمع دو عدد از همون + استفاده میشه (البته من فقط چند روزه شروع کردم به یادگیری و خیلی مطمئن نیستم)

لینک به ارسال

آهان شاید همین باشه

در هر صورت من که بیخیالش شدم همون توی یک فایل دیگه میزارمشون که دردسری هم نباشه

متشکر از راهنماییتون

نه ارور حذف نشده مشکل هنوز پا برجاست

ولی فکر میکنم که . برای جمع نباشه بلکه برای کنار هم قرار دادن متن ها باشه یعنی یه جوری چسبوندنشون به هم ، ولی برای جمع دو عدد از همون + استفاده میشه (البته من فقط چند روزه شروع کردم به یادگیری و خیلی مطمئن نیستم)

منم مثل شما یک هفتست شروع کردم

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


<form action="index.php" method="POST">
<input type="text" name="num1"/>
<input type="text" name="num2"/>
<input type="submit" value="calculate"/>
</form>
<?php
if(isset($_POST['num1']) && isset($_POST['num2'])) {
echo $_POST['num1'] . ' ' . $_POST['num2'];
}
?>

لینک به ارسال

بله مشکل رفع شد اما من میخواستم بدونم چطوری توی اون فیلم بدون شرط اجرا شد فایل که دوستمون بالاتر توضیح دادن دلیلشو

در مورد isset هم ممنون میشم اگر توضیح بدید که کارش چی هست

لینک به ارسال

isset مشخص میکنه که آیا در آرایه، آیتم موردنظر قرار داره یانه. بیشترین استفاده از اون برای validateکردن فرم‌ها (یعنی ببینیم کاربر مقادیر فرم رو درست وارد کرده یا نه) استفاده میشه. مثلا اگه توی فرممون المنتی به نام test_input داشته باشیم، به روش زیر میشه چک کرد که آیا کاربر مقداری وارد کرده یا نه:


<?php

if ( ! isset( $_REQUEST['test_input'] ) {
// User didn't fill it.Let's Tell him!
}

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...