v2.5.2
Giriş yap

Yönetici Girişi

gkdmr
745 defa görüntülendi

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';
}

?>
Cevap yaz
Cevaplar (8)
kargasa1982
1254 gün önce
<?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!';
        }
    }
    
    
?>
qplot
1257 gün önce

sen php7 de php5 kodu çalıştırmaya çalışıyorsun yazdığın kodlar eski kodlar pdo ile yazman lazım örneğini verdim araştır

gkdmr
1257 gün önce

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

qplot
1257 gün önce

if(isset($_POST))

kullanacaksın kı post edılmeden ıslem yapmasın benım ıcın konu kapanmıstır kolay gelsın

gkdmr
1257 gün önce

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

qplot
1257 gün önce

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

dincer
1257 gün önce
  • 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) yerine mysqli_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.

demo
1257 gün önce

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.