미채택 완료

특수문자 ' <> 이게 들어가면 정상 출력이 안돼요.

2022-05-05 (목) 18:31:36 1,672

https://sir.kr/g5_tip/7284

위 자동댓글 코드를 이용해서, 여분필드 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개 / 댓글 4개

$wr_write_content= htmlspecialchars($config['cf-9']);

이렇게 적용해서 처리해 보세요

답변에 대한 댓글 2개

이것도 역시 안되네요 orz...
이렇게도 안되시면 쿼리를 찍어 직접 쿼링을 해서 실행해 보시는걸 추천드립니다.
2022-05-05 (목) 19:33:14

//    $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', ...

답변에 대한 댓글 2개

안되네요 ㅠ
sql_query( $sql, true);
exit;
이렇게 해서 query에 문제가 있는지 살펴 보세요.

답변을 작성하려면 로그인이 필요합니다.