PDA

View Full Version : عدم شناخت متغیرها در فرم ها



pershianix
شنبه 07 بهمن 1391, 22:46 عصر
چرا توی قطعه کد زیر:



<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
if (!empty($name)) {
$sentence = $name.' submited the form!';
} else {
echo 'please enter a name';
}
}
?>
<head>
<title>Embedding PHP within HTML</title>
</head>
<body>
<form action="" method="POST">
Input your name: <input type="text" name="name" value="<?php echo $name; ?>" /><br />
<input type="submit" value="submit" />
</form>
<textarea rows="3" cols="25"><?php echo $sentence; ?></textarea>

</body>
</html>


متغیرهای $sentense و $name برای textarea و کادر input قابل شناسایی نیست؟ ظاهرا که همه چی درسته و این متغیرها که در بخش بالا و قبل از head اعلان شدند، باید در سراسر body قابل شناسایی باشند. ممنون

MostafaEs3
شنبه 07 بهمن 1391, 22:58 عصر
درحالتی که هیچ مقداری به اسکریپت ارسال نشده این متغیر هم عملا مقداری نداره دیگه !!

شما بجای متغیر sentence و بقیه متغیر ها چیزی معادل این رو بذارید ::


<?php echo isset($sentence) ? $sentence : '' ?>


این کد بررسی میکنه اگر متغیر sentence وجود داشته باشه اونو echo میکنه درغیر اینصورت مقدار خالی ارسال میکنه - اینطوری عملا به اروری برخورد نمیکنید :چشمک:

pershianix
یک شنبه 08 بهمن 1391, 18:03 عصر
درحالتی که هیچ مقداری به اسکریپت ارسال نشده این متغیر هم عملا مقداری نداره دیگه !!

شما بجای متغیر sentence و بقیه متغیر ها چیزی معادل این رو بذارید ::


<?php echo isset($sentence) ? $sentence : '' ?>


این کد بررسی میکنه اگر متغیر sentence وجود داشته باشه اونو echo میکنه درغیر اینصورت مقدار خالی ارسال میکنه - اینطوری عملا به اروری برخورد نمیکنید :چشمک:

کاملا درسته اما موضوع اینه که این کد، دقیقا توی یکی از آموزش های سایت phpacademy اجرا شده و من حتی ویدیوی اون آموزش رو دیدم و با همین کد، همچین مشکلی پیش نمیومد! به نظرم ممکنه به خاطر تنظیمات php.ini باشه. درسته؟

MostafaEs3
یک شنبه 08 بهمن 1391, 18:06 عصر
کاملا درسته اما موضوع اینه که این کد، دقیقا توی یکی از آموزش های سایت phpacademy اجرا شده و من حتی ویدیوی اون آموزش رو دیدم و با همین کد، همچین مشکلی پیش نمیومد! به نظرم ممکنه به خاطر تنظیمات php.ini باشه. درسته؟

دقیقا همینه !! اگه شما بیای یک تابع بذاری که ارور ها رو نشون نده در ضاهر اینطور به نظر میاد که کد کاملا درست کار میکنه !!

مثال ::


error_reporting(0);
ini_set('display_errors', '0');