ناشناس بودن متغییرها در صفحه فرم

sasan_zalaghi

New Member
سلام به استاتید عزیز
من یک کد نوشتم واسه یک فرم ساده نظردهی
کد:
<html>
<head>
<title> HTML Form </title>
<body>
	<form action="handleform.php" method=post>
	first name <input type=TEXT name="firstname" size=20><br>
	last name <input type=text name="lastname" size=40><br>
	E-mail Address <input type=text name="email" size==60><br>
	Comments <Textarea name="comments" row=5 Cols=40></textarea><br>
	<input type=submit name="Send" Value="SuBmit">
	<input type=reset name"reset" Value="Reset">
	</form>
</body>
</html>

بعد همونطور که بالا می بینید یک صفحه جدید هم ساختم به نام handleform.php که کد هاش به شرح زیر هستند:

کد:
<html>
<head>
<title> form result </title>
<body>
<?php
print "your frist name is $firstname<br>\n";
print "your last name is $lastname<br>/n";
print "your mail address is $email<br>/n";
print "your Comments is $comments<br>/n";
?>
</body>
</html>

حالا وقتی توی Wamp یا همون لوکال هاست صفحه اول فرم ها رو بالا میارم هیچ مشکلی نداره اما وقتی اطلاعات رو وارد میکنم و دکمه Submit رو میزنم مرورگر این ارور رو میده

Notice: Undefined variable: firstname in C:\wamp\www\Sasan\handleform.php on line 6
your frist name is

Notice: Undefined variable: lastname in C:\wamp\www\Sasan\handleform.php on line 7
your last name is
/n
Notice: Undefined variable: email in C:\wamp\www\Sasan\handleform.php on line 8
your mail address is
/n
Notice: Undefined variable: comments in C:\wamp\www\Sasan\handleform.php on line 9
your Comments is
/n

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

Masoud1365

مدیر انجمن
به جای $email از
PHP:
$_POST['email']
استفاده کنید !
در ضمن قبل از ایجاد تاپیک در انجمن سرچ کنید در باره سوال شما قبلا بحث شده بود !
 

sasan_zalaghi

New Member
سلام آقا مسعود ممنون از توضیح، من این کاری که گفتید رو واسه خط میل تست کردم اما بازم ارور داد :

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\Sasan\handleform.php on line 6

راستی من سرچ کردم ناشناس بودن فرم ها چیزی پیدا نکردم، شرمنده تاپیک اضافه زدم، اگر میشه آدرس اون تاپیک رو بهم بدید. ممنون میشم :rose:
 

iran-TEC

Member
اگه دقیقا به این شکل بنویسی مطمئا خطا نمی ده

PHP:
<html>
<head>
<title> form result </title>
<body>
<?php
print "your frist name is ".$_POST['firstname']."<br>";
print "your last name is ".$_POST['lastname']."<br>";
print "your mail address is ".$_POST['email']."<br>";
print "your Comments is ".$_POST['comments']."<br>";
?>
</body>
</html>
 

sasan_zalaghi

New Member
با تشکر از اساتید عزیز مشکل حل شد، اگر امکانش هست یه توضیح بدهید که چرا باید به این شکل بنویسیم تا جواب بده ؟

ویرایش خودم: من در گپ با یکی از دوستان برنامه نویس اینا دستگیرم شد:


ما دو نوع متغییر داریم، یک نوع متغییر محلی و یک نوع متغییر جهانی، متغییر محلی تنها در همان فایل و صفحه قابل بازیابی و خوانده شدن هست و در صفحات جدید به عنوان ناشناس تلقی می شود. بنابراین وقتی قصد داریم فرم به صفحات دیگر بفرستیم باید از متغییر جهانی استفاده کنیم.
شیوه استفاده بازیابی متغییر محلی بدین صورت است :
کد:
$firstname
وشیوه بازیابی متغییر جهانی بدین صورت است:
کد:
$_post[‘firstname’]
ما برای بازیابی فرم در صفحه جدید میتوانیم بدین صورت عمل کنیم.
کد:
$firstname=$_post['firstname']
print "your firstname is".$firstname."<br>";


اگر امکانش هست اساتید یکم بیشتر در مورد این متغییرها و کاربرهای مختلفشون توضیح بدن، ممنون میشم
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
در حالتی که شما اول نوشتید حتما باید register global فعال باشه ! و چون به دلیل مسائل امنیتی روی سرورها این گذینه غیر فعال میباشد شما به مشکل بر میخورید و باید از متغیر فرا جهانی POST استفاده کنید !
 

جدیدترین ارسال ها

بالا