获取Slim框架中POST请求的值

3
这段代码;
$email = $app->request('custom1');
print_r($email);
exit;

将会给予;

Slim_Http_Request Object
(
[method:protected] => POST
[headers:protected] => Array
    (
        [host] => 192.168.56.101
        [connection] => keep-alive
        [content-length] => 26
        [cache-control] => no-cache
        [origin] => chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop
        [content-type] => x-www-form-urlencoded
        [user-agent] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
        [postman-token] => 046f7635-49fe-5fa9-64f9-934f01b97c05
        [accept] => */*
        [accept-encoding] => gzip, deflate
        [accept-language] => en-US,en;q=0.8
        [cookie] => PHPSESSID=4effe7cedc113d0c371c64031cb2f22f; 4effe7cedc113d0c371c64031cb2f22f=DEFAULT%7C0%7C2M3TMlgUx3gTlaarYzHIdD28l8q9FTcNubt55%2BUGpAo%3D%7C7456bf61db3500c8bb7b3bc38082a470ce4a2ad3
    )

[additionalHeaders:protected] => Array
    (
        [0] => content-type
        [1] => content-length
        [2] => php-auth-user
        [3] => php-auth-pw
        [4] => auth-type
        [5] => x-requested-with
    )

[cookies:protected] => Array
    (
        [PHPSESSID] => 4effe7cedc113d0c371c64031cb2f22f
        [4effe7cedc113d0c371c64031cb2f22f] => DEFAULT|0|2M3TMlgUx3gTlaarYzHIdD28l8q9FTcNubt55+UGpAo=|7456bf61db3500c8bb7b3bc38082a470ce4a2ad3
    )

[get:protected] => Array
    (
        [email] => custom1
        [listid] => 238497
        [apikey] => 928je3fb
    )

[post:protected] => Array
    (
    )

[put:protected] => Array
    (
    )

[body:protected] => custom1=mike%40example.com
[contentType:protected] => x-www-form-urlencoded
[resource:protected] => /mailchimp
[root:protected] => /index.php
)

如何让$email的值仅为“mike@example.com”?

像这样使用$app->request->get('custom1');将会得到以下结果:

Fatal error: Cannot access protected property Slim::$request in /var/www/html/index.php on line 26

你使用的是哪个版本的Slim? - Davide Pastore
2个回答

3

编辑:

从整个对象来看,似乎您已经发出了一个POST请求,在请求体内包含了custom1的值。但是,这没有被解析到POST变量下的请求对象中。

您可以像这样获取原始数据:

$app->request()->getBody()

把它解析成选项。看到内容类型,你需要:
parse_str($app->request()->getBody(), $params)
echo $params['custom1']

旧答案:

尝试:

$app->request()->get('email');

您需要调用$app->request()来获取请求对象,然后从中获取所需参数。


1
如果是POST方法,您可以尝试以下方式获取变量:
$app->request->post() // For all
$app->request->post('custom1') // specific variable

我希望它能帮助你


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接