PDA

View Full Version : مشکل در PHP (مبتدی)


ali_zzr
16 July 2008, 04:28 AM
با سلام
من دارم از روی یک کتاب php یاد می گیرم اما به یک مشکل برخوردم
داستان از این قراره

توی این کتاب نوشته وقتی از یک صفحه html و توسط یک فرم یک سری اطلاعات به یک صفحه php که در تگ Action فرم تعریف میکنیم فرستاده می شود یک متغیر به نام فیلد در صفحه php به طور خود کار تعریف میشود
مثلا وقتی شما یک فرم تعریف میکنی

<form action = "a.php" method = post>
<input type = text name=firstname">

وقتی دکمه فرم رو میزنی و میری به صفحه a.php یک متغییر تعریف شده به نام firstname$ و مقداری برابر مقدار داده شده در فیلد متنی داری و میتونی ازش استفاده کنی اما چنین چیزی نیست و من نمیتونم از این متغییر استفاده کنم در واقع این متغییر هیچ مقداری به خودش نمیگیره.

توی فوروم گشتم فهمیدم اگر از متد get در فرم استفاده کنی در صفحه php میتونی با تگ GET_$ مقدار متغیر رو بدست بیاری اما اگر از روش پست استفاده کنی باید چکار کرد؟؟؟

و اینکه چرا روشی که این کتاب توضیح داده عملی نیست ؟؟ ممکنه این آموزش برای php با ورژن پایینتر باشه ؟؟چون برای سال 83 شمسیه

Orion
16 July 2008, 12:20 PM
والا من 4-5 سال پيش PHP كار ميكردم و همچين چيزي اصلاً يادم نمياد.
ولي اگر از روش پست استفاده كردي ميتوني از POST_$ كني. يا اينكه اگه GET و POST برات مهم نيست، از REQUEST_$ كن. اين آخري كارش اينه كه توي متغيرهاي GET و POST و COOKIE ميگرده و مقدار اون متغيري كه شما ازش خواستيد برميگردونه. منتها اين روش چون بايد چندجاي مختلف رو جستجو كنه، يه كمي كندتره.

d@nial
16 July 2008, 02:45 PM
کد php تون رو هم بزارید

ali_zzr
16 July 2008, 10:36 PM
ممنون از پاسختون

من با REQUEST_$ تونستم کاری رو که میخوام رو انجام بدم ولی با POST_$ نشد. نمیدونم مشکل کجاست کدها مو میزارم ببنید چه جوریه

کد صفحه HTML :



<html>
<head>
<title>
Input Your Information
</title>
</head>
<body bgcolor =#CCCC00 >

<center><h2>
Hello... Please Enter Your Information Requested Below
</h2>
<br>
<br><br><br>
<table border = 0>
<form action = "test1.php" method = POST>
<tr>
<td><b>First Name :</b></td>
<td><input type = text name="fname" size = 20></td>
</tr>
<tr>
<td><b>Last Name :</b></td>
<td><input type = text name ="lname" size = 25></td>
</tr>
<tr>
<td><b>Student ID:</b></td>
<td><input type = text name ="id" size = 7></td>
</tr>
<tr>
<td><b>e-Mail Adress :</b></td>
<td><input type = text name = "mail" size = 30></td>
</tr>

<tr>
<td>
</td>
<td><br><center><input type = submit name = "submit1" Value = "Submit"></center></td>
</tr>
</form>
</table>
</body>
</html>


کد صفحه test1.php


<html>
<body>

<?php

$fname = $_REQUEST['fname'];
$lname = $_REQUEST['lname'];
$id = $_REQUEST['id'];
$mail = $_REQUEST['mail'];
print "<center>
<h2>
Please Check that You Entered the Correct Information :
<br>
<br>";
print ("
First Name : $fname
<br>
Last Name : $lname
<br>
Student ID : $id
<br>
E-Mail Adress :
$mail
");
?>
</body>
</html>


وقتی از متد post استفاده میکنم از POST_$ نمیتونه مقدار متغییر رو بگیره ولی با REQUEST_$ میتونه بگیره

Orion
16 July 2008, 11:14 PM
خطا ميگيره يا اينكه مقدار خالي برميگردونه؟

d@nial
16 July 2008, 11:41 PM
با POST هم مشکلی نداره
ورژن PHP وبسرورتون چنده؟

ali_zzr
17 July 2008, 12:52 AM
نه خطا نمیگیره , مقدار خالی برمیگردونه

من از wamp Server برای تست اسکریپتهام استفاده میکنم.
Apache/1.3.33 (Win32) PHP/5.0.3

ولی الان روی یک سرور امتحان کردم POST_$ جواب داد ولی روی کامپیوتر خودم جواب نمیده.

مشخصات سرور هم اینه
Apache version1.3.41 (Unix)PHP version4.4.8


خیلی عجیبه..اونی که ورژن PHP کمتره جواب میده

Ali_ix
19 July 2008, 08:16 PM
لطفا از همین اول که شروع کردید کدهای htmlتون رو درست و تمیز و استاندارد بنویسید!

اون کتابی هم که خوندید یا خیلی قدیمی بوده یا غیر کاربردی، این مسئله که نمیتونید مستقیما از اسم fieldها به عنوان متغیر استفاده کنید به register globals بر میگرده که عموما روی سرورها خاموشه. درستشم همینه!
برای مطالعه بیشتر: http://de.php.net/register_globals

mosaafer
25 October 2008, 01:25 AM
سلام
برای نمایش ساعت فعلی در پی اچ پی باید چه کدی بنویسم؟
که ساعت ایران رو نشون بده