2013-04-27 4 views
0

난 그냥 자신의 사용자 이름MySQL. 여기서 진술. 쿼리

('SELECT * FROM messages WHERE username = ' . $_SESSION['username'] . ' ') 

출력과 MySQL 데이터베이스에 저장되어있는 메시지를 찾아 사용자에 loged 스크립트를 쓰고 있어요. 알 수없는 'John'where where 절 '

+4

이 Mr.Alien @ 당신에게 그 오류 –

+3

던지고 쿼리되지 않습니다 :'$ _SESSION [ '이름'] == 'John'', 그것은 확신 할 수있는 경우. 실제로 문자열을 이스케이프 처리하지 않으므로 열 이름으로 해석됩니다. – DCoder

+1

@DCoder 값이 아니고 열 이름이 아닙니다. –

답변

1

귀하의 스크립트는 SQL injection에 열려 있습니다. http://php.net/manual/en/security.database.sql-injection.php을 읽어주십시오.

질문에 답변하십시오. 사용자 이름 문자열 주위에 큰 따옴표가 없습니다.

('SELECT * FROM messages WHERE username = "' . $_SESSION['username'] . '" ') 
             ^       ^
+2

ansi 모드가 아니라면 작은 따옴표 만 사용하십시오. – Musa

+2

+1 좋은 언급. – Bart