即时尝试制作删除用户页面,但我无法弄清楚为什么会收到此错误。
Undefined index: bil in C:\wamp\www\FORM\deleteadmin.php on line 4
Undefined index: adminID in C:\wamp\www\FORM\deleteadmin.php on line 5
第4行和第5行看起来像这样,
$bil = $_POST['bil'];
$adminID = $_POST['adminID'];
完整代码是new.php,它链接到包含错误的deleteadmin.php。
new.php
echo "<form name='update $bil' method=post action=newuser.php>" ?>
<tr>
<td><center><?php echo $bil; ?></center></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['tel']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['username']; ?></td>
<td><?php echo $row['password']; ?></td>
<td><a href = "deleteadmin.php"><img src="img/deleteicon.png" align="center"></a></td>
<input type=hidden value={$row['adminID']} name=adminID>
<input type=hidden value=$bil name=bil>
</tr>
<?php
echo "</form>";
}
?>
deleteadmin.php
<?php
include ('config.php');
$bil = $_POST['bil'];
$adminID = $_POST['adminID'];
$result = mysql_query("DELETE FROM `admin` WHERE `adminID`= '$adminID'") or die (mysql_error());
if($result)
{
?>
<script language="javascript">
alert("User No : <?php echo "$bil"; ?> DELETED");
location.href="new.php";
</script>
<?php
}
else
{
?>
<script language="javascript">
alert("User No : <?php echo "$bil"; ?> NOT DELETED");
location.href="new.php";
</script>
<?php
}
?>
我需要做些什么才能修复它们?我尝试过使用ISSET,但它不起作用。 我不明白为什么会发生这种情况,我很想知道如何让它消失。
答案 0 :(得分:2)
我不认为你在做什么是对的..因为,当你点击<a>
链接时,这将给你未定义的索引错误。因此,您应该将参数作为查询字符串传递给<a>
..这是因为<form>
操作指向 newuser.php
您需要将参数adminID
和bil
附加到此链接,如下所示..
<td><a href = "deleteadmin.php?adminID=<?php echo $row['adminID']; ?>&bil=<?php echo $bil; ?>"><img src="img/deleteicon.png" align="center"></a></td>
并在deleteadmin.php
上,您需要从
$bil = $_POST['bil'];
$adminID = $_POST['adminID'];
到
$bil = $_GET['bil'];
$adminID = $_GET['adminID'];
此mysql_*
)扩展程序自PHP 5.5.0
起已弃用,将来会被删除。相反,应使用MySQLi
或PDO_MySQL
扩展名。切换到PreparedStatements
甚至可以更好地抵御SQL注入攻击!
答案 1 :(得分:2)
我在这里看到2个问题
首先:
<a href = "deleteadmin.php"><img src="img/deleteicon.png" align="center"></a>
单击此按钮,您只能访问deleteadmin.php文件。 你没有传递任何论据。
第二
$bil = $_POST['bil'];
$adminID = $_POST['adminID'];
您没有发布任何数据,因此$ _POST变量将为空。
解决方案
在网址?bil=".$bil."&adminID=".$adminID."
<a href = "deleteadmin.php?bil=".$bil."&adminID=".$adminID.""><img src="img/deleteicon.png" align="center"></a>
传递get values然后在deleteadmin.php中处理
而不是使用$_POST
使用$_GET
。
$bil = $_GET['bil'];
$adminID = $_GET['adminID'];
$ _ GET []用于获取URL中查询字符串中编码的值。
然后,您不需要有一个表单供您删除用户。只需访问urld中传递$ _GET值的deleteadmin.php文件。
答案 2 :(得分:2)
这很容易修复。
尝试不要使用隐藏并在new.php中替换你的href:
<td><a href = "deleteadmin.php?adminID={$adminID}&bil={$bil}"><img src="img/deleteicon.png" align="center"></a></td>
实际上,您可以将$_POST
替换为$_REQUEST
,因为$_REQUEST
代表$_POST
和$_GET
希望这可以帮助您解决问题。
答案 3 :(得分:0)
将 new.php 中的代码更改为:
echo "<form name='update $bil' method=post action=newuser.php>
<tr>
<td><center><?php echo $bil; ?></center></td>
<td><?php echo $row['name']; ?></td>
<td><?php echo $row['tel']; ?></td>
<td><?php echo $row['email']; ?></td>
<td><?php echo $row['username']; ?></td>
<td><?php echo $row['password']; ?></td>
<td><a href = 'deleteadmin.php'><img src='img/deleteicon.png' align='center'></a></td>
<input type='hidden' value=$row['adminID'] name='adminID'>
<input type=hidden value='$bil' name='bil'>
</tr>
</form>";
试试这个。