フォームがあり、ユーザーが入力します(文字列の最後にアポストロフィがあることに注意してください)
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はオフです
ストリップスラッシュを使用しない場合、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'
OK、さらに編集:
私はこれを試しました:
$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\\
私は単にアポストロフィを取り除きたいのです。明らかにここで何か他のことが起こっていますが、それは私を手に入れました!