mysql 쿼리질문
본문
$sql = " SELECT * FROM VendingMachine WHERE user_id = '$user_id' AND user_pw = PASSWORD('$user_pw') "; // 회원 테이블에서 해당 아이디가 존재하는지 체크
$result = mysqli_query($conn, $sql);
$mb = mysqli_fetch_assoc($result);
if (!$mb['user_id']) { // 존재하는 아이디인지, 입력한 패스워드가 회원 테이블에 저장된 패스워드와 동일한지 체크
echo "<script>alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
이렇게 일단 해두었는데 자꾸 비밀번호가 틀리다고 나옵니다. 어디를 수정해야되는건가요?
!-->답변 4
위의 코드만 보면 user_id 만체크하네요..
if문안에서..
$mb
[
'user_id'
] 를 찍어 보세요.. 이것이 false가 되니 없다고 나오는 것 같습니다.
그노보드루트/data/dbconfig.php
if (!defined('_GNUBOARD_')) exit;
define('G5_MYSQL_HOST', 'localhost');
define('G5_MYSQL_USER', '유저');
define('G5_MYSQL_PASSWORD', '비번');
define('G5_MYSQL_DB', '디비');
유저 비번 디비를 수정해주세요.
$result = mysqli_query($conn, $sql);
$mb = mysqli_fetch_assoc($result);
if(!$result){ // 결과값이 없으면
error("query error");
exit;
}
if(!$mb){ // ID값이 없으면
error("id not found");
exit;
}else{ // id 값이 존재하면
if($mb['user_pw'] == $input_pw){ // 비밀번호 검사
// 로그인 성공시 할 일
}
else{
// 비밀번호 틀릴 경우
}
}
이렇게 해보세요
$sql = " SELECT * FROM VendingMachine WHERE user_id = '$user_id' AND user_pw = '$user_pw' "; // 회원 테이블에서 해당 아이디가 존재하는지 체크 $result = mysqli_query($conn, $sql); $mb = mysql_num_rows($result); if ($mb == 0) { ?> <script>alert("가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다."); </script> <? echo "<script>location.replace('./index.php');</script>"; exit; }
이렇게 해보세요. 될겁니다. 쿼리자체를 잘못쓰신듯
답변을 작성하시기 전에 로그인 해주세요.