Php/Mysql登录验证

Php/Mysql登录验证,php,ubuntu,web,Php,Ubuntu,Web,我无法使用以下方法使用Php/mysql进行身份验证。我使用表单登录。请检查以下内容并帮助我解决问题 form.php <html> <body> <h2>Authentication</h2> <form action="login.php" method="post"> <label>Userid :</label> &

我无法使用以下方法使用Php/mysql进行身份验证。我使用表单登录。请检查以下内容并帮助我解决问题

form.php

<html>
    <body>
        <h2>Authentication</h2> 
        <form action="login.php" method="post">
            <label>Userid :</label>
            <input type="text" id="userid" name="userid" >
            <label>Password :</label>
            <input type="password" id="password" name="password">
            <input name="submit" type="submit" value=" Login ">
            <span><?php echo $error; ?></span>
        </form>
    </body>
</html>

认证
用户标识:
密码:
login.php

<?php
    $message="";
    if(count($_POST)>0) {
        mysql_connect("localhost", "root", "kami123")or
        die(mysql_error());    
        mysql_select_db("ccmsdb") or die(mysql_error());

        $result = mysql_query("SELECT *FROM client WHERE 
        userid='" . $_POST["userid"] . "' AND 
        password = '". $_POST["password"]."'");

        $count  = mysql_num_rows($result);
        if($count==0) {
            $message = "Invalid Username or Password!";
        } else {
            $message = "You are successfully authenticated!";
        }
    }
?>

除了注释中已经提到的内容外,您在查询中还缺少一个空格:

SELECT *FROM client WHERE
应该是

SELECT * FROM client WHERE

你为什么不试试PDO?不推荐使用MySQL函数

$err="";
(isset($_POST['email'], $_POST['pass'])) {
$email      =   $_POST['email'];
$pass       =   $_POST['pass'];

    if(!empty($email) && !empty($pass)) {
        if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) {
                $err = 'Invalid email format.';
                   }
           $dbc = new PDO('mysql:host=YOUR HOST;dbname=YOUR DBNAME', 'YOUR USERNAME', 'YOUR PASSWORD');
                $stmt = $dbc->prepare("SELECT id, name, pass FROM client WHERE email =:email LIMIT 1");
                $stmt -> bindValue(':email', $email);
                $stmt -> execute(); 
                    while( $row = $stmt->fetch(PDO::FETCH_ASSOC) ){
                        if(password_verify($pass, $row['pass'])) {
                            //Logged In 
                            $_SESSION['id'] = $row['id'];
                            $_SESSION['name'] = $row['name'];
                            header('Location:logged_in_user_page.php');
                              ... bla bla ...                   
                        }else {
                            // Not Logged In
                            header('Location:not_logged_in_user_page.php');                         
                        }
                    }           
    }else {
        $err =  'You have to provide an email and a password!';
    }
}

“无法验证”是什么意思?您没有看到成功消息吗?你没有预约吗?顺便说一下,MySQL已经过时了,你应该考虑切换到MySQL或PDO。还要小心SQL注入!您不应该发布数据库根密码。您不应以纯文本形式存储密码。你们一定要读一下SQL注入,它不是一个可操作的项目,我正在研究它,稍后会应用反sqli。但代码不起作用问题所在站点注意:mysql_*自较新的PHP版本以来已被删除,并在PHP7中被完全删除。请看@jiboulex mysql没有被弃用,它不再存在,当然在当前稳定版本的php中,它是7^ ^我的意思是我纠正了select查询,但代码仍然不工作是的,我知道了,但不工作,你的意思是你看到了错误消息吗?您没有看到成功消息吗?您没有创建会话??