Kullanıcılarımın e-posta adresi veya kullanıcı adı ile giriş yapmasını sağlamaya çalışıyorum. Şu anda sadece kullanıcı adı kabul edilir. Şimdi ben bunu uzatmak istiyorumKullanıcı adı veya e-mail adresi ile bağlan
$username
$_POST['username']
$password
değerini sahiptirmd5($_POST['password'])
değerini vardır:
$sql = "SELECT * FROM customers WHERE login = '".$username."' AND password = '".$password."'";
Bilgi: My çalışma SQL şöyle Müşterinin profiline girebileceği e-posta adresine. My SQL şöyle görünür:
$sql = "SELECT * FROM customers WHERE (login = '".$username."' OR email = '".$username."') AND password = '".$password."'";
Ben bu SQL kontrol eder:
$result = mysql_query($sql);
mysql_num_rows($result)
Ama şu anda çalışmıyor. SQL'de OR
kullanırsam, mysql_num_rows
0
değerini döndürür. Sorun ne olabilir? Ya da bunu başarmanın başka bir yolu var mı?
Kodunuz gayet iyi, başka bir sorun var. Sorgularınızı phpMyAdmin'i kullanarak doğrudan veritabanında çalıştırmanız gerekir. Ayrıca, bir "mysql_query" başarısının çağrısını kontrol etmeyi ve bir tane varsa sorunu belirlemek için "mysql_error" komutunu çalıştırmayı da unutmayın. –
Tüm 'mysql_' işlevleri kullanımdan kaldırılmıştır. Ayrıca kodunuz [SQL enjeksiyonları] 'na açıktır (http://xkcd.com/327/). Ve md5 şifreleri, bunları düz metinde saklamaktan sadece biraz daha iyidir. – Arjan
"Çalışmıyor" ne anlama geliyor? Daha fazla bilgi verin. Ayrıca, bir sorgu ile sorun olurken, her zaman veritabanına gönderilen ne tam olarak bilmek için 'echo $ your_query'. – Jocelyn