PHP$\u GET与jQuery$.GET调用

PHP$\u GET与jQuery$.GET调用,php,javascript,jquery,Php,Javascript,Jquery,我目前正在学习jQuery和php 因此,我有一个php文件,它被jQuery函数调用(在脚本的其他地方还有一个调用,其中a=chkPw): 我的问题是php脚本似乎没有进入if(isset($\u get)){}块。我已经调试了它返回的值(1),所以我不明白出了什么问题!我还调试了$_GET['a']的值,它确实是'chkUser' 任何帮助都将不胜感激 <?php $users = array('bill' => 'ore', 'ted' => 'wood'); if

我目前正在学习jQuery和php

因此,我有一个php文件,它被jQuery函数调用(在脚本的其他地方还有一个调用,其中a=chkPw):

我的问题是php脚本似乎没有进入if(isset($\u 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'
        }
    }
}

带有类似www.something.com/index.html的url?a=1
此代码实际上用于测试:



试着进一步注释它,让我们知道它是整个elseif还是只是它的一部分

if (count($_GET) > 0) {
    // existing code
}
希望这对您有所帮助。

您可以尝试以下方法:

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


为了确保获取有效负载,请使用var\u dump($\u GET)

嘿,在我看来,这是可行的:

 <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";
    }

  }
}
?>

$.get(“checkNames.php?a=chkUser&user=bill”,函数(数据){console.log(数据)});
$.get(“checkNames.php?a=chkPass&user=bill&pw=ore”,函数(数据){console.log(数据)});

您希望它做什么?当a=chkUser时,它应该查看chkUser是否作为$users中的键存在。只要我能让它发挥作用,我就能解决剩下的问题。但我的问题是,由于某种原因,php没有进入if(isset($\u-get)){}块。我建议不要像那样构建$.get URL…尝试类似
$.get('checkName.php','a':'chkUser','user':rqUser},函数…
var\u dump($\u-get,$\u-POST,$\u-REQUEST);这不是你支票上的一个输入错误吗?在我看来,你使用了两种不同的“操作”chkUser和chkPw,但在你的支票中,你假设你得到了“chkUser”和“checkPw”?对,如果密钥不存在,它会返回“OK”。这意味着用户名可以自由使用。好吧,我知道你在做什么。我以为你在验证:(无论如何,你们的get url在firebug中是什么样子的?我已经把它缩小到了}elseif($\u get['a']=='checkPw'的问题){如果我删除elseif块,它确实有效…太棒了!我不知道我在循环和疯狂的事情上做了什么。我不习惯使用地图,呵呵。它确实有效!而且我实际上找到了我的脚本崩溃的原始原因-一个愚蠢的拼写错误的变量…我不习惯在它们前面键入$。我感到尴尬。谢谢你是的!当我复制你的代码时,我看到了错误,但我认为如果有一个工作示例会更有帮助:)
<?php
if(!empty($_GET)){
  ...
}
?>
 <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";
    }

  }
}
?>