为什么我php用sql 添加不了新信息进去
为什么我php用sql 添加不了新信息进去
为什么我php用sql 添加不了新信息进去
php用sql 添加新用户信息
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
从提供的代码片段来看,存在一些明显的错误和不良实践,这些可能是导致无法添加新用户信息到数据库的原因。下面我将详细分析并提供修改建议。
错误分析与修正
-
表单提交方法和动作属性错误 表单的
action
属性为空,这意味着表单数据将被发送到当前页面自身,但你的PHP代码似乎没有正确处理POST请求。正确的做法是将表单数据发送到一个专门用于处理表单数据的脚本,例如t1.php
。 -
POST数据获取错误 在PHP中,
$POST
应该写为$_POST
。此外,if($POST)
这样的条件语句不会按预期工作,因为它将检查$_POST
是否为真,而通常情况下它总是真的(即使没有POST数据)。正确的做法是检查是否有特定的字段被提交。 -
SQL语法错误 SQL插入语句中的变量名被错误地使用了前缀
S
,这会导致SQL语法错误。你需要使用实际的变量名。 -
SQL注入风险 直接在SQL语句中使用用户输入的数据可能会导致SQL注入攻击。应该使用参数化查询或预处理语句来防止此类攻击。
修改后的代码示例
以下是修改后的代码示例,用于解决上述问题:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $loginId = $_POST['uid']; $loginPwd = $_POST['upwd']; $username = $_POST['uname']; // 数据库连接 $link = mysqli_connect("localhost", "root", "root", "test"); if (!$link) { die("数据库连接失败: " . mysqli_connect_error()); } mysqli_set_charset($link, "utf8"); // 预处理语句,防止SQL注入 $stmt = $link->prepare("INSERT INTO users (login_id, login_pwd, username) VALUES (?, ?, ?)"); $stmt->bind_param("sss", $loginId, $loginPwd, $username); // 执行插入操作 if ($stmt->execute()) { echo '添加成功'; header("Refresh:1"); } else { echo '添加失败: ' . $stmt->error; } // 关闭预处理语句和数据库连接 $stmt->close(); mysqli_close($link); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>添加用户信息</title> </head> <body> <div class="box2"> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 登录名字:<input type="text" name="uid"><br><br> 登陆密码:<input type="password" name="upwd"><br><br> 用户姓名:<input type="text" name="uname"><br><br> <input type="submit" value="添加新的用户信息"> <input type="reset" value="重置填入的信息"> </form> </div> </body> </html>
这个修改后的代码解决了原始代码中的所有问题,并使用了预处理语句来增强安全性。请确保将此代码保存在服务器上并进行测试。如果仍然遇到问题,请检查数据库结构和字段名称是否与代码中使用的相匹配。
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 win2012 iscsi ipsec
- ¥15 封装的 matplotlib animation 不显示图像
- ¥15 python摄像头画面无法显示
- ¥15 关于#3d#的问题:d标定算法(语言-python)
- ¥15 cve,cnnvd漏洞扫描工具推荐
- ¥15 图像超分real-esrgan网络自己训练模型遇到问题
- ¥15 如何构建全国统一的物流管理平台?
- ¥100 ijkplayer使用AndroidStudio/CMake编译,如何支持 rtsp 直播流?
- ¥15 用js遍历数据并对非空元素添加css样式
- ¥15 使用autodl云训练,希望有直接运行的代码(关键词-数据集)