email & telefon ile giriş
if (isset($_POST['sifre'])) {
$query = $db->prepare("SELECT * FROM uye where email=:email AND sifre=:sifre LIMIT 1");
$giris = $query->execute(array(":email" => $_POST['email'], ":sifre" => $_POST['sifre']));
$giris = $query->fetch(PDO::FETCH_ASSOC);
}
telefonu sorguya dahil ettiğimde email veya telefonda boş veri gittiği için işlem başarısız olmakta bunu nasıl çözerim
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
$sql = "SELECT * FROM users WHERE ";
if(filter_var($_POST['veri'], FILTER_VALIDATE_EMAIL)){
$sql .= "email=? AND sifre=? ";
}elseif($_POST["veri"){ // burada preg ile telefon regexi ile kontrol edebilirsin..
$sql .= "telefon=? AND sifre=? ";
}
else if yerine else de gidebilirsin geriside normal sql kodları işte bu şekilde daha çok çeşit de sağlayabiilirsin.
Merhaba,
İlk önce şunuda yapabilirsin, E-Posta verisi geliyor ise, epostaya ait giriş bilgilerini sağlayabilirsin., Eğer e-posta verisi boş geliyor ise, GSM alanı aktif ederek, onu kontrol edebilirsin.
if(stripos($_POST['email'],'@') !== FALSE){
//Eposta ile ilgili giriş yaptır
}else{
//telefon numarası ile giriş yaptır.
}
Bu problemi çözmek için, kod parçacığının başına aşağıdaki satırları ekleyebilirsiniiz:
if (empty($_POST['email']) || empty($_POST['sifre'])) {
// hata ayıklama kodları...
// ör: boş bırakılamaz mesajı vb.
} else {
try {
// mevcut kodlar...
} catch (Exception $e) {
// hata ayıklama kodları...
// ör: sunucu hatasında oluşabilecek durumlar için vs.
}
}
Böylece, kullanıcının girdiği email veya sifre bilgilerinde boş veri var ise, hata ayıklama kodları çalıştırılacak ve işlem başarısız sayılmayacaktır.