$ id_id와 일치하는 숫자 ID가 있으면 레코드가 삭제되고 $ res는 TRUE로 평가됩니다. 테이블에 'abc1234'와 같은 문자열 인 'member_id'가 있으면 $ member_id를 '$ member_id'따옴표로 묶어 모든 일치 항목을 삭제하지만 $ res는 항상 TRUE로 평가되므로 문자열을 삭제하면 삭제됩니다 if 불일치가 없으므로 삭제되지 않습니다 (사용자가 "$ member_id"를 가져옵니다). 회원 테이블에서 제거되었습니다 "라는 메시지. 그게 분명했다 바랍니다.문자열과 관련된 쿼리 결과는 항상 TRUE로 평가됩니다.
<?php
$member_id = "";
require("connect.php");
if (isset($_POST['member_id']))$member_id = fix_string($_POST['member_id']);
$sql=("DELETE FROM members WHERE member_id = $member_id");
$res = mysqli_query($con,$sql);
**if($res) {
echo "member with ID of ".$member_id." has been removed from members table";
} else {
echo "member was not deleted";
}**
function fix_string($string) {
if (get_magic_quotes_gpc()) $string = stripslashes($string);
return htmlentities ($string);
}
?>
이 기능을 사용하면 반환을 사용하는 것을 확인하십시오 : http://php.net/mysqli_query 그리고 ** 항상 ** 당신이 누군가를 요청하기 전에 설명서를 참조하십시오. – zerkms
'$ member_id = "1 OR 1 = 1"'설정을 시도하십시오. 그리고 SQL 인젝션에 대해 읽어보십시오. 친구들에게도 읽도록 알려주세요. –
추신 : 귀하의'fix_string' 함수는 전혀 의미가 없습니다 – zerkms