특수문자 ' <> 이게 들어가면 정상 출력이 안돼요.
본문
위 자동댓글 코드를 이용해서, 여분필드 9번에 입력된 내용이 나오도록 아래와 같이 사용중인데요.
<?php
if ($w =='') {
$wr_write = get_write($write_table, $wr_id);//원글정보
$wr_write_content = $config['cf_9']; //댓글내용
$wr_write_password = sql_password($g5[server_time]);//패스워드
$wr_write_cname = "test";//댓글 등록자명
$wr_write_mbid = "admin";//댓글 아이디 사용자
$sql = " insert into $write_table
set ca_name = '$wr_write[ca_name]',
wr_num = '$wr_write[wr_num]',
wr_parent = '$wr_id',
wr_is_comment = '1',
wr_comment = '1',
wr_content = '$wr_write_content',
mb_id = '$wr_write_mbid',
wr_password = '$wr_write_password',
wr_name = '$wr_write_cname',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_ip = '000.000.000.000' ";
sql_query($sql);
// 원글에 코멘트수 증가
sql_query(" update $write_table set wr_comment = wr_comment + 1 where wr_id = '$wr_id' ");
// 코멘트 1 증가
sql_query(" update $g5[board_table] set bo_count_comment = bo_count_comment + 1 where bo_table = '$bo_table' ");
}
?>
문제는 여분필드9번(cf_9)의 내용에 특수문자( ' or <> )가 들어가면 내용 전체가 입력되지는 않고 코멘트 1만 증가하는 문제가 있어서요.
' 이게 들어가면 내용 전체 입력 안되고 <> 이게 들어가면 < 이 괄호시작 전까지만 출력됩니다.
여분필드에 특수문자 저장까지는 잘되는 것으로 보여요.
특수 문자 들어가도 잘 출력되게 하려면 어떻게 해야 할지요.
답변 2
// $wr_write_content = $config['cf_9']; //댓글내용
$wr_write_content= sql_real_escape_string( $config['cf-9']);
이렇게 해보세요.
$wr_write_password = sql_password($g5[server_time]);//패스워드
...
$sql = " insert into $write_table set ... wr_content = '$wr_write_content', ...
$wr_write_content= htmlspecialchars($config['cf-9']);
이렇게 적용해서 처리해 보세요