Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
karakter kaldı

veritabanından üye giriş kontrolünde sorun

aşağıda vermiş olduğum kodlarda formdan gelen kullanıcı adı ve parolayı kontrol ederek veritabanında ki üye adı ve parola ile karşılaştırıyor fakat parolayı doğru yazdığım halde olmuyor ne
<?php
session_start();
ob_start();
if (isset($_SESSION['oturum'])){
echo "Daha önce Giris Yapmissiniz<br>";
echo "Simdi yeniden Anasayfa'ya yönlendiriliyorsunuz";
header("refresh: 2; url=index.php");
}
else {


//sorgu ile üyelerimizi çekiyoruz
require_once("ayar.php");
$sonuc = mysql_query("select * from  uyeler");
if(mysql_num_rows($sonuc)!=0){
	while($oku = mysql_fetch_assoc($sonuc)){
		//Mevcut sifre Degerlerimiz
$oku['kullanici_us_name'];
$oku['kullanici_us_pass'];
		
	}
	
}else{
    echo "Hic kayit yok!";
}


//Formdan Gelen Degerlerimiz
echo $_POST['kullanici_adim'];
echo "<br>";
echo $_POST['sifrem'];
echo "<br>";

$kullanici_name=$_POST['kullanici_adim'] ;
$kullanici_sifrem=$_POST['sifrem'] ;

if ($kullanici_name==$oku['kullanici_us_name'] && $kullanici_sifrem==$oku['kullanici_us_pass']){
	$_SESSION['oturum']=true;
	$_SESSION['kullanici_name']=$kullanici_name;
	 echo "Hosgeldiniz $_SESSION[kullanici_name]<br>";
	 echo "Yönetici sayfasina yönlendiriliyorsunuz";
     header("refresh: 2; url=index.php");
}
elseif (empty($kullanici_name) || empty($kullanici_sifrem)){
	echo "kullanici adinizi yada sifrenizi bos biraktiniz lütfen tekrar deneyiniz<br>" ;
	header("refresh: 2; url=index.php");
	echo "<br>Form Sayfasina geri dönülüyor<br>" ;
	
}

else
{
	 
echo "Lütfen Kullanici Adi ve Parolanizi Kontrol ediniz";	
header("refresh: 2; url=index.php");
	echo "<br>Form Sayfasina geri dönülüyor<br>" ;

}
}
?>

rede hata yapmış olabilirim
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Avatar of bensedat18
    4 ay önce
    20 cevap - 43 soru
    hocam giriş işlemini şu şekilde yaparsanız sanki daha basit ve anlaşılması kolay olacaktır. deneyin olmazsa tekrar yardımcı oluruz.


    $kullanici_name=$_POST['kullanici_adim'] ;
    $kullanici_sifrem=$_POST['sifrem'] ;


    $sonuc = mysql_query("select * from  uyeler WHERE kullanici_us_name = '$kullanici_name' AND kullanici_us_pass = '$kullanici_sifrem'");
    
    if(isset($sonuc))
    {
        echo "giris basarili";
    }
    else
    {
        echo "giris basarisiz";
    }
    
  • Avatar of rehberw3b
    4 ay önce
    13 cevap - 0 soru
    "---if ($kullanici_name==$oku['kullanici_us_name'] && ---" şartınızı while döngünüz içerisinde yapmayı denermisiniz. bir de yanlış hatırlamıyorsam header dan önce herhangi bir çıktının üretilmemesi gerekiyordu.

    ya da şu sırayla kodlarını yeniden düzenlermisin.
    1-session_start
    2-formun post edilip edilmediğinin kontrolü
    3-gelen verinin güvenlik kontrolü
    4-gelen veri temiz ise veritabanı bağlantısı ve sorgusu
    5-while döngüsü içerisinde gelen veri ile veritabanındaki verilerin karşılaştırılması if($_POST['form_kullanici_adi']==$row['veritabani_kullanici_adi']) { ... } else {...}
    6-karşılaştırma doğru ise $_SESSION['kontrol_degiskeni']==true veya veritabanından çektiğin bir değeri md5 yada sha1 ile şifreleyip bu değişkene de atayabilirsin. istersen bu değişkenle de kontrolünü sağlayabilirsin. işlemlerine devam edip ilgili sayfaya yönlendirebilirsin.
    7-karşılaştırma olumsuz ise hata döndürebilirsin.

    güvenlik kodu eklemek istersen 3- işlemden önce kodların eşleşmesi kontrolünü yaparsın. kod doğru ise diğer işlemlere sonra geçersin.

    daha fazla yardımcı olmak isterdim. yapamazsan pm ile ulaşabilirsin. işlemlerinde teamveawer gibi uzakmasaüstü bağlantısı ile yardımcı olabilirim.