쿼리문에 따옴표 처리 방법

쿼리문에 따옴표 처리 방법

QA

쿼리문에 따옴표 처리 방법

본문


<?php
include_once('./_common.php');
$a = $_POST['test_txt'];
?>
<form method="post">
    <input type="text" name="test_txt" value="AND vs_to_id IS null AND vs_id <> '<?=$member['mb_id']?>' AND vs_win <>'테스트' ">
    <button type="submit">test</button>
</form>
<?php
echo $sql = "SELECT * FROM test_table WHERE test_txt = {$a}";
?>

 

위 결과를 보면 \' 이렇게 \가 붙어서 나오면서 쿼리에서 에러가 납니다. 

SELECT * FROM test_table WHERE test_txt = AND vs_to_id IS null AND vs_id <> \'123456\' AND vs_win <>\'테스트\'

 

\를 없애려면 어떻게 해야하나요

 

이 질문에 댓글 쓰기 :

답변 2

저런식으로 코드짜시면 인젝션등에 취약합니다..

쿼리자체를 인풋의 value로 넣는 경우는 개발10년간 처음보는 코딩이네요..

대충 이런식으로 밖에 사용자들이 볼수없도록 구현하세요.


<?php
include_once('./_common.php');
$a = $_POST['test_txt'];
if ($a) {
    $sql = " AND vs_to_id IS null AND vs_id <> '{$member['mb_id']}' AND vs_win <>'테스트' ";
}
?>
<form method="post">
    <input type="text" name="test_txt" value="">
    <button type="submit">test</button>
</form>
답변을 작성하시기 전에 로그인 해주세요.
전체 125,981 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT