مقاله : ****کمکم کنید لطفا*****

Iauksh
سلام دوستان..
من مدت کوتاهی است که یاد گرفتن php را شروع کرده‌ام .ولی یه مشکلی دارم که نمی دانم چگونه حل کنم.
من یک فرم HTML به همراه چند EditBox,TextArea,Button درست کرده‌ام که در زیر برنامه را نوشته ام:

<html>
<head>
<title>html form</title>
</head>
<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" ROWS=5 COLS=40></TEXTAREA><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
<?php

?>
</body>
</html> حتما متوجه شده ایدکه این برنامه نام ونام خوانوادگی شخص را می گیرد.
این صفحه را با اسم form.html ذخیره کرده ام.
سپس یک صفحه با اسم handleform.php درست کردم که سورس ان هم به صورت زیر است:

<html>
<head>
<title>Form Results</title>
</head>
<body>
<?php
echo "your first name is :$FirstName.<BR>\n" ;
echo "your last name is :$LastName.<BR>\n" ;
echo "your E-mail Address is :$Email.<BR>\n" ;
echo "this is what you had to say : <BR>\n $Comments<BR>\n" ;
?>
</body>
</html>
(نمی دونم چرااینطوری تایپ میکنه)کوتیشن اخر را او ل در نظر بگیرید.
این هم از برنامه ساده من.
حالا وقتی این برنامه را اجرا میکنم پیغام های زیر را به من میدهد چرا؟

Notice: Undefined variable: FirstName in F:\phpworks\handleform.php on line 7
your first name is :.

Notice: Undefined variable: LastName in F:\phpworks\handleform.php on line 8
your last name is :.

Notice: Undefined variable: Email in F:\phpworks\handleform.php on line 9
your E-mail Address is :.

Notice: Undefined variable: Comments in F:\phpworks\handleform.php on line 10
this is what you had to say :
لطفا هر کی جواب را میدونه ثواب بکنه به من هم بگه...
متشکرم

Iauksh
من این برنامه شما رو اجرا کردم و مشکلی نداشت. سورس برنامه رو در زیر براتون Attach کرده‌ام (البته سورس خود شماست که Copy/Paste کرده‌ام).

فکر میکنم مشکل از تنظیمات PHP شماست (این تنظیمات در فایل PHP.INI در محل نصب PHP قرار دارند).

1- نسخه PHP شما چیست؟
2- از IIS بعنوان Web Server استفاده میکنید یا Apache ؟
3- یک کپی از PHP.INI خودتان را در قالب یک فایل ZIP بصورت ضمیمه (Attachment) در ادامه همین تاپیک برای من بگذارید تا چک‌اش کنم.

Iauksh
من دیروز phptriad را دانلود کردم و چیز جالبی است :wink:

http://sourceforge.net/projects/phptriad

Iauksh
با سلام:
اقای کرامتی من برای شما php.ini را همان طور که فرمودید Attach کردم.
در ضمن خواستم بگم من بجای source صفحه php که در بالا قبلا فرستادم source زیر را تایپ کردم و جواب گرفتم.

<html>
<head>
<title>Form Results</title>
</head>
<body>
<?php
echo("your first name is :".$_POST["FirstName"].".<BR>\n");
echo("your last name is :".$_POST["LastName"].".<BR>\n");
echo("your E-mail Address is :".$_POST["Email"].".<BR>\n");
echo("this is what you had to say : <BR>\n ".$_POST["Comments"]."<BR>\n");
?>
</body>
</html>
در این source همان طور که مشاهده می کنید برای استفاده از متغیر بجای FirstName$ عبارت
$_POST["FirstName"] را نوشتم و جواب مثبت بود.
لطف کنید اگر علت را میدانید مرا در جریان بگذارید.
باتشکر...

Iauksh
با عرض پوزش فراموش کردم بگم که من از IIS به عنوان web server استفاده می کنم. :o
باتشکر :wink:

Iauksh
روش فوق روشی است که توسط برنامه نویس اصلی PHP یعنی Rasmus Lerdorf توصیه میشود.
PHP با فیلدهای فرمی که به اسکریپت کنونی توسط یک فرم یا صفحه دیگر Submit میشود بعنوان متغیر تعریف شده توسط برنامه نویس برخورد میکند. بعنوان مثال فرض کنیم در یک فرم چنین چیزی داریم:

<form action="handleform.php" METHOD=POST>
First Name<INPUT TYPE=TEXT NAME="FirstName" SIZE=20><BR>
<INPUT TYPE=SUBMIT NAME="SUBMIT" VALUE="Submit!">
</form>
در اینجا صفحه دوم با فیلد FirstName بعنوان یک متغیر برخورد میکند که ممکن است درون خود اسکریپت فایل دوم تعریف شده باشد.
اما نحوه رفتار با چنین موردی در تمام Installation های PHP یکسان نیست، زیرا تنظیمات PHP در هر سرور میتواند با توجه به تنظیماتی که مدیر سایت در PHP.INI انجام داده متفاوت باشد.

اما هنگام ارجاع به یک فیلد فرم توسط
$_POST["نام فیلد"] PHP خواهد دانست که در اینجا باید مقدار موردنظر را از فیلدهای Post شده به این اسکریپت توسط یک فرم انتظار داشته باشد و بدین ترتیب خطا رفع میشود.

Iauksh