쿼리문에 따옴표 처리 방법 채택완료
타버린나무
3년 전
조회 2,449
</p>
<p><?php
include_once('./_common.php');
$a = $_POST['test_txt'];
?></p>
<p><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></p>
<p><?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개
채택된 답변
+20 포인트
3년 전
https://www.php.net/stripslashes
https://www.php.net/manual/en/function.mysql-real-escape-string.php
sql_real_escape_string() // lib/common.lib.php
함수를 사용하세요.
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
3년 전
저런식으로 코드짜시면 인젝션등에 취약합니다..
쿼리자체를 인풋의 value로 넣는 경우는 개발10년간 처음보는 코딩이네요..
대충 이런식으로 밖에 사용자들이 볼수없도록 구현하세요.
</p>
<p><?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 <>'테스트' ";
}</p>
<p>?>
<form method="post">
<input type="text" name="test_txt" value="">
<button type="submit">test</button>
</form></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
타버린나무
3년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
여기저기 동냥으로 만들다보니 이런 어처구니 없는 코딩이 나왔나봅니다.
답변 감사합니다.