2016-12-02 10 views
-1

文字列がphpコードから返され、比較したときに常にfalseとなるため、文字列にはシングルクォートとダブルクォートを使用するだけでなく、 '=='と '===' 。私はここに関連する部分だけを含めましたが、あなたがそれを理解するために詳細が必要な場合はお知らせください。 解決策を見つけるのを手伝ってください、ありがとうございます。JavaScriptの文字列を比較する際に問題が発生する

if(LOGINLIMIT <= $count) 
     { 
      $select = mysqli_query($conn,"update `wwwusers` set `userstatus` = 'Suspended' where username = '".$username."'"); 

      $stats = 'suspended'; 
     } 
     else 
     { 
      $stats = 'fail'; 
     } 
    } 

    $_SESSION['count'] = $count; 

    echo $stats.','.$count; } 

文字列の比較はここに起こる:

$.post("checkuser.php", {username: username, password: password, count: count, textcaptcha: textcaptcha}, function (data) { 
     alert(data); 
     var res = data.split(','); 

     $('.count').val(res[1]); 

     if (res[0] == 'fail') 
     { 
      flag = 1; 
      $(".clserror").show(); 
      var username = $("#username").val(''); 
      var password = $("#password").val(''); 
      return false; 
     } else if (res[0] == 'suspended') 
     { 
      flag = 0; 
      $(".clserror2").show(); 
      var username = $("#username").val(''); 
      var password = $("#password").val(''); 
      return false; 
     } 
    }); 

注:私はちょうど、プログラミング愛好家ではない何かが間違っている場合ので、申し訳ない専門用語に精通している専門的でも一人です。 @heavenは私たちにres[0]のエスケープバージョンを示した後これが私の最初の投稿です:)

+0

「データ」の内容を見てみましたか? –

+1

ようこそ! 'alert(data)'の代わりに 'console.log(data、escape(data))'を試すことができますか? – georg

+0

データ内にあるものをコンソールにしよう – Dherya

答えて

0

、はっきりそれと間違って何かがあった:それはfailとの比較がtrueを返さなかった理由を説明するスペースと改行を含んでいました。変数をエスケープすることについて考えてくれてありがとう@georg。

関連する問題