我有一个登录表单,当我访问这个登录页面时,我有一个警告消息说:"输入您的访问数据以开始会话"。
然后我验证邮件是否有效或是否为空,我想为此给出警告消息,我希望这些错误消息出现在"输入您的访问数据以开始会话"的地方。
所以我创建了一个变量$showWarning = false,如果这个变量为false,我只显示我的消息"Enter your access data to start session"
当我想要给出其他警告消息时我将变量设为true, $showWarning = true
但是它不工作,我同时得到两个警告。
你知道哪里不对了吗?
$showWarning = false;
<?php
if(!(isset($_GET['remember'])))
{
echo '<h1>Login:</h1> ';
if($showWarning ==false){
echo '<span>Enter your acess data to start session.</span>';
}
if(isset($_POST['sendForm'])){
$f['email'] = $_POST['email'];
$f['pass'] = $_POST['pass'];
if(!$f['email'] || !valMail($f['email'])){
$showWarning = true;
echo '<span>Email is empty.</span>';
}
else if(strlen($f['pass']) <5 || strlen($f['pass']) > 10){
echo '<span>Pass must have between 5 and 10 chars.</span>';
$showWarning = true;
}
}
然后是我的表单:
<form name="login" action="" method="post">
<label class="label">
<input placeholder="Email" type="text" name="email" />
</label>
<label class="label">
<input type="password" placeholder="Pass" name="pass" />
<input type="submit" value="Login" name="sendForm" />
<a href="index.php?remember=true">Forgot pass</a>
</label>
</form>
您正在尝试在定义$showWarning
之前使用它。此外,在尝试显示另一个警告之前,您没有任何逻辑来检查是否显示警告。
根据我在你的代码中看到的,那个检查甚至是不必要的。检查一下表格是否提交了。如果是,则显示验证期间可能出现的任何错误。如果没有,显示你的"Enter your access data to start session"消息
if(isset($_POST['sendForm'])){
$f['email'] = $_POST['email'];
$f['pass'] = $_POST['pass'];
if(!$f['email'] || !valMail($f['email'])){
echo '<span>Email is empty.</span>';
}
else if(strlen($f['pass']) <5 || strlen($f['pass']) > 10){
echo '<span>Pass must have between 5 and 10 chars.</span>';
}
}
else {
echo '<span>Enter your access data to start session.</span>';
}