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

PHP-MySqlを使用したフォームの検証と挿入

    まず最初に、入力をエスケープすることをお勧めします。

    また、オブジェクト指向に関するほとんどのドキュメントは手続き型の方法よりも明確であるため、プリペアドステートメントとオブジェクト指向のmysqliの方法を使用できることにも注意してください。

    のように:

    <?php
    $u=striptags($_POST['username']);
    $p=striptags($_POST['password']);
    $e=filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
    $ph=(int)$_POST['phone'];
    
    $mysqli = new mysqli($host,$username,$password,$db_name); 
    $query = "INSERT INTO register (username,password,email,phone) VALUES (?,?,?,?)";
    $stmt = $mysqli->prepare($query);
    $stmt->bind_param("sssi", $u, $p, $e, $ph);
    $stmt->execute();
    $mysqli->close();
    
    ?>
    

    次のようにパスワードにハッシュを使用しても問題はありません:

    <?php
    
    $salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
    $passh = crypt($pass, '$6$'.$salt);
    ?>
    

    後で比較できるように、saltもmysqlに保存する必要があることに注意してください

    したがって、これらを使用すると、パスワードがより安全になり、データベースが盗まれた場合でも、パスワードはハッシュされたままになります。




    1. MySQLで列挙値を返すための最良の方法は何ですか?

    2. SQLがwhere句の列エイリアスを認識しない

    3. フィールド値に基づいて行の範囲を選択する方法-MySQL

    4. MySQLデータVB.NETからdatagridviewの特定の列に入力します