php - 在单击提交按钮之前显示消息
问题描述
我目前正在学习一个教程,有问题的讲师有一个表格,当他在没有输入任何信息的情况下单击“提交”按钮时,会显示一条消息“您必须完成所有字段”。问题出在我身上:我编写了与他相同的代码,但消息出现在页面加载开始时,即甚至没有单击提交按钮。
顺便说一句,他说我们将$_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>
`
解决方案
您必须检查 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”;
}
}
推荐阅读
- modx - 是否可以在编辑父资源时编辑子资源的电视参数?
- audio - 当我移动到另一个选项卡时,posenet p5js 位置停止更新
- python-3.x - 如何为 chalice lambda 项目配置 AWS ALB
- javascript - 这是什么意思:'throw new Error('方言需要从 v4.0.0 开始明确提供');?
- javascript - 为什么console.log被写出?
- c# - Math.Net Symbolics:如何简化如下表达式:“0.0+1.0*x -2*y^1.0”
- floating-point - 如何在 Elm 中将 Float 转换为 Int?
- javascript - 如何管理 CKEditor 中的页眉和页脚部分?
- javascript - 有没有办法用 javascript 阻止所有 PUT http 请求?
- c# - 如何在 C# 中发送原始 HTTP 请求?