Php Trying to access array offset on value of type null
Giriş işlemleri yapmaya çalışıyorum ama aşağıdaki hatayı alıyorum. Yardım edebilirseniz sevinirim.
"Trying to access array offset on value of type null in"
if($_POST) {
$kullanici_adi_giris = trim(strip_tags($_POST['kullanici_adi_giris']));
$kullanici_sifresi_giris = trim(strip_tags($_POST['kullanici_sifresi_giris']));
$girissorgusu = "SELECT * FROM kullanicilar WHERE kullanicilar_kullaniciadi = '$kullanici_adi_giris' AND kullanicilar_sifre = '$kullanici_sifresi_giris'";
$girissorgu = mysqli_query($db, $girissorgusu);
$sonuc = mysqli_fetch_assoc($girissorgu);
if (($sonuc['kullanicilar_kullaniciadi'] == $kullanici_adi_giris) and ($sonuc['kullanicilar_sifre'] == $kullanici_sifresi_giris)) {
$_SESSION["admin"] = $sonuc;
} else {
echo "Giriş Başarısız";
}
}
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
if ($_POST) {
$kullanici_adi_giris = trim(strip_tags($_POST['kullanici_adi_giris']));
$kullanici_sifresi_giris = trim(strip_tags($_POST['kullanici_sifresi_giris']));
$girissorgusu = "SELECT * FROM kullanicilar WHERE kullanicilar_kullaniciadi = '$kullanici_adi_giris' AND kullanicilar_sifre = '$kullanici_sifresi_giris'";
$girissorgu = mysqli_query($db, $girissorgusu);
$sonuc = mysqli_fetch_assoc($girissorgu);
if ($sonuc && ($sonuc['kullanicilar_kullaniciadi'] == $kullanici_adi_giris) && ($sonuc['kullanicilar_sifre'] == $kullanici_sifresi_giris)) {
$_SESSION["admin"] = $sonuc;
} else {
echo "Giriş Başarısız";
}
}
İlk önce mysqli modülünü kullanmanı önermem, PDO ile örnek göstereceğim.
$db = new PDO(...);
if(count($_POST)) {
// pdo olduğu için artık trimlemeye veya strip_tags atmaya gerek yok.
$kullanici_adi_giris = $_POST['kullanici_adi'];
$kullanici_sifresi_giris = $_POST['kullanici_sifresi_giris'];
$login = $db->prepare('SELECT id FROM kullanicilar WHERE kullanicilar_kullaniciadi = :kullanici_adi AND kullanicilar_sifre = :sifre');
$login->execute(['kullanici_adi' => $kullanici_adi_giris, 'sifre' => $kullanici_sifresi_giris]);
$user = $login->fetch(PDO::FETCH_ASSOC);
if(!isset($user['id'])) die('Giriş başarısız.');
$_SESSION["user"] = $user['id'];
echo "Giriş başarılı.";
}
Ayrıca giriş sayfasının aksiyon sayfasını ayırmanı tavsiye ederim.