单击提交按钮成功提交按摩显示,但某些字段为空。否则显示未定义的索引和未定义的变量错误

时间:2018-06-13 06:49:15

标签: php html

我创建了一个注册表单。首先显示未定义的索引和未定义的变量错误。我修复了该错误。但是在提交数据时发生了另一个错误..当我点击提交按钮显示"提交成功&# 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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

在将一个文件包含到另一个使用相同变量名的文件的情况下,依赖于未初始化变量的默认值是有问题的。打开register_globals也是一个主要的安全风险。如果使用未初始化的变量,则会发出E_NOTICE级别错误,但是在未初始化的数组中附加元素时则不会。 isset()语言构造可用于检测变量是否已经初始化。另外,更理想的是empty()的解决方案,因为如果未初始化变量,它不会生成警告或错误消息。 是。

现在你必须定义索引变量。 在使用变量之前

$usertype="";

答案 1 :(得分:0)

  1. 这是无效的已检查属性com.apple.kec.pthread(1.0)[C69B97C1-505D-3629-9D64-7B7BC6D780A8]@0xffffff7f8cbf3000->0xffffff7f8cbfafff
  2. 简单地给出checked="Student"
  3. 设置名称属性以提交输入checked="checked"
  4. 由于操作页面与表单页面相同,因此您需要将所有PHP代码包装到帖子检查中,如下所示。
  5. 注意:您尝试在可用之前访问帖子值。您只能在表单提交后访问帖子值

    name="submit"