如何修复这个未定义的数组键?

23 浏览
0 Comments

如何修复这个未定义的数组键?

以下是当前显示的错误。我将第一个代码保存为details.php,第二个代码保存为details.html

警告:在C:\xampp\htdocs\children_math\detail2.php的第12行找不到数组键“first_name”

警告:在C:\xampp\htdocs\children_math\detail2.php的第13行找不到数组键“last_name”

警告:在C:\xampp\htdocs\children_math\detail2.php的第14行找不到数组键“email”

警告:在C:\xampp\htdocs\children_math\detail2.php的第15行找不到数组键“age”

错误:无法执行INSERT INTO details(first_name,last_name,email,age)VALUES('','','','')。无法添加或更新子行:外键约束失败(recorddetails,CONSTRAINT details_ibfk_1 FOREIGN KEY(id)REFERENCES usersid))

/* 尝试连接MySQL服务器。假设您正在使用默认设置运行MySQL服务器(用户名为“root”,无密码) */

$link = mysqli_connect(“localhost”,“root”,“”,“record”);

// 检查连接

if($link === false){

die(“错误:无法连接。” . mysqli_connect_error());

}

// 为安全起见转义用户输入

$first_name = mysqli_real_escape_string($link,$_REQUEST ['first_name']);

$last_name = mysqli_real_escape_string($link,$_REQUEST ['last_name']);

$email = mysqli_real_escape_string($link,$_REQUEST ['email']);

$age = mysqli_real_escape_string($link,$_REQUEST ['age']);

// 尝试执行插入查询

$sql = “INSERT INTO details(first_name,last_name,email,age)VALUES('$first_name','$last_name','$email','$age')”;

if(mysqli_query($link,$sql)){

echo “记录已成功添加。”;

} else {

echo “错误:无法执行$sql。” . mysqli_error($link);

}

// 关闭连接

mysqli_close($link);

?>

添加记录表单

0
0 Comments

问题的原因:在代码中使用了未定义的数组键。

解决方法:确保表单的方法属性设置为post,并使用正确的输入标签的名称作为数组键。

具体步骤如下:

1. 确保表单的方法属性设置为post:

2. 在`your_page.php`文件中,使用正确的输入标签名称获取值:

$email = $_POST['emailInput'];

在`$_POST['emailInput']`中,`emailInput`是你的输入标签的名称。

3. 确保数据库表格之间的链接正确。例如,如果你想将`details`表格与`users`表格关联,需要确保在数据库中创建正确的外键关系。

以上是解决问题的方法。如果以上代码没有问题,那么唯一的问题可能是你的网络应用程序与数据库(PhpMyAdmin)之间的链接。

0
0 Comments

我遇到了一个类似的问题,我通过检查错误中提到的文件和行号来解决它。在你的情况下是details2.php。在我的情况下,这个错误是因为变量名$variable_name = $_POST['key_value'];是在if(isset($_POST['Register']))块之外初始化的。我所做的就是将它立即包含在if(condition)块之后,像这样;

if (isset($_POST['Register'])) {
    // 从表单接收所有输入值
    $name = mysqli_real_escape_string($conn, $_POST['name']);
    $Username = mysqli_real_escape_string($conn, $_POST['username']);
    $phone_number = mysqli_real_escape_string($conn, $_POST['phone_number']);
    $email =  mysqli_real_escape_string($conn, $_POST['email']);
    $Church =  mysqli_real_escape_string($conn, $_POST['church']);
    $Password1 = mysqli_real_escape_string($conn, $_POST['password']); //加密密码
    $Password2 = mysqli_real_escape_string($conn, $_POST['passwordConf']);
    $token = bin2hex(random_bytes(50)); // 生成唯一的token
}
// 表单验证:确保表单填写正确...
// 通过将相应的错误添加到$errors数组中来完成
if (empty($_POST['name'])) {
    $errors['name'] = 'Name required';
}
....

这对我来说起作用了,使用empty($_POST),所以谢谢。

0