10/10/2018, 10:51

Lỗi PHP không nhận biên từ Form

Mình có một bài PHP đơn giản : tính diện tích hình chữ nhật sử dụng Form, nhưng ko biết tại sao khi bật nó thông báo lỗi như sau :



Code của mình :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>s_hcn</title>
</head>

<body>
<?php
$dai = $_POST["dai"];
$rong =$_POST["rong"];
$dt = $dai * $rong;
?>
<form id="form1" name="form1" method="post" action="dientichhcn.php">
<table width="400" border="1" cellspacing="1" cellpadding="1">
<tr>
<td colspan="2" align="center"><p>T&Iacute;NH DI***7878;N T&Iacute;CH H&Igrave;NH CH***7918; NH***7852;T </p>
</td>
</tr>
<tr>
<td width="95">Chi***7873;u d&agrave;i : </td>
<td width="292"><label>
<input name="dai" type="text" id="dai" value="<?php echo $_POST["dai"];?>" size="40" />
</label></td>
</tr>
<tr>
<td>Chi***7873;u r***7897;ng : </td>
<td><label>
<input name="rong" type="text" id="rong" value="<?php echo $_POST["rong"];?>" size="40" />
</label></td>
</tr>
<tr>
<td>Di***7879;n t&iacute;ch : </td>
<td><label>
<input name="dt" type="text" id="dt" value="<?php echo $dt;?>" size="40" />
</label></td>
</tr>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="Submit" value="T&iacute;nh" />
</label></td>
</tr>
</table>
</form>
</body>
</html>

Các bạn chỉ giúp mình với !

[=========> Bổ sung bài viết <=========]

Khi mình xóa chữ ở trong Text Field để nhập chiều dài và chiều rộng thì vẫn được, nhưng lần đầu tiên bật thì hiện ra như vậy
Shellingfox viết 13:08 ngày 10/10/2018
Thử sửa đoạn:
Code:
<?php
$dai = $_POST["dai"];
$rong =$_POST["rong"];
$dt = $dai * $rong;
?>
Thành:
Code:
<?php
$dai = isset($_POST["dai"]) ? $_POST["dai"] : 0;
$rong = isset($_POST["rong"]) ? $_POST["rong"] : 0;
$dt = $dai * $rong;
?>

Lý do là lần đầu vào thì FORM chưa được submit nên giá trị của $_POST là chưa có.
sonha61 viết 13:07 ngày 10/10/2018
$dai = isset($_POST["dai"]) ? $_POST["dai"] : 0;

Dòng này có nghĩa là nếu dùng thì lấy giá trị của "dai" còn nếu ko thì nhận giá trị là 0 phải ko bạn ?
snoob viết 13:07 ngày 10/10/2018
Được gửi bởi sonha61
$dai = isset($_POST["dai"]) ? $_POST["dai"] : 0;

Dòng này có nghĩa là nếu dùng thì lấy giá trị của "dai" còn nếu ko thì nhận giá trị là 0 phải ko bạn ?
Uh, nếu đúng thì lấy giá trị của $_POST['dai']
sonha61 viết 13:03 ngày 10/10/2018
vẫn ko đc bạn ạ, dòng lệnh của bạn đúng rùi, nhưng sau khi chạy vẫn hiện ra như vậy.Nếu mình điền số vào thì lần sau mới dc
để mình xem lại
Shellingfox viết 12:52 ngày 10/10/2018
Thay thêm chổ:

Code:
<input name="dai" type="text" id="dai" value="<?php echo $_POST["dai"];?>" size="40" />
Thành:
Code:
<input name="dai" type="text" id="dai" value="<?php echo $dai;?>" size="40" />


Code:
<input name="rong" type="text" id="rong" value="<?php echo $_POST["rong"];?>" size="40" />
thành:
Code:
<input name="rong" type="text" id="rong" value="<?php echo $rong;?>" size="40" />
addme viết 12:52 ngày 10/10/2018
Cách nhanh nhất là thêm dòng này vào đầu file php
PHP Code:
// Turn off all error reporting
error_reporting(0); 
thuyduongcd viết 13:07 ngày 10/10/2018
Sửa ở trên sao không sửa ở dưới
Code:
<input name="dai" type="text" id="dai" value="<?php echo $_POST["dai"];?>" size="40" />
Đã gán $_POST['dai'] vô biến $dai rồi thì sso không sử dụng biến này còn gọi lại $_POST['dai'] chi cho lỗi.
sonha61 viết 13:05 ngày 10/10/2018
cảm ơn bạn, mình làm được rồi, nhưng mình chưa hiểu tại sao mình làm như lúc đầu lại sai, mình làm y nguyên như trong Video của trường KHTN TPHCM bạn ạ.
addme viết 12:59 ngày 10/10/2018
Được gửi bởi sonha61
cảm ơn bạn, mình làm được rồi, nhưng mình chưa hiểu tại sao mình làm như lúc đầu lại sai, mình làm y nguyên như trong Video của trường KHTN TPHCM bạn ạ.
Vì họ cấu hình trong php.ini display_errors off
Bài liên quan
0