0

現在jQueryとphpを勉強中です。

だから私はjQuery関数で呼び出されるこのphpファイルを持っています(スクリプトのどこかにa = chkPwの別の呼び出しがあります):

$.get("checkName.php?a=chkUser&user=" + rqUser, function(data) { ... });

私の問題は、php スクリプトが if(isset($_GET)) { } ブロックに入らないように見えることです。返される値 (1) をデバッグしたので、何が問題なのかわかりません。$_GET['a'] の値もデバッグしましたが、実際には「chkUser」です。

どんな助けでも大歓迎です。

<?php

$users = array('bill' => 'ore', 'ted' => 'wood');

if (isset($_GET)) {

    if ($_GET['a'] == 'chkUser') {
        if (!array_key_exists($_GET['user'], $users)) {
            echo 'okay';
        } else {
            echo 'denied';
        }

    } elseif ($_GET['a'] == 'checkPw') {

        $user = $_GET['user'];
        $pw = $_GET['pw'];
        $i = 0;

        // get username id
        foreach (array_keys($users) as $value) {
            if ($value == $user) {
                $user = $users[i];
            }
            i++;
        }

        // match pw
        if ($pw == $user) {
            echo 'okay';
        } else {
            echo 'denied'
        }
    }
}

?>

4

4 に答える 4

1

ねえ、これはうまくいっているように私には思えます:

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
 <script type="text/javascript">
    $.get("checkNames.php?a=chkUser&user=bill", function(data) { console.log(data) });
    $.get("checkNames.php?a=chkPass&user=bill&pw=ore", function(data) { console.log(data)                 });

</script>

<?php

$users = array('bill' => 'ore', 'ted' => 'wood');

if (isset($_GET["a"])) {

  if ($_GET["a"] == 'chkUser') {
    if (!array_key_exists($_GET['user'], $users)) {
        echo 'okay';
    } else {
        echo 'denied';
    }

  } elseif ($_GET["a"] == 'chkPass') {

    $user = $_GET['user'];
    $pw = $_GET['pw'];
    if(array_key_exists($user, $users))
    {
        if($users[$user] == $pw)
        {
            echo "okay";
        }
        else
        {
            echo "denied";
        }
    }
    else
    {
        echo "denied";
    }

  }
}
?>
于 2012-08-18T19:50:48.183 に答える
0

あなたはこれを試すことができます:

<?php
if(!empty($_GET)){
  ...
}
?>

GETペイロードについて確認するには、var_dump($ _ GET)を使用します

于 2012-08-18T19:17:46.233 に答える
0

www.something.com/index.html?a=1のようなURLの場合
このコードは実際にはテストで機能します。

$users = array('bill' => 'ore', 'ted' => 'wood');

if (isset($_GET)) {
echo 'something';
}


それが他の全体であるか、それとも一部であるかを私たちに知らせるために、それをさらにコメントしてみてください

于 2012-08-18T18:21:07.400 に答える
0

現在の代わりにこのifステートメントを試してください

if (count($_GET) > 0) {
    // existing code
}

これがあなたを助けることを願っています。

于 2012-08-18T18:26:35.457 に答える