我目前正在学习教程,有问题的讲师有一个表格,当他在没有输入任何信息的情况下点击“提交”按钮时,会显示一条消息“您必须完成所有字段”。问题出在我身上:我和他写了相同的代码,但消息出现在页面加载开始时,即甚至没有点击提交按钮。
顺便说一下,他说当我们加载表单页面时,我们将使用 $_SESSION["message"]=null;
来不显示该消息。
这里是 session.php 代码
<?php
session_start();
function Message(){
if(isset($_SESSION["message"]))
{
$Output="<div class=\"message\">";
$Output .= htmlentities($_SESSION["message"]);
$Output .="</div>";
$_SESSION["message"]=null;
return $Output;
}
}
?>
和 user_registration.php 代码:
`
<?php require("include/session.php"); ?>
<?php require_once("include/database.php"); ?>
<?php
if(isset($_POST["submit"])){
$Username=mysqli_real_escape_string($Connection,$_POST["Username"]);
$Email=mysqli_real_escape_string($Connection,$_POST["Email"]);
$Password=mysqli_real_escape_string($Connection,$_POST["Password"]);
$ConfirmPassword=mysqli_real_escape_string($Connection,$_POST["ConfirmPassword"]);
}
if(empty($Username)&&empty($Email)&&empty($Password)&&empty($ConfirmPassword)){
$_SESSION["message"]="All Fields must be filled out";
}else if($Password!==$ConfirmPassword){
$_SESSION["message"]="Both passwords must be the same";
}
?>
<!DOCTYPE>
<html>
<head>
<title>
Register Now
</title>
<link rel="stylesheet" href="include/Styles.css">
</head>
<body>
<div><?php echo Message(); ?></div>
<div id="centerpage">
<form action="./user_registration.php" method="post">
<fieldset>
<span class="FieldInfo">Username:</span><br><input type="text" name="Username" value=""><br>
<span class="FieldInfo">Email:</span><br><input type="email" name="Email" value=""><br>
<span class="FieldInfo">Password:</span><br><input type="password" name="Password" value=""><br>
<span class="FieldInfo">Confirme Password:</span><br><input type="password" name="ConfirmPassword" value=""><br>
<br><input type="submit" name="submit" value="submit"><br>
</fieldset>
</form>
</div>
</body>
</html>
`
答案 0 :(得分:0)
您必须检查 if (isset($_POST['submit'] )) 语句中的空输入。所以你必须在
中改变它If(isset($_POST[“submit”])){
$Username=mysqli_real_escape_string($Connection,$_POST[“Username”]);
$Email=mysqli_real_escape_string($Connection,$_POST[“Email”]);
$Password=mysqli_real_escape_string($Connection,$_POST[“Password”]);
$ConfirmPassword=mysqli_real_escape_string($Connection,$_POST[“ConfirmPassword”]);
If(empty($Username)&&empty($Email)&&empty($Password)&&empty($ConfirmPassword)){
$_SESSION[“message”]=”All Fields must be filled out”;
}else if($Password!==$ConfirmPassword){
$_SESSION[“message”]=”Both passwords must be the same”;
}
}