Yönetici Girişi
login sayfasından yoneticigiris.php ye atiyor yonrticigiris dosyasının kodları bu şekilde login den bilgileri doğru girmeme rağmen giris yapılamadı hatası alıyorum nerde hata yaptım?
<?php
ob_start(); session_start();
error_reporting (0);
include('baglan.php');
//--giriş bilgilerini alıyoruz
$GelenKullanici = strip_tags(trim($_POST["admin"]));
$GelenSifre = strip_tags($_POST["sifre"]);
$YeniSifre = md5($GelenSifre);
//--post edilmişse
if ($_POST){
if(($GelenKullanici=="") or ($GelenSifre=="")){
echo 'kullanıcı adı ve şifreniz yanlış';
}elseif(($GelenKullanici!="") and ($GelenSifre!="")) {
$_SESSION["admin"] = $GelenKullanici;
$admin_sor = "select * from yoneticiler where kullanici='$GelenKullanici' and sifre='$YeniSifre'";
$sonuc = mysqli_query($baglan,$admin_sor);
$satir = mysqli_fetch_array($sonuc,mysql_assoc);
if(mysqli_num_rows($sonuc) == 1 ) {
echo 'giris yapıldı';
}else{
echo 'giris yapilmadi';
}
}else {
echo ' şif gir ';
}
}else {
echo 'sif gir';
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (8)
<?php
require_once("baglan.php");
if(isset($_POST)){
$userName = $_POST["admin"];
$password = md5($_POST["sifre"]);
if($username!='' && $password!=''){
$sorgu = $db->prepare("SELECT * FROM yoneticiler WHERE kullanici=? AND sifre=?");
$veri = $sorgu->execute([$userName,$password]);
if($veri->rowCount()==1){
$_SESSION["userName"] = $userName;
$_SESSİON["userType"] = "administrator";
header('Location: yoneticigiris.php');
}else{
echo 'Hatalı Bilgi Girişi!';
}
}else{
echo 'Giriş Bilgilerini Doldurunuz!';
}
}
?>
hocam ne yaparsam yapayım hata alıyorum bu sefer bunla karşılaştım (pcm yok telden yapıyorum kafa karışıklığı oluyor bu konuda yardımcı olursaniz cok sevinirim sc de gunlerdir ugrasiyorum bunda takildim)
Notice: Undefined variable: baglan in /home/vol19_2/epizy.com/epiz_28870173/htdocs/form/system/yonetici_giris.php on line 19
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /home/vol19_2/epizy.com/epiz_28870173/htdocs/form/system/yonetici_giris.php on line 19
Warning: Use of undefined constant mysql_assoc - assumed 'mysql_assoc' (this will throw an Error in a future version of PHP) in /home/vol19_2/epizy.com/epiz_28870173/htdocs/form/system/yonetici_giris.php on line 21
Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in /home/vol19_2/epizy.com/epiz_28870173/htdocs/form/system/yonetici_giris.php on line 21
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/vol19_2/epizy.com/epiz_28870173/htdocs/form/system/yonetici_giris.php on line 23
giris yapilmadi
hatalar bu satirlarda ama nedense bende bu hataları bulamadım
Notice: Undefined index: admin in /home/vol19_2/epizy.com/epiz_2/htdocs/form/system/yonetici_giris.php on line 6
Notice: Undefined index: sifre in /home/vol19_2/epizy.com/epiz_2/htdocs/form/system/yonetici_giris.php on line 7
sif gir
bu kodlarla "or" kodları ile çok basit şekilde yönetici olarak giriş yapar insan
lütfen yazılım öğrenmek istiyorsan (yok ben hazır script kullanıcam dersen bir şey diyemem) PDO tarzında yazmaya geçmelisin
$admin_sor=$baglan->prepare("SELECT * FROM yoneticiler WHERE kullanici=? and sifre=?");
$admin_sor->execute([$GelenKullanici,$YeniSifre]);
$satir=$admin_sor->rowCount();
BAK ÇOK FARKI YOK
- Değişkenleri aşağıdaki kod bloğunda olduğu gibi süslü parantez içinde kullanmayı deneyin.
- w3schools ya da php.net sayfalarındaki anlatılan Prepared Statements kullanımını deneyebilirsiniz.
mysqli_fetch_array($sonuc, mysql_assoc)
yerinemysqli_fetch_assoc($sonuc)
kullanmayı deneyin.
// Değişkenleri süslü parantez içinde kullanmayı deneyin
$admin_sor = "SELECT * FROM yoneticiler WHERE kullanici='{$GelenKullanici}' and sifre='{$YeniSifre}'";
$sonuc = mysqli_query($baglan, $admin_sor);
// mysqli_fetch_array yerine mysqli_fetch_assoc kullanmayı deneyin
$satir = mysqli_fetch_assoc($sonuc, mysql_assoc);
Görebildiğim başka bir şey yok. error_reporting'i açıp hatayı paylaşırsanız tekrar bakabilirim.
Kod olarak bir yanlışlık görünmüyor gibi. Gelen verileri ekrana basarak veritabanı ile karşılaştırma yapar mısın?
Ayrıca:
1- Kodların henüz local'de test aşamasındayken error_reporting'i kapatma ki hataları ekrana yansıtsın, sen de onlara çözüm bulabilesin.
2- PDO araştırmanı öneriririm; SQL injection gibi zaafiyetlerin önüne geçme şansın olur.
3- Şifrelerini md5 ile şifrelemek yerine password_hash gibi fonksiyonlara göz atmanı öneririm.