我有一个登录表单,当我访问此登录页面时,我收到一条警告消息:"输入您的访问数据以启动会话"。
然后我验证邮件是否有效或是否为空,我想为此发出警告消息,我希望这些错误消息代替"输入您的访问数据以启动会话"
所以我创建了一个变量$ showWarning = false,我只显示了我的消息"输入您的访问数据以启动会话"如果这个变量是假的。
而且,当我想给出其他警告信息时,我将变量设为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>
答案 0 :(得分:1)
您在定义之前尝试使用$showWarning
。此外,在尝试显示另一个警告之前,您没有任何逻辑可以检查是否显示警告。
根据我在代码中看到的内容,甚至不需要进行检查。只需检查表单是否已提交。如果是,请显示验证期间可能出现的任何错误。如果没有,请显示“输入您的访问数据以开始会话”消息。
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>';
}