1

こんにちは、私は現在ログインシステムに取り組んでいますが、フォームが入力されていないか、入力された値が正しくないかをphpがチェックして言う必要があるという点でちょっと立ち往生しています。「De gebruikersnaam is niet ingevuld!」であることを示しています。ただし、ユーザーがデータベースに存在するかどうかは検証されていません。

<?php
if(($_SESSION['sessieinlog']) && ($_SESSION['sessiewachtwoord']))
{
    header ("Location: overzicht.php");
}
elseif(($_POST['gebruikersnaam']) && ($_POST['wachtwoord']))
{
    $username = mysql_real_escape_string($_POST['gebruikersnaam']);
    $password = md5(mysql_real_escape_string($_POST['wachtwoord']));
    $checklogin = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '".$username."' AND wachtwoord = '".$password."'");
    if(mysql_num_rows($checklogin) == 1)
    {
        $row = mysql_fetch_array($checklogin);
        $_SESSION['sessieinlog'] = $username;
        $_SESSION['sessiewachtwoord'] = 1;
        header ("Location: overzicht.php");
    }
    elseif(mysql_num_rows($checklogin) == 0)
    {
        //Gebruikersnaam
        if(empty($username)) 
        {
            print '<p class="form-error">De gebruikersnaam is niet ingevuld!</p>';
        }
        elseif  ($checklogin->gebruikersnaam !== $username)
        {
            print '<p class="form-error">De gebruikersnaam is niet bekend!</p>';            }
        else    
        { 
            $gebruikersnaamakkoord = true;
        }
        //Wachtwoord
        if ($gebruikersnaamakkoord == true)
        {  
            if (empty($inwachtwoord))
            {
            print '<p class="form-error">Het wachtwoord is niet ingevuld!</p>';
            }
            elseif ($checklogin->wachtwoord !== $password)
            {
            print '<p class="form-error">Het wachtwoord is niet correct!</p>';                  }
        }
        }
    }
    else
    {
    }
    ?>

この初心者を助けてくれる人に感謝します。私は PHP がまったく初めてなので、どんな種類の助けにも感謝します!

4

5 に答える 5

0

ここ

 else if(mysql_num_rows($checklogin) == 0){
// script from here will be called only if $checklogin is empty
// that means you can't call 
else if  ($checklogin->gebruikersnaam !== $username)
//here
}

それが役立つことを願っています

<?php

if (($_SESSION['sessieinlog']) && ($_SESSION['sessiewachtwoord'])) {
header("Location: overzicht.php");
}
if(isset($_POST['submit'])){
if ((!empty($_POST['gebruikersnaam'])) && (!empty($_POST['wachtwoord']))) {
$username = mysql_real_escape_string($_POST['gebruikersnaam']);
$password = md5(mysql_real_escape_string($_POST['wachtwoord']));

 $checklogin = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '" .$username . "' AND wachtwoord = '" . $password . "'");
if (mysql_num_rows($checklogin) == 1) {
    $row = mysql_fetch_array($checklogin);
    $_SESSION['sessieinlog'] = $username;
    $_SESSION['sessiewachtwoord'] = 1;
    header("Location: overzicht.php");
    } else if (mysql_num_rows($checklogin) == 0) {
    //print username or password is incorrect
    // if you want to know which one is incorrect you ve to do two another query to know  which one is correct
}
} else {
if (empty($_POST['gebruikersnaam'])) {
    print '<p class="form-error">De gebruikersnaam is niet ingevuld!</p>';
} else {
    print '<p class="form-error">Het wachtwoord is niet ingevuld!</p>';
}
}
}
?>
于 2013-10-07T12:03:09.487 に答える
0

これを試して...

 if      (empty($username)) 
                                {
                                    print '<p class="form-error">De gebruikersnaam is niet ingevuld!</p>';

                                }

                        elseif  ($checklogin->gebruikersnaam !== $username)
                                {
                                    print '<p class="form-error">De gebruikersnaam is niet bekend!</p>';                            }

                        else    
                                { 
                                  echo mysql_error(); // $gebruikersnaamakkoord = true; 

                                }

これが役立つと思います。

于 2013-10-07T11:37:34.417 に答える
0

ユーザー名とパスワードが入力されているかどうかを確認するには、javaScript (または jQuery) を使用する必要があります。

入力した値が正しいかどうかを確認するには、データベースに接続する必要があります。

これにはさまざまな方法があります。gebruiekrsnaam='username' のすべてのユーザー データを取得し、手動でパスワードを確認することもできますが、それは悪い習慣です。

2 つのクエリを起動できます。1 つはユーザー名のみを選択し、1 つはユーザー名とパスワードを選択します。

しかし、3 番目は私の好みです。ユーザー名とパスワードの両方を同時にチェックするだけです。結果が見つからない場合は、ユーザーに「ユーザー名またはパスワードのいずれかが正しくありません」と伝えます。ただし、スクリプトが特定のユーザーのパスワードの推測を開始できないように、何を指定しないでください。

于 2013-10-07T11:54:03.240 に答える