<form>
<input type='text' name='source' placeholder='source'/>
<input type='text' name='destination' placeholder='destination'/>
<input type='text' name='trainid' placeholder='trainid'/>
<input type='submit' name='deletetrainid'/>
</form>
<?php
if(isset($_POST['deleteTrain'])){
echo "ENTER TRAINID,SOURCE AND DESTINATION TO DELETE TRAIN ROUTE";
echo "<form action='adminPage.php' method='POST'><input type='text'
name='trainid'/>";
echo"<input type='text' name='source' placeholder='ENTER SOURCE'/>";
echo"<input type='text' name='destination' placeholder='ENTER
DESTINATION'/>";
echo"<input type='submit' name='deletetrainid'/>";
echo"</form>";
if (isset($_POST['deletetrainid'])) {
$source = $_POST['source'];
$destination = $_POST['destination'];
$trainid = $_POST['trainid'];
$query = "DELETE FROM trains WHERE trainid=$trainid AND source=$source
AND destination=$destination";
$result = mysqli_query($connection, $query);
if(!$result){
die("QUERY FAILED". mysqli_error($connection));
}
else
echo "Record Deleted";
}
}
单击name=deletetrainid的按钮时,什么都不会发生,输入字段显示为空,可以再次填充。未删除任何数据/行。需要帮忙吗?
2条答案
按热度按时间fzsnzjdm1#
在窗体中,不能添加属性:
action
以及method
. 在你的主题中,行动的价值是""
方法是POST
ogsagwnx2#
看看你的代码,我可以看到一些事情可能会出错。sql注入攻击只是其中之一,就像提到的@luca。
但是,好吧,我做了我自己版本的代码,下面是我可以为你解决的问题,让你从某处获得信息。
所以,首先:你期望的第一个信息集
deleteTrain
不会显示在任何地方,也不会设置在任何地方,它永远不会触发窗体。第二:你不需要两个表单,另外,只有第二个表单设置了method='post'和action,你可以在第一个表单中设置。。如果没有这个,你只能在$u get之前获得信息。
第三:忘记在查询的文本变量上加引号。这是行不通的,因为字符串必须被引用。
你一定会犯错误(其中有好几个,真的),所以不要让它拖累你。使用诸如:var_dump、get_defined_vars()、print | echo | print | r、die()。。。在你需要寻求帮助之前,所有能帮助你找出代码中发生了什么的东西,这样你至少可以大致知道哪里出了问题,哪里出了问题。