2016-12-07 1 views
0

ユーザのパスワードを更新するためにセッションからの情報を使用してMySQLデータベースを照会しようとしています。コード自体は私の言うことからうまくいくはずですが、実行するとデータベースのパスワードフィールドは変わりません。関連するコードは次のとおりです。MySQLクエリでセッションを使用する際の問題

<?php 
$accountname = $_SESSION[‘login’]; 
echo $accountname; //I am using this to make sure the session variable is working properly. It does echo the text of the variable correctly. 
$newpassword = $_POST["newpassword"]; 
$connection = mysqli_connect("I have the right information in here") or die(mysqli_error()); 

$updatepw = "UPDATE Login SET password = '$newpassword' WHERE account = '$accountname'"; 
mysqli_query($connection, $updatepw); 
echo "<p>Your password has been updated.</p>"; 
mysqli_close($connection); 
?> 

誰でもこのコードが動作しない理由を知ることができますか?

+0

'$ _SESSION ['login'];'は中括弧を使用するはずですか?また、 '$ accountname'をエコーする代わりに、' var_dump($ accountname); 'を使用してください。テキストを引用符で囲み、 'string(4) 'test''のような情報を与えるので、空白の場合は' string(0)' ''と表示されます。また、パスワードをダンプして照会をダンプして、期待どおりの結果を得ていることを確認してください。 –

+0

また、義務的なSQLインジェクション警告は、ハッシュされていないパスワード警告を保存せず、準備されたクエリをbind'ed変数で使用します。 –

+0

ありがとう!いくつかの他のテストの後、私はその問題が他の場所にあることを認識します。しかし、私はこれをライブにする前にすべてのパスワードをハッシュしてハッシュする必要があることを思い出させました:) –

答えて

0

あなたが値を取得していることを確認してください:

$新パスワード= $ _POST [ "新パスワード"];

このステートメントの後にexitを使用してデバッグしてください。 このヘルプが必要です。