我创建了一个注册表单。首先显示未定义的索引和未定义的变量错误。我修复了该错误。但是在提交数据时发生了另一个错误..当我点击提交按钮显示"提交成功&# 34;并向数据库中添加新行但有些字段为空。(用户类型字段)。数据库字段和错误变量(未定义索引和未定义变量错误)相同。如何解决此问题..
此代码用于修复未定义的索引和未定义的变量
$usertype = isset( $_POST['usertype'] )? $_POST['usertype']: false;
这段代码的错误是什么...在每个php表单中都有这个错误。我用这个代码来修复未定义的变量和索引(不使用每个变量。只使用它显示错误)。当字段为空时提交。
这是Registration.php表格
<?php
$username=$_POST['username'];
$password=$_POST['password'];
$usertype = isset( $_POST['usertype'] )? $_POST['usertype']: false;
$connection = new mysqli("localhost", "root", "","student_information");
if ($connection->connect_error) {
die("Connection failed: " . $connection->connect_error);
}
$sql= "INSERT INTO registration(User_Name,Password,User_Type)
VALUES ('$username','$password','$usertype')";
if ($connection->multi_query($sql) === TRUE) {
echo "Submitted Successfully";
} else {
echo "Error: " .$sql."<br>". $connection->error;
}
$connection->close();
?>
<!DOCTYPE html>
<html >
<head>
<meta charset = "utf-8">
<title>Registration Form </title>
<link rel="stylesheet" href = "Registration.css" >
</head>
<body>
<div class = "RegistrationBox" >
<h2> Registration </h2>
<form action="Registration.php" method="post">
<p>User Name </p>
<input type = "text" name = "username" id="username" placeholder = "Enter User Name">
<p>Password </p>
<input type = "password" name = "password" id="password" placeholder = "********************">
<p>Confirm Password </p>
<input type = "password" name = "confirmpassword" id="confirmpassword" placeholder = "********************">
<p>User Type </p><br>
<input type="radio" name="usertype " id="usertype" value="Student" checked="Student" /> Student
<input type="radio" name="usertype " id="usertype" value="Lecturer" /> Lecturer<br>
<input type = "submit" value = "Submit" id="submit">
<br>
<a href = "#" >More </a>
</form>
</div>
</body>
</html>
&#13;
答案 0 :(得分:0)
在将一个文件包含到另一个使用相同变量名的文件的情况下,依赖于未初始化变量的默认值是有问题的。打开register_globals也是一个主要的安全风险。如果使用未初始化的变量,则会发出E_NOTICE级别错误,但是在未初始化的数组中附加元素时则不会。 isset()语言构造可用于检测变量是否已经初始化。另外,更理想的是empty()的解决方案,因为如果未初始化变量,它不会生成警告或错误消息。 是。
现在你必须定义索引变量。 在使用变量之前
$usertype="";
答案 1 :(得分:0)
com.apple.kec.pthread(1.0)[C69B97C1-505D-3629-9D64-7B7BC6D780A8]@0xffffff7f8cbf3000->0xffffff7f8cbfafff
checked="Student"
checked="checked"
注意:您尝试在可用之前访问帖子值。您只能在表单提交后访问帖子值
name="submit"