-1

私は、mysql の下で完全に正常に動作する単純なログイン スクリプトを持っていました。現在、それを mysqli に移植しようとしていますが、動作させることができません。

login($username, $password) {
  $link = mysqli_connect('localhost', 'user', 'pw', 'db');
  $user_id = user_id_from_username($username);
  $username = sanitize($username);
  $password = md5($password);
  $loginquery = "SELECT COUNT(DISTINCT user_id) FROM users WHERE username='$username' AND password = '$password'";
  $count = mysqli_query($link, $loginqueryquery);
  $countarray = mysqli_fetch_array($count, MYSQLI_BOTH);
  $countarrayres = $countarray[0];
  if($countarrayres == 1) {return true ;} else {return false ;}
}

テストページですべて試してみました。$username = test、$password = test を設定しました。これは、データベースの「テスト」ユーザーと一致します。これは、印刷時に $countarrayres = 1 を生成します。pwまたはユーザー名のいずれかを存在しないものに変更すると、同じように0の出力が得られるため、機能することが示唆されますが、困惑しています。

このスクリプトが動作するページは次のとおりです。

$login = login($username, $password);
     if( $login === false ) { "wrong password/username bro"; } else { //log in based on session user_id;}

false を true に変更しようとしましたが、「パスワード/ユーザー名が間違っています」というメッセージが引き続き表示されるため、おそらく関数よりも大きな問題があることを示唆していますか? 変更されたのは mysql -> mysqli 関数だけであり、他には何もないため、ここで何が起こっているのかについて私は腹を立てています。何か案は?

編集: $test はタイプミスでした。実際には私のスクリプトでは $login です。ごめんなさい。

4

2 に答える 2

0
$test = login($username, $password);
     if( $login === false ) { "wrong password/username bro"; } else { //log in based on session user_id;}

する必要があります

$test = login($username, $password);
     if( $test === false ) { "wrong password/username bro"; } else { //log in based on session user_id;}
于 2013-08-17T17:07:13.897 に答える