图像按钮无法工作,但普通按钮可以工作:php

15 浏览
0 Comments

图像按钮无法工作,但普通按钮可以工作: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);
}

下面的表单部分:

感谢您的帮助。

0
0 Comments

问题的原因:

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来处理。

0