2017-06-14 5 views
-2

私のSQLリクエストの検証が機能しない理由を説明できますか? それは常に* **検証要求sql

<?php 
include 'conn_mysql.php'; 
if (isset($_POST['Login_fieldR']) && isset($_POST['Password_fieldR'])){ 
    $login_fieldR = $_POST['Login_fieldR']; 
    $password_fieldR = $_POST['Password_fieldR']; 
    $dateregister=NULL; 
    try{  
     $bdd = new PDO($conStr,$user,$pass); 
    } catch (PDOException $e){ 
     die('could not connect to the database'.$e->getMessage()); 
    } 
    $req = $bdd->prepare('INSERT INTO users(login, password, dateregister) VALUES(?, ?, NOW())'); 
    $req->execute(array($login_fieldR,$password_fieldR)); 

    $result = $req->fetch(); 
    if (!$result) 
    { 
     echo '<p id="popup_text">Problem..</p>'; 
    } 
    else 
    { 
     echo '<p id="popup_text">You are registered ! You can logged in now'; 
    } 
} 
?> 
+3

する機能を実行するの戻り値を確認してください。..新しいユーザーが自分のデータベースに追加されていても「...問題を」決して表示しません*プレーンテキストのパスワードを保存します。代わりに['password_hash()'](http://us3.php.net/manual/en/function.password-hash.php)と['password_verify()'](http://us3.php.net /manual/en/function.password-verify.php)。 5.5より前のバージョンのPHPを使用している場合は、MD5またはSHA1を使用せず**パスワードをハッシュします。代わりに、[この互換性パック](https://github.com/ircmaxell/password_compat)を使用することができます。 –

+0

@AlexHowanskyありがとう、私はそれを使用します! :) – Melinsuna

+1

'fetch()'は 'INSERT'ではなく' SELECT'を必要とします。 –

答えて

1

が成功/失敗メッセージ

$res = $req->execute(array($login_fieldR,$password_fieldR)); 
    if (!$res) 
    { 
     echo '<p id="popup_text">Problem..</p>'; 
    } 
    else 
    { 
     echo '<p id="popup_text">You are registered ! You can logged in now'; 
    } 
+2

と '$ result = $ req-> fetch();'はどうでしょうか?コードが失敗した理由について、その部分を残しました。編集:そして、彼らの質問は:* "私のSQLリクエストの検証がうまくいかない理由を説明できますか?" - ここで確認したいので、投稿されたものより深くなります。 –

+0

が動作します!ありがとう:) – Melinsuna

関連する問題