10/10/2018, 13:20

lỗi Undefined index

mình có viết một bài PHP đơn giản bằng Dreamweaver 8, nội dung là nhập 2 giá trị chiều rộng và chiều dài rồi tính diện tích hình chữ nhật. Khi Run thì trên trình duyệt xuất hiện thông báo
Notice: Undefined index: dai on line 20
Notice: Undefined index: rong on line 21
Nhưng khi mình nhập 2 giá trị vào ô chiều dài và chiều rộng rồi bầm Button Tính thì vẫn ra kết kết quả đúng. Dưới đây là code của mình mong các bạn chỉ giúp


<!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>Tính diện tích</title>
<style type="text/css">
<!--
.style1 {
color: #6600FF;
font-size: 24px;
font-weight: bold;
}
.style2 {color: #6600FF}
-->
</style>
</head>

<body>
<?php
$dai = $_POST["dai"];
$rong = $_POST["rong"];
$dt = $dai * $rong;

?>
<form id="form1" name="form1" method="post" action="TinhDienTich.php">
<table width="271" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="#FFFF99">
<tr>
<td colspan="2"><div align="center" class="style1">TÍNH DIỆN TÍCH </div></td>
</tr>
<tr>
<td width="102"><span class="style2">Chiều dài </span></td>
<td width="163"><label>

<div align="left">
<input type="text" name="dai" id="dai" value="<?php echo $dai;?>" size="20" />
</div>
</label></td>
</tr>
<tr>
<td><span class="style2">Chiều rộng </span></td>
<td><label>

<div align="left">
<input type="text" name="rong" id="rong" value="<?php echo $rong;?>" size="20" />

</div>
</label></td>
</tr>
<tr>
<td><span class="style2">Diện tích </span></td>
<td><label>

<div align="left">
<input type="text" name="dt" id="dt" style="background-color:#3399CC" value="<?php echo $dt;?>" size="20" readonly="true" />
</div>
</label></td>
</tr>
<tr>
<td colspan="2"><span class="style2"></span> <div align="left">
<label>
<div align="center">
<input type="submit" name="Submit" value="Tính" />
</div>
</label>
</div><div align="center"></div></td>
</tr>
</table>
</form>
</body>
</html>
s.code viết 15:22 ngày 10/10/2018
Lúc trang truy xuất lần đầu (chưa submit) thì biết $_POST là 1 mảng rỗng. Bạn nên check trường hợp khi họ submit form rồi mới lấy giá trị đó.
danchithancong viết 15:36 ngày 10/10/2018
mình mới học PHP có mấy ngày mà bạn nói vậy thì chả hiểu gì hết.
thuyduongcd viết 15:34 ngày 10/10/2018
Nói vậy mà chả hiểu thì bó tay.
2 cái dòng này:
Code:
$dai = $_POST["dai"];
$rong = $_POST["rong"];
$_POST["dai"] và $_POST["rong"] từ đâu mà có? Chưa có giá trị mà sử dụng thì báo lỗi.
kakabond viết 15:32 ngày 10/10/2018
chỉ cách xử lý vấn dề này đi , mình cũng đang bị
Steve_App viết 15:33 ngày 10/10/2018
Code:
if(isset($_POST["dai"])){
   $dai = $_POST["dai"];
}else{
   //$dai = giá trị mặc định !!!
}
maychu.net viết 15:37 ngày 10/10/2018
Code:
$dai = (isset($_POST["dai"]) && $_POST["dai"] != "") ? $_POST["dai"] : "";
j3ongdemhp22 viết 15:27 ngày 10/10/2018
Code em thế này: khi chưa Submit thì ko có lỗi.
Submit rồi thì : Notice: Undefined index: chao in C:\wamp\www\BaiTap\Bai1.php on line 21
Thanks !!!

<?php
$ten = "";
$chao = "";
if(isset($_POST["Submit"]))
{
$ten = $_POST["ten"];
$chao = $_POST["chao"];
}
?>
<body>
<form id="form1" name="form1" method="post" action="Bai1.php">
<table width="400" border="1" align="center">
<tr>
<td align="center"><span class="style1">In lời Chào </span></td>
</tr>
<tr align="center">
<td>Họ tên : <input name="ten" type="text" /></td>
</tr>
<tr align="center">
<td>
<?php
if(isset($_POST["ten"]))
echo "Xin chào ". $ten;
?>
</td>
</tr>
<tr align="center" valign="middle">
<td><input type="submit" name="Submit" value="Chào" /></td>
</tr>
</table>
</form>
thuyduongcd viết 15:22 ngày 10/10/2018
Bỏ dòng này đi
Code:
$chao = $_POST["chao"];
maychu.net viết 15:37 ngày 10/10/2018
Bạn có thể tham khảo cái này (sửa lại từ code bạn: bạn tạo dư 1 biến không cần thiết):
Code:
<?php 
$ten = (isset($_POST['ten']) && $_POST['ten'] !='') ? $_POST['ten'] : '';
?>

<form id="form1" name="form1" method="post" action="Bai1.php">
<table width="400" border="1" align="center">
<tr>
<td align="center"><span class="style1">In lời Chào </span></td>
</tr>
<tr align="center">
<td>Họ tên : <input name="ten" type="text" /></td>
</tr>
<tr align="center">
<td>
<?php
if(!empty($ten) && isset($_POST["Submit"])) {
   echo "Xin chào ". $ten;
} else {
   echo "Ban chua nhap ten...";
}
?>
</td>
</tr>
<tr align="center" valign="middle">
<td><input type="submit" name="Submit" value="Chào" /></td>
</tr>
</table>
</form>
Lỗi của bạn gặp do biến chưa được định nghĩa.
Có cách để tắt thông báo lỗi cho biến bằng cách thêm @ ở phía trước dấu $
Bài liên quan
0