2016-04-11 38 views
0

我有这行代码,我试图发送错误消息,如果用户名密码组合不匹配,事情是消息显示,当我访问页面,甚至在我之前输入用户名和密码。我如何才能在登录失败后才显示消息? 谢谢!PHP表单登录 - 发送错误信息

<?php 
$user = $_POST['user']; 
$pass = $_POST['pass']; 

if(($user == "someusername") && ($pass == "somepassword")) 
{ 
     include("../securedfile.php"); 
} 
else{  
    $message = "Invalid User/Password - Please Try Again"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
    } 

    if(isset ($_POST)) 

    {?> 

      <div class="secure"> 
      <form method="POST" action="secure.php"> 
      username:<input class="user" type="text" name="user"></input><br/><br/> 
      password:<input class="pass" type="password" name="pass"></input><br/><br/> 


      <button class="submit" type="submit" name="submit">SUBMIT</span></button> 
      </form> 
      </div> 
    <?} 
    }  
?> 
+0

我不知道你的代码是如何工作的,你有一个<?'而不是'<?php',但有一件事是你想要做的就是在'if(isset($ _ POST))'语句中放入'$ username ='asd'和$ password ='asd'',所以试着把前两行移到if语句中。 – Jek

回答

1

有括号问题与“其他”,然后形式secure.php调用而不是调用本身,没有isset ...下面的代码重写会做的更好的方法。并检查它,它的工作原理。 (这整个文件的名称 - new.php)

<div class="secure"> 
     <form method="POST" action="new.php"> 
     username:<input class="user" type="text" name="user"></input><br/><br/> 
     password:<input class="pass" type="password" name="pass"></input><br/><br/> 


     <button class="submit" type="submit" name="submit">SUBMIT</span></button> 
     </form> 
</div> 

<?php 
// checking the user 
if(isset($_POST['submit'])) 
{ 

    $user = $_POST['user']; 
    $pass = $_POST['pass']; 

if($user == "someusername" && $pass == "somepassword") 
    { 
    include("../securedfile.php"); 
    } 

else 
{ 
$message = "Invalid User/Password - Please Try Again"; 
echo "<script type='text/javascript'>alert('$message');</script>"; 
} 
} 
?> 
+0

非常感谢!有用!现在我需要隐藏表单,当包含“securedfile.php”时。 – paboca

+0

我刚刚添加了''到“securedfile.php”的顶部,所以它会隐藏表单。正在努力。 Thakyou! – paboca

+0

没问题。你必须用绿色的勾号来接受答案,所以这个话题是封闭/回答的。 –

0

我会检查是否设置了用户名和密码post vars。

此外,使用一个单独的变量来控制错误是否触发将有所帮助。

$user = $_POST['user']; 
$pass = $_POST['pass']; 

$error = false; 

if(isset($_POST['user'] && isset($_POST['pass'])){ 
    $error = true; 
} 

if(isset($_POST['user'] && isset($_POST['pass'])){ 
    if($user == "someusername" && $pass == "somepassword") 
    { 
    include("../securedfile.php"); 
    $error = false; 
    } 
} 

if($error = true){ 
    $message = "Invalid User/Password - Please Try Again"; 
    echo "<script type='text/javascript'>alert('$message');</script>"; 
}