-2

コマンドラインから認証しようとしていますが、うまく動作しません。私のコードをチェックして、どこが間違っていたか教えてください。

<?php

echo "enter your username\n";

$username = fgets(STDIN);

echo "your password\n";

$password =  fgets(STDIN);

echo "enter your new password\n";

$newpassword = fgets (STDIN);

//connecting to database

$db = mysql_connect("localhost","sqldata","sqldata") or die(mysql_error());

//selecting our database

$db_select = mysql_select_db("accounts", $db) or die(mysql_error());

$sql = mysql_query ("select * from uptable where username ='$username'");

$result = mysql_fetch_assoc($sql);

$oldpassword = $result['password'];

if ($password != $oldpassword)
{

echo "error";

}

else
{

mysql_query("update uptable set password = '$newpassword' where username ='$username'");

echo "Your Password has been successfully changed";

}

?>
4

1 に答える 1

0

すべてのfgets()割り当てを使用するようtrim()に変更します。例:

$username = trim(fgets(STDIN));

によって返される文字列にfgets()は改行が含まれていますが、データベース内の名前とパスワードにはおそらく含まれていません。

于 2013-05-02T03:45:47.940 に答える