Storyman
Kimlik Onayı Bekliyor
Banlı Kullanıcı
-
Üyelik
31.08.2020
-
Yaş/Cinsiyet
44 / E
-
Meslek
Reklam Ajansı ve Web Geliştirm
-
Konum
Bursa
-
Ad Soyad
E** T**
-
Mesajlar
210
-
Beğeniler
129 / 105
-
Ticaret
1, (%100)
Anlıyorum, herşeyi geri alıp adım adım kodlamanızdan başka çare yok. Pdo böyle garip hatalar verebiliyor. Hatanın hangi an, hangi kodda jçgerçekleştiğini bulmanız için. Ayrıca, mysqli de kullanmayı deneyebilirsiniz, daha sorunsuz olur
-
Üyelik
28.03.2016
-
Yaş/Cinsiyet
42 / E
-
Meslek
Emlak
-
Konum
Antalya
-
Ad Soyad
İ** Y**
-
Mesajlar
112
-
Beğeniler
3 / 2
-
Ticaret
0, (%0)
Hocam mysqli de kullandığımda veritabanı hatası ile karşılaşıyorum
-
Üyelik
02.08.2019
-
Yaş/Cinsiyet
23 / E
-
Meslek
Öğrenci
-
Konum
Kahramanmaraş
-
Ad Soyad
A** K**
-
Mesajlar
164
-
Beğeniler
41 / 54
-
Ticaret
0, (%0)
Temizle fonksiyonu tam olarak ne yapıyor? Veriye strip tags mi yaptırıyorsunuz? Birde bu fonksiyonu gönderin kontrol edelim.
-
Üyelik
02.08.2019
-
Yaş/Cinsiyet
23 / E
-
Meslek
Öğrenci
-
Konum
Kahramanmaraş
-
Ad Soyad
A** K**
-
Mesajlar
164
-
Beğeniler
41 / 54
-
Ticaret
0, (%0)
Birde şöyle deneyin.
$kullanici_adi=strip_tags($_POST['username']); //Username çektik
$sifre=md5($_POST['password']); //Pass çekip MD5'e çevirdik
$giriskontrol = $db->prepare("SELECT * FROM uyeler WHERE (kullaniciAdi= :kadi || eposta= :kadi) AND sifre= :pass"); //Sorguyu hazırladık
$db->bindParam(':kadi ', $kullanici_adi, PDO::PARAM_STR); //Veri yükledik
$db->bindParam(':pass', $sifre, PDO::PARAM_STR); //Veri yükledik
$db->execute(); //Post ettik
-
Üyelik
28.03.2016
-
Yaş/Cinsiyet
42 / E
-
Meslek
Emlak
-
Konum
Antalya
-
Ad Soyad
İ** Y**
-
Mesajlar
112
-
Beğeniler
3 / 2
-
Ticaret
0, (%0)
Merhaba Hocam hata olarak
Fatal error>: Uncaught Error: Call to undefined method PDO::bindParam() in hatasını veriyor satır olarakta aşağıdaki satırı gösteriyor
$db->bindParam(':kadi ', $kullanici_adi, PDO::PARAM_STR); //Veri yükledik
-
Üyelik
02.08.2019
-
Yaş/Cinsiyet
23 / E
-
Meslek
Öğrenci
-
Konum
Kahramanmaraş
-
Ad Soyad
A** K**
-
Mesajlar
164
-
Beğeniler
41 / 54
-
Ticaret
0, (%0)
$kullanici_adi=strip_tags($_POST['username']); //Username çektik
$sifre=md5($_POST['password']); //Pass çekip MD5'e çevirdik
$giriskontrol = $db->prepare("SELECT * FROM uyeler WHERE (kullaniciAdi= :kadi || eposta= :kadi) AND sifre= :pass"); //Sorguyu hazırladık
$giriskontrol ->bindValue(':kadi ', $kullanici_adi, PDO::PARAM_STR); //Veri yükledik
$giriskontrol ->bindValue(':pass', $sifre, PDO::PARAM_STR); //Veri yükledik
$giriskontrol ->execute(); //Post ettik
$sonuc= $giriskontrol->fetchAll(PDO::FETCH_ASSOC); //Sonuç(ları) çektik
if($sonuc->rowCount() == 1){ //Eğer kayıt eşleşmiş ise
//İşlem...
}
Yazarken iş yerindeydim pek dikkat edemediğim için hataları yeni fark ettim, birde şöyle dene bakalım mutlaka olması gerekiyor.
-
Üyelik
28.03.2016
-
Yaş/Cinsiyet
42 / E
-
Meslek
Emlak
-
Konum
Antalya
-
Ad Soyad
İ** Y**
-
Mesajlar
112
-
Beğeniler
3 / 2
-
Ticaret
0, (%0)
Hocam dediğin gibi yaptım,olmadı, kodları aşağıdaki gibi yerleştirdim, kodları kontrol etme şansın varsa çok iyi olur,
Allah razı olsun
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in
bu satırda hata veriyor $giriskontrol ->execute(); //Post ettik
if($_POST && isset($_POST['login']))
{
$return=array("bildirim"=>"","yonlendir"=>"","yonlendirsure"=>3);
if(!empty($_POST['username']) and !empty($_POST['password']))
{
$kullanici_adi=strip_tags($_POST['username']); //Username çektik
$sifre=md5($_POST['password']); //Pass çekip MD5'e çevirdik
$giriskontrol = $db->prepare("SELECT * FROM uyeler WHERE (kullaniciAdi= :kadi || eposta= :kadi) AND sifre= :pass"); //Sorguyu hazırladık
$giriskontrol ->bindValue(':kadi ', $kullanici_adi, PDO::PARAM_STR); //Veri yükledik
$giriskontrol ->bindValue(':pass', $sifre, PDO::PARAM_STR); //Veri yükledik
$giriskontrol ->execute(); //Post ettik
$uyesayisi= $giriskontrol->fetchAll(PDO::FETCH_ASSOC); //Sonuç(ları) çektik
if($uyesayisi->rowCount() == 1)
{
if($uyeninbilgisi->aktif=="1"){
logla("1",GetIP(),$uyeninbilgisi->id,0,0,"","");
if(@$_POST['remember']=="on")
{
$oturumsuresi=((60*60)*24)*2;
}else
{
$oturumsuresi=(60*60)*24;
}
setcookie("uye_kullanici_adi", $kullanici_adi, time() + $oturumsuresi);
setcookie("uye_sifre", $sifre, time() + $oturumsuresi);
setcookie("uye_id", $uyeninbilgisi->id, time() + $oturumsuresi);
setcookie("oturumsuresi",$oturumsuresi, time() + $oturumsuresi);
$_SESSION['girisID']=$uyeninbilgisi->id;
$return['bildirim'].= succes("Başarılı Bir Şekilde Giriş Yaptınız Yönlendiriliyorsunuz..");
if(!empty($_COOKIE['girisyapyonlendirildi'])){
$return['yonlendir']=$_COOKIE['girisyapyonlendirildi'];
$return['yonlendirsure']="3";
}else{
$return['yonlendir']="index.php";
$return['yonlendirsure']="3";
}
}else{
$return['bildirim'].= warning("Şuanda Bu Üyeliğe Erişime İzin Verilmiyor. Lütfen Yönetici İle İrtibat Kurun.");
}
}else if($uyesayisi>"1")
{
$return['bildirim'].= warning("Aynı Bilgiler İle Kayıtlı Birden Fazla Üye Olduğu İçin Giriş Yapamıyorsunuz..");
}else
{
$return['bildirim'].= danger("Kullanıcı Adı veya Şifreniz Yanlış Lütfen Kontrol Ediniz.");
}
}else
{
$return['bildirim'].= warning("Lütfen Tüm alanları Doldurunuz..");
}
echo json_encode($return);
}
-
Üyelik
02.08.2019
-
Yaş/Cinsiyet
23 / E
-
Meslek
Öğrenci
-
Konum
Kahramanmaraş
-
Ad Soyad
A** K**
-
Mesajlar
164
-
Beğeniler
41 / 54
-
Ticaret
0, (%0)
Bu da arada bir kullandığım son taktiğim, olmazsa PHP sürümünüzü iletin :))
$kullanici_adi=strip_tags($_POST['username']); //Username çektik
$sifre=md5($_POST['password']); //Pass çekip MD5'e çevirdik
$giriskontrol = $vt->prepare("SELECT * FROM uyeler WHERE (kullaniciAdi= :kadi || eposta= :kadi) AND sifre= :pass");
$giriskontrol->execute(array(
':kadi' => $kullanici_adi,
':pass' => $sifre
));
$giriskontrol->fetch(PDO::FETCH_ASSOC);
if($giriskontrol->rowCount() == 1){
//İşlem...
}
-
Üyelik
02.08.2019
-
Yaş/Cinsiyet
23 / E
-
Meslek
Öğrenci
-
Konum
Kahramanmaraş
-
Ad Soyad
A** K**
-
Mesajlar
164
-
Beğeniler
41 / 54
-
Ticaret
0, (%0)
HTML kodlarını önlemek için örnek kodlarda attığım strip_tags fonksiyonu yeterli olacaktır, ekstra fonksiyon kullanmanıza gerek yok.