내 웹 사이트에 텍스트 상자가 있으며 사용자가 데이터베이스에 입력 한 내용을 저장하고 나중에 검색해야합니다.PHP - MySQL 데이터베이스에 텍스트 저장
PHP를 데이터베이스 필드 ('텍스트'필드)에 저장하려면 어떤 프로세스를 사용해야합니까? PHP의 html_encode 같은 것을 사용해야합니까?
고마워요.
편집 : 탭 및 여러 공백 등 올바른 형식으로 저장해야합니다.
내 웹 사이트에 텍스트 상자가 있으며 사용자가 데이터베이스에 입력 한 내용을 저장하고 나중에 검색해야합니다.PHP - MySQL 데이터베이스에 텍스트 저장
PHP를 데이터베이스 필드 ('텍스트'필드)에 저장하려면 어떤 프로세스를 사용해야합니까? PHP의 html_encode 같은 것을 사용해야합니까?
고마워요.
편집 : 탭 및 여러 공백 등 올바른 형식으로 저장해야합니다.
데이터 저장소에 데이터를 쓸 때 html로 인코딩해서는 안됩니다. 다른 방법으로 데이터를 사용할 수도 있습니다 (예 : 이메일, PDF 문서 등). Assaf 이미 말했듯이 입력을 이스케이프 처리하거나 매개 변수화 된 삽입 쿼리를 사용하여 SQL 주입을 피하는 것이 필수적입니다.
은이어야합니다. 그러나 HTML 페이지에 표시 할 때 데이터를 html로 인코딩해야합니다. 위험한 HTML이나 Javascript 코드는 데이터에있는 HTML 태그가 브라우저에서 HTML 태그로 인식되지 않으므로 쓸모가 없습니다.
사용자가 HTML 태그가있는 데이터를 게시 할 수있게되면 프로세스가 좀 더 복잡해집니다. 그런 다음 출력 인코딩을 건너 뛰어 입력 필요성에 따라 임의로 복잡해질 수있는 입력 소실 성을 허용해야합니다 (예 : 허용 된 태그).
에는이 포함되어 있으므로이를 mysql에 저장하지 마십시오.
SQL 주입을 방지하려면 매개 변수가있는 삽입 명령을 사용해야합니다.
다음은 작동합니다 : 당신의 열이 UTF8이
if (get_magic_quotes_gpc()) {
$content = stripslashes($content);
}
$content = mysql_real_escape_string($content);
경우 특수 문자 문제가 안된다. 내용을 올바르게 포맷하면 표준 삽입 메소드를 사용하여 mysql에 피드를 제공 할 수있다.
사용 mysql_real_escape_string() :
$safetext = mysql_real_escape_string($_POST['text']);
$query = "INSERT INTO my_table (`my_field`) VALUES ('$safetext')";
mysql_query($query);
작동합니다.
서식과 함께 사용자 텍스트를 올바르게 저장하려면 nl2br($inputtext)
을 사용하여 모든 줄 바꿈을 나누기로 변환해야합니다. 입력을 필터링 한 후 수행하십시오.
좋은 아이디어 .. 대단히 감사합니다. –