2017-10-29 9 views
0

私はオンラインでgameをプレイしていましたが、ページソース(または検査要素)を表示してパスワードを見つける必要があります。私はこの行を混乱させているif(el.value == ""+CodeCode+"")el.valueは私の推測ですが、私の推測であれば続けることができます:""+CodeCode+""。 "+ CodeCode +"は次のように定義されています:"+CodeCode+" == "0xf.at_hackit";しかし、 "0xf.at_hackit"を試してみました(引用符をつけてもしなくても動作しません)。私は2時間このために立ち往生しているので、助けてください!ここでJavaScript関数が正しいパスワードを認識しない

は、JavaScriptの機能を持っているゲームのコードです:

 <!-- :::::::::::::::::==== GAME STARTS HERE ====::::::::::::::::: --> 
     <h1>Level 10</h1> 
     <p>Try not to be fooled</p> 
     <input id="pw" type="password" /> 
     <br/><input type="button" value="OK" onClick="checkPW()"/> 
     <script type="text/javascript">var CodeCode = "moo6be"; 

      function checkPW() 
      { 
       "+CodeCode+" == "0xf.at_hackit"; 
       var el = document.getElementById("pw"); 
       if(el.value == ""+CodeCode+"") 
        document.location.href="?pw="+el.value; 
       else alert("Wrong password"); 
      } 

     </script> 
    <!-- ::::::::::::::::::==== GAME ENDS HERE ====:::::::::::::::::: --> 
+3

いいえ、 '=='定義されていません。 'CodeCode'は' 'moo6be" 'として定義されています。その平等チェックは何もしません。 – Xufox

+1

はいパスワードを次のように入力してください:moo6be – linasmnew

+1

@Xufox '" moo6be "' worked!どのように説明できますか? –

答えて

1

コードは<script>タグの直後に割り当てられます。

行番号"+CodeCode+" == "0xf.at_hackit";は、何もしません。偽(2つの異なる文字列を比較)する評価式ですが、割り当てがないため、副作用はありません。

<script type="text/javascript">var CodeCode = "moo6be"; // <==== HERE 

    function checkPW() { 
     "+CodeCode+" == "0xf.at_hackit";  // <==== this does nothing, its just expression that evaluates to false, but no assignment 
     var el = document.getElementById("pw"); 
     if(el.value == ""+CodeCode+"")   // <==== this is the same as `if(el.value == CodeCode)` 
      document.location.href="?pw="+el.value; 
     else alert("Wrong password"); 
    } 
</script> 
+1

ありがとう、あなたとJohnDの回答のおかげで、私は+ + CodeCode + "" '' "+" CodeCode + "" 'であることを理解しています。 asap –

+1

変数 'CodeCode'を使うのと同じです(これは文字列にキャストしますが、それはすでに文字列だったので、その等号です)。 –

+1

私は知っていますが、最初に見たとき、私は混乱しました: '' + CodeCode + "==" 0xf.at_hackit "'と私は率直に見ていませんでした: 'var CodeCode =" moo6be ";' –

0

答えはmoo6beです。

これは、"+CodeCode+" == "0xf.at_hackit";にはdouble equalsがあります。これは単に比較文であることを意味します(これはfalseに評価されます)。これはプログラムの他の部分とは無関係であることに注意することが重要です。

メインラインはif(el.value == ""+CodeCode+"")です。

"" (empty string)+CodeCode (moo6be)+"" (empty string)です。

+1

なぜこれがダウン表示されたのですか? –

+1

私は最初に答え、私の後の他の答えと全く同じです。それは起こると思います。 –

+1

あなたの書式設定はちょっと混乱していますが、私は高位のユーザーがおそらく自分自身で質問に答えようとしていたと思います...最近は投票結果が下がっています –

1

""+CodeCode+""と同じことである。CodeCodeは、右のタグの後に割り当てられている"" + CodeCode + ""

<script type="text/javascript">var CodeCode = "moo6be"; // HERE 

function checkPW() 
     { 
      "+CodeCode+" == "0xf.at_hackit"; // this does nothing, its just expression that evaluates to false - this is meant to trick you 
      var el = document.getElementById("pw"); 
      if(el.value == ""+CodeCode+"") 
       document.location.href="?pw="+el.value; 
      else alert("Wrong password"); 
     } 

    </script> 
関連する問題