• 26-07-2010, 18:18:23
    #1
    Merhaba arkadaşlar, benim şöyle bir sorunum var ve bir türlü çözemedim.
    Tek dosya üzerinde veritabanına veri eklemek istiyorum ama ekle butonuna bastığımda session nedense düşüyor ve giriş ekranı geliyor. kullanmış olduğum session sistemi ve form şöyledir.
    <?
    if($_POST){
      $_SESSION['admin']=$_POST["admin"];
      $_SESSION['password']=$_POST["password"];
    }
    $result=mysql_query("select * from admin where admin='" . $_SESSION['admin'] . "' and password='" . $_SESSION['password'] . "'");
    $num=mysql_num_rows($result); 
    if($num < 1){ ?>
    Kullandığım form nesnesi
    <form name="ekle" action="index.php?i=eklendi" method="post">
    <input type="text" name="isim" value="" />
    <input type="submit" value="Ekle" />
    </form>
    Sisteme kullanıcı adı ve şifremle giriş yapabiliyorum ve index.php?i=listele, index.php?i=sil, index.php?i=düzenle gibi sayfalarıda gezebiliyorum ama index.php?i=ekle alanındaki formu doldurup index.php?i=eklendi alanına postu gönderdiğim anda kendimi giriş formu ile karşı karşıya buluyorum. Bunun sebebi nedir???
  • 26-07-2010, 18:21:45
    #2
    Her sayfada session_start(); yazılı olması lazım , sanırım formu eklendi yazan sayfanda bu komut eksik büyük ihtimalle ?
  • 26-07-2010, 18:36:59
    #3
    hayır hocam tek dosya üzerinde calışıyorum, index.php üzerinde bütün işlemleri yapıyorum, girişi çıkışı listelemesi eklemesi silmesi hepsi tek dosya üzerinde oluyor, dosya başlangıcında session_start(); var onda sorun yok.
  • 26-07-2010, 18:44:45
    #4
    Üyeliği durduruldu
    İlk kısmı şöyle değiştirin;

       <?
    if($_POST['admin']){
      $_SESSION['admin']=$_POST["admin"];
      $_SESSION['password']=$_POST["password"];
    }
    $result=mysql_query("select * from admin where admin='" . $_SESSION['admin'] . "' and password='" . $_SESSION['password'] . "'");
    $num=mysql_num_rows($result); 
    if($num < 1){ ?>
    sorun düzelecektir.
  • 26-07-2010, 18:45:00
    #5
    kodlarda bir karışıklık gördüm. kullanıcı adı ve şifrelerin doğrulamasını yapan sorgu çalışmadan önce zaten kullanıcıya ait bir oturum açılıyor. yani normalde algoritma şu şekildedir.

    kullanıcı forma verileri girer, bu veriler formdan post metoduyla alınır. alındıktan sonra sql sorgusu ile veritabanında eşleştirme yapılır. eşleştirme başarılıysa yani boolean(mantıksal), değer olarak true(doğru) döndürüyorsa oturum açılır, değilse oturum açılmaz.

    sen eşleştirmeden önce oturumları açmışsın, tam olarak tüm kodları göremediğimden sorunu çözemeyiz. eğer tüm kodları bana özel mesaj olarak gönderirsen yada buraya yazarsan yardımcı olabilirim. profilimden msn adresimi de ekleyebilirsin, msnden de yardımcı olmaya çalışırım.
  • 26-07-2010, 18:52:58
    #6
    haklısın ruvec, bi yerden bulduğum kodlarla giriş çıkış işlemini yapmıştım. senin dediğin gibi deneyeyim sonra yazarım buraya.
  • 26-07-2010, 19:40:58
    #7
    Üyeliği durduruldu
    flashby benim dediğim gibi yap sen, sayfaya post verisi gönderdiğinde ne olduğunu kontrol etmiyor senin kodunda. uygula, gör sonucu.
  • 26-07-2010, 21:51:20
    #8
    çok merak ettim sonucu, cevap yazar mısın ya
  • 26-07-2010, 21:52:03
    #9
    Üyeliği durduruldu
    admini önce global olarak çeksen sonra bi kontrol yapsan ?