登录失败不显示

时间:2017-02-06 10:41:25

标签: php html

我有一个登录表单,如果用户名和密码不正确则会出错,如果成功则显示index.php。现在成功登录工作正常。但是,如果出现错误,则不显示该消息。只显示一个空白页面。

P.S。在访问页面之前,我如何强制页面通过登录页面?

我的connectivity.php代码:

<?php 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'list'); 
define('DB_USER','root'); 
define('DB_PASSWORD','****');

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
/* 
$ID = $_POST['user']; 
$Password = $_POST['pass']; 
*/
function SignIn() 
{ 
    session_start(); 
    if(!empty($_POST['user'])) 
    { 
        $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error()); 
        if(!empty($row['userName']) AND !empty($row['pass'])) 
        { 
            $_SESSION['userName'] = $row['pass']; 
            header("Location: index.php");

        } 

        else 
        {
            echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
        } 
    }  

}
if(isset($_POST['submit'])) 

{ 
    SignIn(); 
} 
?>

2 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。在行:

$row = mysql_fetch_array($query) or die(mysql_error()); 

我删除了&#34;或者死了&#34;代码的一部分,因为当用户名或密码错误时,$ row没有任何显示,所以它终止,并且没有机会转到else语句。

代码正在运行!谢谢大家

答案 1 :(得分:-1)

这被认为是评论,但我的声誉很低。

在我回答你的问题之前,请不要使用mysql函数,因为它不再受支持。考虑切换到MYSQLI或PDO。此外,不要相信用户输入。意思是不要直接将表单中的字段值发布到数据库中,因为attcker可以通过添加有趣的javascripts或更糟糕的方式轻松利用它。

<?php
    if (!empty($row['userName']) && ! empty($row['pass'])) {
        $_SESSION['userName'] = $row['pass'];
        header("Location: index.php");
    } else {
        $error[] = "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...";
    }

然后在表单中添加以下代码以显示错误

<?php
     if (isset($error)) {
        foreach ($error as $validationErrors) {
            echo '<div class="alert alert-danger" align="center">' . $validationErrors . '</div>';
        }
    }
?>

仅供参考:您需要使用bootstrap来显示页面上的错误。我刚才补充说。如果它对您有用,请告诉我

相关问题