访问POST数据

时间:2013-08-28 11:34:12

标签: php mysql post

我是PHP的新手,但对C,

有很好的理解

当我想在我用PHP创建的API上访问一些帖子数据时,我使用:

 $_POST['date_set']

获取一个为日期传递的值 - 这一切都很完美,但我读到我应该像这样取出它:

$date_set = trim(urldecode($_POST['date_set']));

此值始终返回00:00:00后的值,该值为存储在我的数据库中的日期。

当我使用 $ _ POST ['date_set'] 直接访问时,我得到了所发布的任何值,例如:2013-08-28 10:31:03

有人能告诉我我搞砸了什么吗?

4 个答案:

答案 0 :(得分:2)

你应该尝试一下,

$date_set = $_POST['date_set'].explode(' ');//('2013-08-28 10:31:03').explode(' ')
echo $date_set[1];

echo date('H:i:s',strtotime($_POST['date_set'])));
//echo date('H:i:s',strtotime('2013-08-28 10:31:03'));

如果你是非常新的php ,请阅读date()

答案 1 :(得分:1)

您只运行urldecode数据是URL编码的。 PHP将在填充$_POST之前对其进行解码,因此您当然不应该使用它。 (如果您正在处理双重编码数据,则可能必须这样做,但正确的解决方案应该是不对数据进行双重编码)。

trim删除了前导和尾随空格。如果您有一个可以输入恶意空格的自由格式输入,这将非常有用。之后你需要做进一步的健全检查。

答案 2 :(得分:1)

urldecode — Decodes URL-encoded string

Description 
string urldecode ( string $str )
Decodes any %## encoding in the given string. Plus symbols ('+') are decoded to a space character. 

urldecode:仅用于GET请求。你应该没有使用$ _POST ['date_set']。

http://php.net/manual/en/function.urldecode.php

答案 3 :(得分:1)

你最好这样做

if(isset($_POST['date_set'])){
 $date_set = $_POST['date_set'];
}

然后您可以根据需要使用$ date_set。 如果$ date_set仍然得到00:00:00,则问题来自提供$ _POST值的代码。