PDA

View Full Version : ****کمکم کنید لطفا*****



Smran
دوشنبه 17 شهریور 1382, 18:55 عصر
سلام دوستان..
من مدت کوتاهی است که یاد گرفتن 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 :
لطفا هر کی جواب را میدونه ثواب بکنه به من هم بگه...
متشکرم

مهدی کرامتی
دوشنبه 17 شهریور 1382, 22:17 عصر
من این برنامه شما رو اجرا کردم و مشکلی نداشت. سورس برنامه رو در زیر براتون Attach کرده‌ام (البته سورس خود شماست که Copy/Paste کرده‌ام).

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

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

Vahid_Nasiri
سه شنبه 18 شهریور 1382, 11:44 صبح
من دیروز phptriad را دانلود کردم و چیز جالبی است :wink:

http://sourceforge.net/projects/phptriad

Smran
سه شنبه 18 شهریور 1382, 23:51 عصر
با سلام:
اقای کرامتی من برای شما 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$ عبارت
<span dir=ltr>$_POST["FirstName"]</span> را نوشتم و جواب مثبت بود.
لطف کنید اگر علت را میدانید مرا در جریان بگذارید.
باتشکر...

Smran
چهارشنبه 19 شهریور 1382, 00:17 صبح
با عرض پوزش فراموش کردم بگم که من از IIS به عنوان web server استفاده می کنم. :o
باتشکر :wink:

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

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

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

Smran
چهارشنبه 19 شهریور 1382, 10:58 صبح
اقای کرامتی از راهنمایی شما خیلی متشکرم ... :oops: :o

dindarloo
پنج شنبه 26 اسفند 1395, 21:47 عصر
شما دقیقا کجای کدتون واریابل ها رو به name های فرمتون تخصیص دادین ؟
منظورم این مدل هست :

$name = asign_input($_POST["name"]);