Temel Giriş Script php ve mysql kullanılarak soruşturma

3 Cevap php

Kullanıcı adı mevcut olup olmadığını görmek için bir oturum açma komut dosyası için bir çek yazmak için çalışılıyor.

Bu sorguyu yazmak için en iyi yolu kontrol etmek olacaktır

eğer isset hem değerleri için (! _POST []) (nick ve pass)

Daha sonra veritabanına bağlanmak

NEREDE talep usernick için MySQL veritabanı

usernick varsa kullanıcı kimliği iade

kullanıcı adı alınmış olup olmadığını isset ($ id) görmek eğer değerlendirmek

ve bir giriş oluşturmak için devam etmek için kullanan

Bu mantıklı aşırı kod kullanmadan giriş kontrol etmek için bir yöntem gibi ses yok

kodu gönderme için değil üzgünüm, başka bir bilgisayarda ve bu bilgisayar işte benim yönetici tarafından kilitlendi ...

Ayrıca, bir değer veritabanında varsa değerlendirmek için başka bir yol var mı?

Örneğin, yerine MySQL veritabanı dönüş değeri $ id ayarı ben sadece bilgi için mysql veritabanı ping ve herhangi bir kullanıcı bilgilerini koyarak değilim bu yüzden bir Boolean sonucu döndürür olabilir.

Thanks, Matt

3 Cevap

Sen yapabilirsin:

SELECT NULL FROM <Table> WHERE <Conditions>

Eğer sorgu çalıştırdığınızda bir satır / satır olsun eğer 0 satır alırsanız, o zaman durum daha sonra onlar (bu nedenle mevcut değil arıyoruz ne olursa olsun) yapmak, bir araya geldi.

Boris belirtildiği gibi, girişleri sterilize unutmayın.!

Ne sizin kriterlere aradılar yerine ise ne bu sorgu yapmak gerekiyordu, bir NULL değeri içeren satırları dönüş olduğunu. Yani, örneğin, yapmaktır:

SELECT NULL FROM Users WHERE Name = 'something';

Ve sen olsun:

| NULL |
1 row(s) returned.

O isimde bir kullanıcı var demektir, diğer yandan da almak istiyoruz:

0 rows returned.

İşte o yok demektir.

PHP, kolayca 0 satır olsun eğer kullanıcı yok, bu test etmek için mysql_num_rows ($ result) kullanabilirsiniz.

Eğer SADECE aslında bilgiye ihtiyacınız varsa, normal bir sorgu yapmak gerekir, bir şey varlığını test Bu sadece yararlı tabii ki.

Sadece SELECT username WHERE username LIKE $username (sorguda kullanmak önce dezenfekte ve filtre $username unutmayın) olabilir.

Sonra $result = mysql_fetch_array($query); ve count($result) kullanmak;

count($result), 0 veya null değerine eşit ise, o zaman, veritabanında böyle bir kullanıcı adı bulunmamaktadır.

Bu deneyin.

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

$result = mysql_query("SELECT * from <table name> WHERE username = $username AND password = $password", $connection);

$row = mysql_fetch_array($result);

if(mysql_num_rows($row) == 1) //assuming username, password pair is unique
echo "Login Successful";
else
echo "Login Unsuccessful";