图像按钮无法工作,但普通按钮可以工作:php
图像按钮无法工作,但普通按钮可以工作:php
我写了一个代码,类似于一个待办事项列表,之前它是可以工作的,但现在普通按钮可以工作,但是类型为图像的按钮无法工作。
出了什么问题?
上面的部分:
if (isset($_POST['remove_list'])){ echo("xxx"); $todo_id = $_POST['remove_list']; //获取提交的值。 $sql="DELETE FROM todo WHERE todo_id='$todo_id'"; //删除用户的待办事项 mysqli_query($conn,$sql); } if (isset($_POST['add_list'])){ echo("yyy"); $todo_text=$_POST['text']; $sql = "insert into todo(todo_text) values('$todo_text')"; mysqli_query($conn, $sql); }
下面的表单部分:
感谢您的帮助。
问题的原因:
1. 上传代码的安全性不够,需要使用准备语句或其他MySQL转义方法来防止注入攻击。
2. 使用了`input type="image"`和`input type="submit"`同时存在,由于`input type="image"`也会提交表单,所以只能使用一个提交按钮。
3. `value=""`是无用的,因为图像按钮的值属性不接受值,参考链接:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/image
4. 首先,提交按钮的名称不会被发送,所以`if (isset($_POST['add_list']))`将始终返回false,参考链接:https://stackoverflow.com/questions/22579616
解决方法:
1. 优化上传代码的安全性,可以使用准备语句或其他MySQL转义方法来防止注入攻击。
2. 只使用一个提交按钮,可以选择保留`input type="submit"`或者替换为`input type="image"`。
3. 移除无用的`value=""`。
4. 如果需要判断提交按钮的值,可以使用隐藏表单字段来传递值,或者使用JavaScript来处理。