-1

このログイン フォームが機能しません。ログインが間違っていると常に表示されることを除けば、すべて問題ないはずです。私は何を間違っていますか?これは昨日の質問とは別のプロジェクトのためのものですが、私はこれでより良いコーディングを行いました。助けてくれてありがとう!ちなみに、これは login.php の一番上の部分で、この下に Bootstrap に基づいた HTML フォームがあります。

<?php session_start();

require_once('db_connect.php');

if(isset($_POST['formsubmit']))

{       
        $email = mysqli_real_escape_string($mysqli, $_POST['email']);
        $pass = md5($_POST['pass']);
        $exists = mysqli_query($mysqli, "SELECT COUNT(*) FROM clients WHERE email = '{$email}' AND pass = '{$pass}'"); 

        if(mysqli_fetch_array($exists, MYSQL_NUM) === 1)
        {
            if (isset($_POST['rememberme'])) {
                setcookie('email', $_POST['email'], time()+60*60*24*365);
                setcookie('pass', md5($_POST['pass']), time()+60*60*24*365);

            } else {
                setcookie('email', $_POST['email'], false);
                setcookie('pass', md5($_POST['pass']), false);
            }

            header('Location: index.php');
        } else {
            header('Location: login.php?error=1');
        }
}

?>
4

3 に答える 3

0

試す:

if(mysqli_num_rows($exists)) {
    ...
}

いいえ:

if(mysqli_fetch_array($exists, MYSQL_NUM) === 1) {
    ...
}

mysqli_num_rowsドキュメント。

mysqli_fetch_arrayは、フェッチされた行に対応する配列を返しますこの場合、あなたが探しているものではありません。

于 2013-09-17T02:45:05.277 に答える