sql >> データベース >  >> RDS >> Mysql

PHP mySQLは、ユーザー名とパスワードがデータベースにあるかどうかを確認します

    mysql_num_rows()を使用できます クエリを組み合わせます-脚注を参照

    if(isset($_POST["name"], $_POST["password"])) 
        {     
    
            $name = $_POST["name"]; 
            $password = $_POST["password"]; 
    
            $result1 = mysql_query("SELECT username, password FROM Users WHERE username = '".$name."' AND  password = '".$password."'");
    
            if(mysql_num_rows($result1) > 0 )
            { 
                $_SESSION["logged_in"] = true; 
                $_SESSION["naam"] = $name; 
            }
            else
            {
                echo 'The username or password are incorrect!';
            }
    }
    

    現在のコードをもう少し安全にするために、以下を使用してください:

    $name = stripslashes($_POST["name"]); 
    $name = mysql_real_escape_string($_POST["name"]);
    
    $password = stripslashes$_POST["password"]); 
    $password = mysql_real_escape_string($_POST["password"]); 
    

    ただし、プリペアドステートメントとパスワードハッシュの使用については、以下のリンクを参照してください。

    脚注:

    現在のコードは、SQLインジェクションに公開されています。 準備されたステートメントを使用します 、またはプリペアドステートメントを使用したPDO 。詳細については、これらのリンクにアクセスしてください。

    パスワードをプレーンテキストで保存している可能性があることに気づきました。この場合、お勧めできません。

    あなたがライブサイトである場合、最終的にはハッキングされます。

    CRYPT_BLOWFISHを使用することをお勧めします またはPHP5.5の password_hash() 働き。 PHP <5.5の場合は、 password_hash() compatibility packを使用します。

    mysql_* 機能の廃止通知:

    http://www.php.net/manual/en/intro.mysql .php

    この拡張機能はPHP5.5.0で非推奨になり、将来削除されるため、新しいコードの記述にはお勧めしません。代わりに、 mysqli または PDO_MySQL 拡張機能を使用する必要があります。 MySQLAPIの概要も参照してください。 MySQLAPIを選択する際のさらなるヘルプが必要です。

    これらの関数を使用すると、MySQLデータベースサーバーにアクセスできます。 MySQLの詳細については、»http://www.mysql.com/ を参照してください。 。

    MySQLのドキュメントは、»http://dev.mysql.com/doc/ にあります。 。

    編集: OPを支援するため(パスワードハッシュに関して私が提供したリンクを調べてください)。

    交換してみてください

            if(mysql_num_rows($result1) > 0 )
            { 
                $_SESSION["logged_in"] = true; 
                $_SESSION["naam"] = $name; 
            }
            else
            {
                echo 'The username or password are incorrect!';
            }
    

    と:

    while($row=mysql_fetch_assoc($result1))
    {
    $check_username=$row['username'];
    $check_password=$row['password'];
    }
    
    if($username == $check_username && $password == $check_password){
    echo "Matches.";
    }
    
    else{
    echo "No match found.";
    }
    


    1. Perl DBIは、mysqlネイティブの複数挿入機能を使用して複数の行を挿入します

    2. 空間ポイントタイプを使用したMySQLへのLatLng値の保存

    3. JDK8を使用するMacOSにOracleSQLDeveloper19.1をインストールします。

    4. 有用なOracleAppsプリンタークエリのトップ9