2011-11-12 2 views
0

소스 -왜 스크립트가/n을 전송합니까?

는 컨트롤러

- 즉 $ _POST 데이터 트림 조사 하였다

Model::factory('index')->send_comment(mysql_real_escape_string($name), mysql_real_escape_string($artcl_id), mysql_real_escape_string($text), mysql_real_escape_string(time()), mysql_real_escape_string($ip)); 
         Model::factory('index')->update_comment_count($artcl_id); 

전에() 함수와 $ 텍스트 트림 인 ($ _ POST의 [ '문자').

그러나 나는 코멘트 쓸 때 - 데이터베이스 스크립트에

Hello! 

This is a comment! 

이보기에서

Hello!/n/nThis is a comment! 

를 전송 -

<?php echo htmlspecialchars(nl2br($comment['text'])); ?> 

어디 실수입니다?

답변

1

대위원이 맞다고 가정하고 데이터베이스 모듈을 사용하면 (ORM이 사용하는 것처럼 말합니다) 직접 입력을 피하기 위해 에너지를 낭비 할 필요가 없습니다. 그러나 이스케이프 처리되지 않은 입력을 데이터베이스로 보내려면 enery를 사용해야합니다.

데이터베이스 모듈 전체에서 사용되는 Database::quote(), Database::quote_column(), Database::quote_identifier()Database::quote_table()을 참조하십시오.

추신. 항상 입력을 확인하십시오.

2

나는 Hello!\n\nThis is a comment!을 전송한다고 가정하고 실수가 없습니다.
모두 괜찮습니다.

관련 문제