>  Q&A  >  본문

PDO는 bool 유형 값의 배열 오프셋에 액세스하려고 시도합니다.

이게 날 미치게 만드네요! 사용자 이름이 정확하면 비밀번호를 완벽하게 비교하지만 사용자 이름이 틀리면 비교가 발생하지 않고 이 오류가 발생합니다. 데이터베이스 값과 사용자가 입력한 값을 비교하고 싶습니다.

<?php
$nm = $_POST['nm'];
$pw = $_POST['pw'];

try{
    $pdo = new PDO('mysql:host=localhost;dbname=gold-market_main', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e) {
    echo "Connection failed: ".$e->getMessage();
    die();
}

if($nm == null){
    die("Feld darf nicht leer sein!");
} elseif(ctype_alpha($nm[0]) or ctype_digit($nm[0])){



$sql = "SELECT k_nutzername, k_passwort FROM kunden WHERE k_nutzername IN('$nm');";
$result = $pdo->query($sql);
$row = $result->fetch(PDO::FETCH_ASSOC);

if("{$row['k_nutzername']}" != $nm) {
    //header("Location: login_wrongUN.html");     
    print("nm wrong");  
} elseif("{$row['k_passwort']}" != $pw) {
    //header("Location: login_wrongPW.html");  
    print("pw wrong"); 
} else {
    header("Location: konto.html");
}   

}else{
    die("Nutzername muss mit einem buchstaben oder einer Zahl beginnen!");
}
    $pdo = null;
?>

P粉512729862P粉512729862230일 전465

모든 응답(1)나는 대답할 것이다

  • P粉184747536
  • 취소회신하다