alexrolex Posted August 14, 2007 Share Posted August 14, 2007 aşağıdaki scriptin web sayfasına girişte nasıl çalıştığını çözemedim. yani if sorgusu nasıl çalışıyor. index sayfasına oturum açtıramadım. MSQL bağlantısı da tamam ama... olmadı işte.. bu konuda bilgisi olan arkadaşların yardımlarını bekliyorum. ----------------------------------------------------------------------------------------------------------- login.php ------------------------------ <? $md_pass = md5($pass); $user_query = mysql_query("select * from a_users where username = '$user' and password = '$md_pass'"); $result_row_count = mysql_num_rows($user_query); if ($result_row_count == '1') { session_start(); $username = $user; session_register(username); header ("Location: index.php"); } else { header ("location: login.php?hata=1"); } ?> ------------------------------------------------------------------------------ BU DA DATABASE TABLOSU ---------------------------------------------------------------------------------- CREATE TABLE `a_users` ( `idx` int(11) NOT NULL auto_increment, `username` varchar(255) NOT NULL default '', `password` varchar(255) NOT NULL default '', UNIQUE KEY `idx` (`idx`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; INSERT INTO `a_users` VALUES (1, 'ali', 'f899139df5e1059396431415e770c6dd'); INSERT INTO `a_users` VALUES (2, 'demo', 'fe01ce2a7fbac8fafaed7c982a04e229'); INSERT INTO `a_users` VALUES (3, 'serkan', 'ac756509286711ee86b74a43c0c1b587'); Link to comment Share on other sites More sharing options...
νєяуLife © Posted August 14, 2007 Share Posted August 14, 2007 Merhabalar aşağıdaki kodlara sahip sayfayı kullanabilmeniz için öncelikle değişken değerlerini almanız lazım login.php yeniden düzenlenmiş halini yazıyorum, <? $md_pass = md5($_POST['pass']); // POST metodu ile giriş formu verisinden gelen parola bilgisini al ve md5 fonksiyonu ile şifrele $user = $_POST['user']; // POST metodu ile kulanıcı adını al ve $user değişkenine ata $user_query = mysql_query("select * from a_users where username = '$user' and password = '$md_pass'");// gelen verilere göre veritabanında sorgulama yap $result_row_count = mysql_num_rows($user_query); // sonucu döndür// eğer çift kayıt yoksa ve gelen veriler veritabanı ile eşleşirse sonuç 1 olarak dönecektir. if ($result_row_count == '1') // sonuç 1 olarak döndü { session_start(); // oturum için kullanılan session komutunu başlat ( çerez başlat ) $username = $user; // gelen kullanıcı adı bilgisi doğru olduğu için ilgili kullanıcı adını oturum kullanıcı adı olarak belirlenmek üzere $username değişkenine ata session_register(username); // $username değişkenindeki kullanıcı adını oturum kapanana kadar sakla session_register(username) = "TRUE"; header ("Location: index.php"); // buradaki hazır fonsiyon ile (header) index.php dosyasını aç html deki meta-refresh komutu ile aynı sayılır, oturumu session fonksiyonu yönettiği için oturum kapanana kadar eklenen bütün sayfalarda geçerli olur } else // formdan gelen veriler veritabanındakilerle uyuşmadıysa login.php dosyasını aç ve 1 nolu hatayı ekranda yaz { header ("location: login.php?hata=1"); }?>[/CODE] index sayfasına oturum açman için önce verileri bir form ile göndermen lazım ve index.php sayfan açılıyorsa zaten yukarıda header kullanılmış oturumun açıldı demektir, veritabanındaki bilgiler uyuşmazsa login.php ye tekrar döndürür. index sayfanda şunu dene [CODE]<?session_start();if(session_register(username)=="TRUE"){ echo "Oturum açıldı"; }else echo "Oturum açılamadı ";?>[/CODE] Link to comment Share on other sites More sharing options...
Hakinen Posted August 14, 2007 Share Posted August 14, 2007 Ayrıca, Kodlarda bir hata var... session_register(username); // $username değişkenindeki kullanıcı adını oturum kapanana kadar sakla[/CODE] değil [CODE] session_register($username); // $username değişkenindeki kullanıcı adını oturum kapanana kadar sakla[/CODE] olacak.... Hafızaya kayıt edeceği değişken tanımlaması böyle çalışabilir. $ eksik yani. Link to comment Share on other sites More sharing options...
νєяуLife © Posted August 14, 2007 Share Posted August 14, 2007 eh not defteri sonuçta o kadar da olsun Link to comment Share on other sites More sharing options...
alexrolex Posted August 14, 2007 Author Share Posted August 14, 2007 verylife zaman ayırıp koda ilişkin açıklamalarınla beni aydınlattığın için sonsuz teşekkürler. Hakinen kardeşimi de dikkatinden dolayı tebrik ederim. kodla ilgili olarak yaşadığım problem formda kullanıcı adı ve pasword değerlerini veri tablosunaki ile aynı girdiğim halde oturumu bir türlü açamıyor olmamdı. hakinenin belirttiği düzeltmeyi yaptığım halde oturumu açamıyorum. yani if her seferinde döngüyü hata1 e çeviriyor. kullanıcı adı ve pasword hatası veriyor. veri tabanında belirtilen kullanıcı adı ve password ile oturum açmayı neden birtürlü beceremedim anlayamıyorum. bu bugün beni uyutmaz. açıklamalarınız için sağolun. Allaha çok şükür sorunu buldum. Mesaj tekrarı yapmak yerine bir önceki postunuzu editleyiniz. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.