나는 양식을 가지고 있고 사용자는 이제mysql_real_escape_string 이상한 아포스트로피 동작? 난 그냥 없애,하지 말라고 탈출 ... 간단한와 아포스트로피를 제거 슬래시를 추가하지하려면,
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 is My Bday\
:
이
$event_title = str_replace("'", "", $event_title);
$event_title = stripslashes($event_title);
그럼 내가 다음 얻을 결과
echo "<br /><br /><br />event title is $event_title";
을 확인하기 위해 다시 돌아
어떤 아이디어가 있습니까? 그런데 나는 단순히 apostophes와 슬래시를 제거하고 싶지만 어떻게 든
magic_quotes_gpc의 일어나고 아니에요 꺼져
나는 다음과 같은 오류를 처리하기 위해 MySQL을 위해 그들을에서 떠나 그러므로 위해서 stripslashes를 사용하지 않는 경우 :
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\\
, 다른 분명히 뭔가 여기 벌어지고 있지만이 날 잡았어!
답변은 없지만 실제로 [this] (http://chat.stackoverflow.com/transcript/message/3656047#3656047)를 읽어야합니다. . – PeeHaa
사용자가 입력 한 내용을 제공하지만 이스케이프되기 전에'$ _POST [ 'event_title']'과 정확히 동일합니까? – Jon
mysql_real_escape_string은 data-> sanitize-> storage가 아니고 data-> sanitize-> 출력이 아닌 경우,이 패턴을 따르면 데이터가 올바르게 표시됩니다. data-> sanitize-> storage-> output –