검색 한 페이지가 POST를 통해 검색 한 다음 테이블에 삽입합니다. 나는 무슨 일이 있었는지 볼 수 있도록 나에게 질의를 이메일을했다 :가장 기괴한 PHP/MySQL 버그
변수 가져내 PHP :
$searched = mysql_real_escape_string($_POST['searched']);
쿼리를 사용하여 (나에게 이메일로 전송) :
INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES (435, 0, 0, 0, 0, 0, 1, 1, 0, "
을 여기
쿼리 조립 코드입니다 : 페이지가 IE에서 실행 할 때마다
$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ($userID, 0, 0, 0, 0, 0, 1, 1, 0, \"$searched\")";
을,이 레코드의 삽입 DB는 괜찮아. 쿼리가 정확히 동일한 경우에도 다른 브라우저는 "question8"부분을 제외합니다 (레코드를 삽입 함). 필자는 phpMyAdmin에서 쿼리를 잘라 붙여 넣을 수 있으며 잘 실행됩니다.
왜 IE에서만 작동합니까? 다른 브라우저에서 볼 수없는 특수 문자가 삽입되어 있습니까? 나는 길을 잃었다!
우리는 쿼리를 어셈블하는 코드를 볼 수 있습니까? – dqhendricks
브라우저는 모든 서버 측과 같이 ($ _POST 변수와 관련이없는 한) 관련이 없어야합니다. - PHP 파일에 나타나는대로 코드를 게시 할 수 있습니까? –
'$ _POST'의 내용을 덤프하고 안에 무엇이 있는지 살펴 봅니다. 당신도 당신의 쿼리를 탈출했는지 확인하십시오. – BoltClock