|
Yazan
|
Konu: k.adi-pass kontrolü yapamıyorum (Okunma Sayısı 920 defa)
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
veritabanımda uyelik die bir tablom var ve bu tabloda da 3 alan var. id,kadi,pass diye. ben bu alanlarada 3 kayit ekledim phpmyadminden murat , 12345 ahmet, 12345 hasan, 12345 diye. ben bu kadi ve parolaya sahip kişilerin sadece giriş yapmasını istiyorum. veritabanında karşılaştırma içinde şöyle bir kod yazdım <?php mysql_connect("localhost","root","") or die("servere baglanamadi"); mysql_select_db("deneme"); $sql="SELECT * FROM uyelik"; $kadi=$_REQUEST['kadi']; $pass=$_REQUEST['pass']; $k=mysql_query($sql); while($var=mysql_fetch_array($k)) { if (($var['kadi']==$kadi) && ($var['pass']==$pass)) { echo "girisiniz basarili";
} else { echo "giriş başarısız"; } } mysql_close(); ?>
k.adi=murat pass=12345 yazdığımda cıktı şöyle girisiniz basarili giris basarisiz giris basarisiz //sadece girişiniz başarılı demesi lazım kadi=hasan pass=12345 yazdığımda cıktısı giris basarisiz giris basarisiz girisiniz basarili// sadece girşiniz başarılı demesi lazım bu kontrolü düzgün biçimde yapmam için nasıl bir kod yazmam gerekiyor?
|
|
|
|
|
Logged
|
|
|
|
zombie
Global Moderatör
Offline
Mesaj Sayısı: 939
|
şunu denermisin. <?php mysql_connect("localhost","root","") or die("servere baglanamadi"); mysql_select_db("deneme"); $sql="SELECT * FROM uyelik"; $kadi=$_REQUEST['kadi']; $pass=$_REQUEST['pass']; $k=mysql_query($sql);
$var=mysql_fetch_array($k);
if (($var['kadi']==$kadi) && ($var['pass']==$pass)) { echo "girisiniz basarili";
} else { echo "giriş başarısız"; }
mysql_close(); ?>
|
|
|
|
|
Logged
|
|
|
|
CoDeDaNCeR
Ziyaretçi
|
öncelikle niye o şekilde çıktı aldığını anlatayım. sen hiçbir koşulla sınırlandırmadığın sql kodunu while döngüsüne alarak tüm satırlar için yazdırıyorsun. sende 3 satır olduğu için 3 sonuç çıkıyor 3000 tane satırın olsaydı 3000 sonuç çıkacaktı  doğrusu: mysql_connect("localhost","root","") or die("servere baglanamadi"); mysql_select_db("deneme"); $kadi=$_REQUEST['kadi']; $pass=$_REQUEST['pass']; $sql="select * from uyelik where kadi='$kadi' and pass='$pass'"; $k=mysql_query($sql); $varmi=mysql_num_rows($k); if($varmi !=0){ echo "giriş başarılı"; }else{ echo "giriş başarısız"; } burada kullandığım fonk. açıklamıyorum. araştırıp öğrenirsen daha yararlı olur. kolay gelsin...
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
şunu denermisin. <?php mysql_connect("localhost","root","") or die("servere baglanamadi"); mysql_select_db("deneme"); $sql="SELECT * FROM uyelik"; $kadi=$_REQUEST['kadi']; $pass=$_REQUEST['pass']; $k=mysql_query($sql);
$var=mysql_fetch_array($k);
if (($var['kadi']==$kadi) && ($var['pass']==$pass)) { echo "girisiniz basarili";
} else { echo "giriş başarısız"; }
mysql_close(); ?> bu kodda da sadece 1.değer için doğru sonucu verior yanı tablodaki 1.kayıt için doğru sonucu veriyor. ancak 2.3. kayitlar için doğru bigileri girmeme rağman başarısız giriş diyor
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
öncelikle niye o şekilde çıktı aldığını anlatayım. sen hiçbir koşulla sınırlandırmadığın sql kodunu while döngüsüne alarak tüm satırlar için yazdırıyorsun. sende 3 satır olduğu için 3 sonuç çıkıyor 3000 tane satırın olsaydı 3000 sonuç çıkacaktı  doğrusu: mysql_connect("localhost","root","") or die("servere baglanamadi"); mysql_select_db("deneme"); $kadi=$_REQUEST['kadi']; $pass=$_REQUEST['pass']; $sql="select * from uyelik where kadi='$kadi' and pass='$pass'"; $k=mysql_query($sql); $varmi=mysql_num_rows($k); if($varmi !=0){ echo "giriş başarılı"; }else{ echo "giriş başarısız"; } burada kullandığım fonk. açıklamıyorum. araştırıp öğrenirsen daha yararlı olur. kolay gelsin... çok saolasın hatamı da anladım. tşkler
|
|
|
|
|
Logged
|
|
|
|
zombie
Global Moderatör
Offline
Mesaj Sayısı: 939
|
bu kodda da sadece 1.değer için doğru sonucu verior yanı tablodaki 1.kayıt için doğru sonucu veriyor. ancak 2.3. kayitlar için doğru bigileri girmeme rağman başarısız giriş diyor haklısın sorgu doğru olmayınca yazdığım kod sadece ilk kayıt için doğru sonuç verir.
|
|
|
|
|
Logged
|
|
|
|
blades
PHP Öğrencisi
Offline
Mesaj Sayısı: 125
|
yanlıs gormediysem sifreyi düz olarak 12345 die kaydetmişin eger o sifreyi sen md5 veya hani şifreleme fonksiyonunu kullanıyorsan onla gonderiyorsundur 32bit sifren oluyordur ama sen 12345 die bekliyorsun kodda ole bir sey varsa bakarmısın
|
|
|
|
|
Logged
|
if($askin==$herseyin || $güven==$herkes ) { echo "Coktan kazigi yemisin haberin yok"; exit(); } $return=FATAL_ERror;
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
yanlıs gormediysem sifreyi düz olarak 12345 die kaydetmişin eger o sifreyi sen md5 veya hani şifreleme fonksiyonunu kullanıyorsan onla gonderiyorsundur 32bit sifren oluyordur ama sen 12345 die bekliyorsun kodda ole bir sey varsa bakarmısın
evt düz 12345 olarak kontrol etiriyorum ve bunun guvenli birşey olmadığınıda biliyorum .php - mysql e dun bir proje alarak başladım ufaktan boyle şeyler yazıorum md5 le nasıl parolayı guvenli bi halde tutarım yukardaki programa ekleyerek 
|
|
|
|
|
Logged
|
|
|
|
|
aziz
|
//gelen pass = $_POST['pass'] olsun $pass = md5($_POST['pass']); $user = $_POST['user'];
//Kayıtta $query = mysql_query("INSERT INTO tablo_adi VALUES('','$user','$pass') ";
//Kontrol ederken
$pass = md5($_POST['pass']); $user = $_POST['user'];
$query = mysql_query("SELECT * FROM tablo_adi WHERE user='$user' AND pass='$pass' ");
Şeklinde şifreyi 128 bit şifreleyip database e yazmış ve yine aynı şekilde karşılaştırmış olursunuz
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
//gelen pass = $_POST['pass'] olsun $pass = md5($_POST['pass']); $user = $_POST['user'];
//Kayıtta $query = mysql_query("INSERT INTO tablo_adi VALUES('','$user','$pass') ";
//Kontrol ederken
$pass = md5($_POST['pass']); $user = $_POST['user'];
$query = mysql_query("SELECT * FROM tablo_adi WHERE user='$user' AND pass='$pass' ");
Şeklinde şifreyi 128 bit şifreleyip database e yazmış ve yine aynı şekilde karşılaştırmış olursunuz Ancak şöyle birşey var ben database daha önceden yazıorum şifreleri yani şifreler ve kadları belli yani 3 kullanıcım var k.adlari hasan,murat,huseyin bunların parolaları 123456,1234,12345 mesela. ben phpmyadminde pass alanında bu şifrelerin md5 lenmiş halini gormek istiyorum düz şifreleri değil. bunu yapabilirmiyim?yaparsam nasıl?
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
aziz arkadaşımın dediği gibi şöyle kayıt ekliyorum <? @mysql_connect("localhost","root","") or die("servere baglanamadi"); @mysql_select_db("staj") or die("veritabanina baglanamadi"); $kadi=$_POST['kadi']; $pass=md5($_POST['pass']); $adiniz=$_POST['adiniz']; $email=$_POST['email']; $tel=$_POST['tel']; $kayit=mysql_query("INSERT INTO `uyelik` (`id`, `kadi`, `pass`, `aktivasyon`, `adiniz`, `email`, `tel`) VALUES ('', '$kadi', '$pass', '0', '$adiniz', '$email', '$tel')"); echo "üyeliğiniz onaylandıktan sonra sisteme giriş yapabileceksiniz"; mysql_close(); ?>
aktivasyon alanına default olarak 0 atadım giriş içinse şöyle bir kod yazdım <? @mysql_connect("localhost","root","") or die("servere baglanamadi"); @mysql_select_db("staj") or die("database bağlanamadi"); $kadi=$_POST['kadi']; $pass=md5($_POST['pass']); $sorgu=mysql_query("SELECT * FROM `uyelik` WHERE kadi='$kadi' AND pass='$pass' AND aktivasyon!=0"); $kontrol=mysql_num_rows($sorgu); if($kontrol!=0) echo "sistemdesiniz"; else echo "k.adı-parolanız yanlış veya üyeliğiniz aktive edilmemiş"; mysql_close(); ?>
ancak giriş yapamıyorum kayitli kullanıcı adı şifre girmeme rağmen k.adı-parolanız yanlış veya uyelik aktive edilmemiş dior?? nerde bi hata yapmış olabilirim acaba?(kayit olanlardan istediğim kişilerin aktivasyonunu hmn 1 yapıorum ki girebilsin)
|
|
|
|
« Son Düzenleme: 23, 2006, 05:08:54 am Gönderen: airwebb »
|
Logged
|
|
|
|
|
aziz
|
passwordu kayıt ettiğiniz sql alanı VARCHAR(32) mi acaba?
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
arkadaşlar okulda çalıştırdığım kodları (içinde mysql kodları olan) evimde çalıştıramıoorum şöyle ki okulda çalışan kayit.php evimde çalışmıyor wamp 5 1.6.1 de de durum aynı wamp 5 1.6.4 de de acaba bi ayarla fln mı oynadım da boyle oldu?
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
arkadaşlar okulda çalıştırdığım kodları (içinde mysql kodları olan) evimde çalıştıramıoorum şöyle ki okulda çalışan kayit.php evimde çalışmıyor wamp 5 1.6.1 de de durum aynı wamp 5 1.6.4 de de acaba bi ayarla fln mı oynadım da boyle oldu?
<? bunun yerine <?php yazınca sorun çözüldü bunu bulmak tam 1 günümü aldı:)
|
|
|
|
|
Logged
|
|
|
|
airwebb
PHP Öğrencisi
Offline
Mesaj Sayısı: 82
|
passwordu kayıt ettiğiniz sql alanı VARCHAR(32) mi acaba?
evet varchr 32 ama hala giriş yapamıyorum k.adı şifre doğru olsa bile??
|
|
|
|
|
Logged
|
|
|
|
|
 |