2016-05-05 2 views
0

これは、値が等しくなければならない場合でも評価されず、elseイベントにまっすぐに進みます。テーブルの列名がデータベースと一致するので、ローカル変数がローカル変数と等しいかどうかを確認する正しい方法

($ recruitcheck == $ recruitpass)でいくつかのタイプの引用符が必要ですか?

$recruiter = $_POST["recruiter"]; 
$recruitpass = $_POST["recruitpass"]; 
$recruitcheck = mysqli_query($maindb, "select aurapass from auras where auraname='$recruiter'"); 
if($recruitcheck == $recruitpass) { 
    $badgecheck = mysqli_query($maindb, "select recruitbadge from auras where auraname='$recruiter'"); 
    if($badgecheck == "0") { 
     echo "<script>alert('Recruiter information correct, but there is no recruit badge.')</script>"; 
     exit(); 
    } else { 
     echo "<script>alert('Recruiter badge accepted.')</script>"; 
     $emailcheck = mysqli_query($maindb, "select * from auras where email='$email'"); 
     $namecheck = mysqli_query($maindb, "select * from auras where auraname='$auraname'"); 
     if(mysqli_num_rows($emailcheck) > 0 || mysqli_num_rows($namecheck) > 0){ 
      echo "<script>alert('New auraname/email is already taken.')</script>"; 
      exit(); 
     } else { 
      exit();       
     } 
    } 
} else { 
    echo "<script>alert('Aura information of recruiter is incorrect. Please, use preexisting aura information to confirm recruiter identity.')</script>"; 
    exit(); 
} 
+3

'$ recruitpass'は文字列、' $ recruitcheck'は__not__文字列です。 –

+2

変数を 'var_dump'で表示して確認してください。 'mysqli_query'はリソースを返しますので、文字列の値と等しくなることはありません。 http://php.net/manual/en/mysqli-result.fetch-row.php – dan08

+0

データベースからデータを取得するために行を取得します。 –

答えて

0

$のrecruitpassの$ recruitcheckがmysqli_resultオブジェクトであるのに対し、文字列です。文字列値の中に入れて、$ recruitpassと比較する前にオブジェクトを取得する必要があります。

+0

徹底した掘り下げの後、私はmysqli_fetch_assocが働いていたmysqli_queryの結果を文字列として格納します。これは連想的に格納されるため、$ variable ['columnname']によって文字列を呼び出すことができます。比較するには、$ variable ['columnname'] == $ stringvariableをチェックしてください。私の場合、$ recruitfetch = mysqli_fetch_assoc($ recruitcheck); if($ recruitfetch ['aurapass'] == $ recruitpass {code works}。ありがとうございます! –

関連する問題