2012-04-13 4 views
0

내가 이런 MySQL의 문이 삽입 휴식 :특수 문자는 MySQL이

mysql_query("INSERT INTO movies (comments, description, synopsis) 
VALUES ('$_POST["comments"]', '$_POST["desc"]',$_POST["synopsis"])"); 

당신이 볼 수있는 매우 단순하고 간단. 문제는 양식에 특수 문자를 입력 할 때입니다 (삽입 된 경우 직접 확인하기 위해 phpmyadmin을 사용하여 데이터를 표에 삽입하지 않습니다). 예를 들어 내가 의견 textarea이 값을 넣어 경우 : "이것은 코멘트" 대신 넣어 : "당신의 이름은 무엇입니까? : 존 doe 내 이름은" 그것은 휴식. 나는 그것을 사용하기 때문에 알아. 문자 ... 내가 뭘해야하는지에 대한 제안? (또는 [위대한 현실 도피를 :

+5

여기에서 시작하십시오 설명 보이는 당신이 알아야 할 텍스트 내에서 텍스트 작업)] (http://kunststube.net/escapism/) – deceze

답변

7
mysql_query("INSERT INTO movies (comments, description, synopsis) 
VALUES ('".mysql_real_escape_string($_POST["comments"])."', '".mysql_real_escape_string($_POST["desc"])."','".mysql_real_escape_string($_POST["synopsis"])."'"); 
-1
$comments = mysql_real_escape_string($_POST['comments']); 
$desc = mysql_real_escape_string($_POST['desc']); 
$synopsis = mysql_real_escape_string($_POST['synopsis']); 

mysql_query("INSERT INTO movies (comments, description, synopsis) 
VALUES ('$comments', '$desc', '$synopsis'"); 

자세한 내용은 "PHP의 addslashes을"구글, 또는이 페이지를 봐는 http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

+0

관련 mysql 함수 대신'addslashes'가 필요한 이유는 무엇입니까? – deceze

+0

"mysql_real_escape_string"으로 변경되었습니다. 나는이 이유에 대한 자세한 정보를 안내하기 위해 "google for PHP addslashes"를 넣었습니다. –

0
$comments = mysql_real_escape_string($_POST['comments']); 
$desc = mysql_real_escape_string($_POST['desc']); 
$synopsis = mysql_real_escape_string($_POST['synopsis']); 

mysql_query("INSERT INTO movies (comments, description, synopsis) 
VALUES ('$comments', '$desc', '$synopsis'");