我有一个表格,用户输入例如(注意字符串末尾的撇号)
My Bday'
现在,我想去掉撇号,就这么简单......不要逃避它们,不要添加斜线只是摆脱它们
首先,我有以下内容:
$event_title = mysql_real_escape_string($_POST['event_title']);
echo "<br /><br /><br />event title is $event_title";
这导致返回以下内容:
event title is My Bday\\\'
为什么是3个斜线?
所以,然后我继续使用以下方法来处理这个问题:
$event_title = str_replace("'", "", $event_title);
$event_title = stripslashes($event_title);
然后我再次返回以检查结果
echo "<br /><br /><br />event title is $event_title";
我得到以下信息:
event title is My Bday\
任何想法发生了什么?我只是想去掉撇号和斜线,但不知何故它没有发生
顺便说一句,magic_quotes_gpc 已关闭
如果我不使用 stripslashes 因此将它们留给 MySQL 处理,我会收到以下错误:
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'Private',
event_notes = '' where user_event_id = '35'' at line 3
update user_events set event_date = '2012-11-17', event_title = 'My Bday\\\',
event_vis = 'Private', event_notes = '' where user_event_id = '35'
好的,进一步编辑:
我试过这个:
$event_title = $_POST['event_title'];
$event_title = str_replace("'", "", $event_title);
$event_title = trim($event_title);
$event_title = mysql_real_escape_string($event_title);
echo "<br /><br /><br />event title is $event_title";
我明白了:
event title is My Bday\\
我只是想摆脱撇号,显然这里发生了其他事情,但它让我!