gpt4 book ai didi

php - 使用 PHP 将值插入服务器

转载 作者:行者123 更新时间:2023-11-29 06:30:35 25 4
gpt4 key购买 nike

这是一个基本的(我认为是)工作注册表,我检查了它并且没有发现我的脚本中有任何漏洞。

我的主要问题是他们的代码完全运行,没有错误,但是当我在 phpMyAdmin 中查看我的表时,没有出现最终的 echo 语句并且没有插入详细信息。

<? php

require 'connect.php';

if (isset($_POST['username', 'password', 'firstname', 'lastname', 'email', 'age']){

$username = $_POST['username'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$age = $_POST['age'];

$query = "INSERT INTO 'user_details'.'user_login_details' ('id', 'username', 'firstname', 'lastname', 'email', 'password', 'age) VALUES (NULL, '$username', '$firstname', '$lastname', '$email', '$password', '$age')";

$result = mysqli_query($query);

if ($result == true){
echo "User Created Successfully. Welcome to the family !";
}



}

?>

最佳答案

有几种可能的原因导致你的echo语句没有被执行

脚本运行失败

确保您的服务器可以运行 PHP 脚本并且该脚本可以运行。通过在这个脚本的顶部传递一个简单的 echo 语句来测试,就在打开 <?php 之后标记(' 之间不应有空格

条件失败

如果第 5 行的条件失败,您的查询将不会执行。我怀疑您想确保每个变量都存在于 $_POST 中,但代码现在不这样做。相反,尝试单独检查每个键:

if (isset($_POST['username'] && isset($_POST['password'])...)

将一些调试输出添加到 else判断条件是否失败的子句:

if (...) {
//
} else {
echo "Please enter a value in all required fields."
}

查询失败

代码执行查询但无法确定它是否成功完成。对于调试,您可以执行以下操作:

$result = mysqli_query($query) or die('Query failed: ' . mysql_error());

对于生产代码,检查返回值

if ($result == true){

并创建一个 else管理失败的条款

} else {
// Log mysql_error() to an appropriate location

mysql_error()将显示有关您的查询或连接中的错误的详细信息。

其中一个错误 mysql_error将报告查询正在错误地引用数据库、表和列名;数据库、表和列名称需要用反引号(`)而不是单引号(')括起来:

$query = "INSERT INTO `user_details`.`user_login_details` (`id`, `username`, `firstname`, `lastname`, `email`, `password`, `age`) VALUES (NULL, '$username', '$firstname', '$lastname', '$email', '$password', '$age')";

只有值应该用单引号括起来

弃用和安全警告

正如其他人所指出的,该代码使用已弃用的 mysql_*功能,并且容易受到 SQL 注入(inject)攻击。考虑升级到 PDO 和准备好的语句作为第一道防线。

关于php - 使用 PHP 将值插入服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28141050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com