我现在无法查看 mysql 表……但我认为 '+' 不会进入表中。
我检查了一下magic_guotes
,它是打开的。然而,magic_quotes 不应该对“+”号做任何事情,因为它只涉及数据库使用的字符的转义。
此外,我regular expressions
在客户端和服务器(javascript 和 php)上检查了我的,没有任何东西可以删除“+”号。
我也使用htmlentites()
,但我不相信 + 是一个 html 实体,即使它是这样,也只能使它成为一个实体而不是一个字符。
这离开json_encode
了,但我能够在编码之前将字符回显给客户端,并且仍然可以看到没有“+”号。
我已经检查了所有 5 个地方,但无法确定 + 号的去向……似乎 mysql 数据库正在返回 + 号应该在的位置。
阿贾克斯序列化
function ajax_serialize( form_name )
{
var return_string='',
form_elements=document.forms[form_name].elements,
iterator;
for(iterator = 0; iterator < form_elements.length; iterator++)
{
if( form_elements[iterator].name )
{
if( form_elements[iterator].type === 'checkbox' && form_elements[iterator].checked === false )
{
return_string += form_elements[iterator].name + "=0&";
}
else
{
return_string += form_elements[iterator].name + "=" + form_elements[iterator].value+"&";
}
}
}
return_string = return_string.slice( 0, -1 );
return return_string;
}
阿贾克斯推文
function interface_tweet()
{
var form_name = 'tweet',
response_div = form_name + '_response',
tw_text = new Text(form_name),
tw_message = new Message(response_div);
if( Constant.VALIDATE_ON === 1 )
{
if( !tw_text.checkEmpty() )
{
tw_message.display('empty');
return;
}
if( !tw_text.checkPattern('tweet') )
{
tw_message.display('tweet');
return;
}
}
Ajax.repeatUseAjaxObject( Constant.GATEWAY, ajax_serialize( 'tweet') + '&ajax_type=ControlTweet_add' , ajax_tweet ,'tweet_fill' );
document.getElementById( 'tweet_input' ).value='';
document.getElementById( 'tweet_response' ).innerHTML='';
}