wmaraci reklam

PDO aynı kayıtların girilmesini engelleme

5 Mesajlar 3.151 Okunma
pst.net
wmaraci reklam

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
Merhaba arkadaşlar siteme gelen bir veriyi eğer veritabanında varsa es geçmek isitiyorum bunu başardım ama ben email ve şifre ikisi de varsa kayıt alınmasın istiyorum.


include 'baglan.php';


if (isset($_POST['giris'])) {

$email = $_POST['email'];
$password = $_POST['password'];

$query = $db->prepare("SELECT * FROM user WHERE password = ? ORDER BY password DESC LIMIT 500");
$param = array($password);
$query->execute($param);
if ($query->rowCount()) {
Header("Location:../index2.php");
}
else {


$kaydet=$db->prepare("INSERT into user set
email=:email,
password=:password
");

$insert=$kaydet->execute(array(

'email' => $_POST['email'],
'password' => $_POST['password']
));



if ($insert) {

// echo "kayıt başarılı";

Header("Location:../index2.php");
exit;

} else {

// echo "kayıt başarısız";
Header("Location:index.php?durum=no");
exit;
}


}
}

?>



Kod yapısından da çözmüşsünüzdür eğer password verisi eğer tabloda varsa kayıt etme yoksa kaydet diyor. Ama benim istediğim email ve password ikilisi tabloda varsa kayıt etmesin.
 

 

wmaraci
reklam

SheefLAMARCK SheefLAMARCK WM Aracı Kullanıcı
  • Üyelik 31.12.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Naptın
  • Konum Ankara
  • Ad Soyad F** K**
  • Mesajlar 313
  • Beğeniler 73 / 31
  • Ticaret 8, (%88)
Suanda teldeyim ama soyle yapabilirsin bir değişken olusturup o degiskene gelen veriyi tablodaki olan veriyle karsilastirabilirsin ordan sonra bi if koyarsin dersin bu veri varsa hata sayfasina yonlendirsin veya gelen veri sayfasina bu kayit var diye textboxun ustune yazi yazsin
 

 

MehmetMasa MehmetMasa WM Aracı Kullanıcı
  • Üyelik 05.10.2016
  • Yaş/Cinsiyet 26 / E
  • Meslek Yazılımcı
  • Konum İzmir
  • Ad Soyad M** M**
  • Mesajlar 1946
  • Beğeniler 552 / 554
  • Ticaret 40, (%100)
$query = $db->prepare("SELECT * FROM user WHERE Email = ? && password = ? ORDER BY password DESC LIMIT 500");
$param = array($email, $password);
$query->execute($param);
if ($query->rowCount()) {
Header("Location:../index2.php");
}

Email ve şifre veri tabanında kayıtlı ise almaz sadece mail veya şifre kayıtlı ise alır.
Okanisik theharunuysal

kişi bu mesajı beğendi.

theharunuysal theharunuysal WM Aracı Kullanıcı
  • Üyelik 21.06.2015
  • Yaş/Cinsiyet 26 / E
  • Meslek .
  • Konum Ankara
  • Ad Soyad H** U**
  • Mesajlar 1879
  • Beğeniler 596 / 202
  • Ticaret 19, (%95)
$mehmetmasa süper oldu ++ çok teşekkürler.
MehmetMasa

kişi bu mesajı beğendi.

wmaraci
Mersin evden eve nakliyat

Okanisik Okanisik Vip Tema Web Tasarım A.Ş. Kullanıcı
  • Üyelik 29.06.2011
  • Yaş/Cinsiyet 37 / E
  • Meslek Vip Tema Web Tasarım A.Ş.
  • Konum Tekirdağ
  • Ad Soyad Ö** I**
  • Mesajlar 1381
  • Beğeniler 703 / 702
  • Ticaret 21, (%100)

mehmetmasa adlı üyeden alıntı

$query = $db->prepare("SELECT * FROM user WHERE Email = ? && password = ? ORDER BY password DESC LIMIT 500");
$param = array($email, $password);
$query->execute($param);
if ($query->rowCount()) {
Header("Location:../index2.php");
}

Email ve şifre veri tabanında kayıtlı ise almaz sadece mail veya şifre kayıtlı ise alır.


Desc limit 500 kısmına gerek yok bu şekilde 500 kayda kadar eşleşme yapılır. Ileride kayıt sayısı 500 ü gectiginde diğerleri eşleşme kontrolüne tabi tutulmazlar. Ek bilgi olarak hatırlatalım arkadaşa.
theharunuysal MehmetMasa

kişi bu mesajı beğendi.

Vip Tema Web Tasarım A.Ş.
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al