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