PHP-post数据在'&';在数据中
我在后端使用jquery/ajax和PHP发布数据。问题是,当我输入诸如“Jack&Jill上了山”之类的内容时,我只会在它到达后端时收到“Jack” 在发送数据之前,我在前端抛出了一个错误,警告“Jack&Jill上山了” 当我把PHP-post数据在'&';在数据中,php,http-post,Php,Http Post,我在后端使用jquery/ajax和PHP发布数据。问题是,当我输入诸如“Jack&Jill上了山”之类的内容时,我只会在它到达后端时收到“Jack” 在发送数据之前,我在前端抛出了一个错误,警告“Jack&Jill上山了” 当我把die(print\u r($\u POST))在我的索引页面的最顶端,我只得到了[key]=>Jack 我怎么会丢失数据 我想这可能是我的过滤器 <?php function filter( $data ) { $data = trim( htmle
die(print\u r($\u POST))
在我的索引页面的最顶端,我只得到了[key]=>Jack
我怎么会丢失数据
我想这可能是我的过滤器
<?php
function filter( $data ) {
$data = trim( htmlentities( strip_tags( mb_convert_encoding( $data, 'HTML-ENTITIES', "UTF-8") ) ) );
if ( get_magic_quotes_gpc() ) {
$data = stripslashes( $data );
}
//$data = mysql_real_escape_string( $data );
return $data;
}
echo "<xmp>" . filter("you & me") . "</xmp>";
?>
但是在上面的you&me
测试中,它返回的结果很好,在我添加die(print_r($\u POST))之后,它就就位了代码>
谁能想到这是怎么发生的,为什么发生的
非常感谢您的帮助 在javascript端使用encode()或escape()您很可能无法对数据进行URL编码。&
字符分隔提交表单数据中的键值对
用于此POST数据通过HTTP头以与url中的GET数据类似的形式发送。例如,数据可能看起来像var1=value1&var2=value2&var3=value3
。正如您可以想象的,如果数据本身包含符号,那么它在该格式上就不会工作得太好。准确地说,问题在于如何提交数据
要在post数据(或URL)中使用符号,它们必须是“URLCoded”,这意味着您必须对&
字符使用%26
。因此,问题并不在于PHP,而是在于发送数据的任何东西。它没有正确编码值。在Javascript端,您应该使用escape()
在PHP端,函数名为urlencode()
escape()是url转义特殊字符的正确函数。不,不是。对于非ASCII字符,它无法正常工作,已被弃用。谢谢你们两位,仍在学习javascript/jquery,非常感谢