테스트 사이트 - 개발 중인 베타 버전입니다

쿼리문에 따옴표 처리 방법 채택완료

타버린나무 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 포인트

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

함수를 사용하세요.

 

로그인 후 평가할 수 있습니다

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

그누위즈

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

쿼리자체를 인풋의 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년 전
그누위즈님께서 처음보는 코딩을 제가 한거군요 ^^;
여기저기 동냥으로 만들다보니 이런 어처구니 없는 코딩이 나왔나봅니다.
답변 감사합니다.

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

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

로그인