0

嗨,我array_key_exists在 php 中使用,这是我的代码

$action_array = array(
    'add_post_ajax'=>'posts'
);


if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
     echo $_POST['action'];
    if(array_key_exists($_POST['action'],$action_array))
    {
        $class = $action_array[$_POST['action']];
    }
    else 
    {
        echo "wrong data";
    }
}

echo $_POST['action'];display add_post_ajax,然后打印wrong data

奇怪,请帮帮我,我在这里做错什么了吗?

更新

我也试过修剪

if(array_key_exists(trim($_POST['action']),$action_array))

还是一样的结果:/

这是我的ajax请求

xmlhttp.send("action='add_post_ajax' &name=" + name + "&email=" + email + "&post=" + post);

echo $_POST['action']给了我add_post_ajax,但var_dump($_POST['action'])给了我一个有线的结果

<pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'&#39;add_post_ajax&#39; '</font> <i>(length=16)</i>
</pre>

它是什么:o

4

1 回答 1

4

你的问题是单引号。

您的 $_POST['action'] 使用'add_post_ajax'但您正在检查add_post_ajax

当你发送这个:

xmlhttp.send("action='add_post_ajax' ...

你收到这个:

 &#39;add_post_ajax&#39; (length=16)

add_post_ajax是 14 个字符长,额外的两个字符是&#39;; 它是单引号的 html 字符。

于 2014-12-13T19:25:50.147 回答