• 10-12-2020, 17:58:00
    #1
    Merhabalar. Ufak bir giriş kısmı yapıyorum fakat bir sorunla karşılaşıyorum:
    include 'database.php';if (isset($_POST['user_login'])) {
      $user_email=trim(htmlspecialchars($_POST['user_email']));  
      $user_password=trim(md5($_POST['user_password']));
      $conusers=$db->prepare("SELECT * FROM users WHERE user_email= :user_email, user_password= :user_password");    $conusers->execute(array(        ':user_email' => $user_email,        ':user_password' => $user_password    ));
    $control=$conusers->rowCount();
    if ($control==1) {
       header("Location: ../anasayfa?login=1");}
       else{
        header("Location: ../anasayfa?login=0");}
    
    }
    Post edilen e-posta ve şifre doğruyken hep ?login=0 get değeriyle geri dönüş yapıyor. Sorun nerede acaba?

    Hepinize teşekkürler. Sorun, "and" koymayı unuttuğum içinmiş
  • 10-12-2020, 18:00:25
    #2
    $control==1 yerine yalnızca control olması daha sağlıklı olur. bide sqlde bulunan = sonrası boşlukları silip deneyin
  • 10-12-2020, 18:01:41
    #3
    PDO::FETCH_ASSOC ile dizi olarak çekip doğrulama yapıp dener misin? Ben genelde öyle kullanıyorum.
  • 10-12-2020, 18:02:47
    #4
    T1mSaH adlı üyeden alıntı: mesajı görüntüle
    PDO::FETCH_ASSOC ile dizi olarak çekip doğrulama yapıp dener misin? Ben genelde öyle kullanıyorum.
    O türlü de çekmiyor maalesef.
  • 10-12-2020, 18:04:41
    #5
    PHP & Flutter & Laravel
    Aynı kayıttan birden fazla var büyük ihtimal, $control==1 bunun yerine $control!=0 bunu deneyin
  • 10-12-2020, 18:05:47
    #6
    Üyeliği durduruldu
    $control 'ü basınca 1'mi dönüyor?
    Birde tek kayıtmı?
  • 10-12-2020, 18:09:16
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    1-) boşlukları silmek için trim kullanıyosun sanırım ama bunun yerine jquery ile özel karakter ve boşlukları engelleme kodu yaz... böyle çok sağlıksız...
    2-) select kullanımında prepare yerine query yaz... insert, update kullanırken prepare yaz...
    3-) select kodunun en sonuna yani kapalı parantez öncesine --- , PDO::FETCH_ASSOC --- bunu yaz...
  • 10-12-2020, 20:00:33
    #8
    PlatinYum adlı üyeden alıntı: mesajı görüntüle
    Merhabalar. Ufak bir giriş kısmı yapıyorum fakat bir sorunla karşılaşıyorum:
    include 'database.php';if (isset($_POST['user_login'])) {
      $user_email=trim(htmlspecialchars($_POST['user_email']));  
      $user_password=trim(md5($_POST['user_password']));
      $conusers=$db->prepare("SELECT * FROM users WHERE user_email= :user_email, user_password= :user_password");    $conusers->execute(array(        ':user_email' => $user_email,        ':user_password' => $user_password    ));
    $control=$conusers->rowCount();
    if ($control==1) {
       header("Location: ../anasayfa?login=1");}
       else{
        header("Location: ../anasayfa?login=0");}
    
    }
    Post edilen e-posta ve şifre doğruyken hep ?login=0 get değeriyle geri dönüş yapıyor. Sorun nerede acaba?

    Hepinize teşekkürler. Sorun, "and" koymayı unuttuğum içinmiş
    Bu da farklı bir doğrulama metodu.
    Belki birinin işine yarar.

    require('database.php');
    
     if (isset($_POST["user_login"])) {          
     $conusers  = $db->query("SELECT * FROM users", PDO::FETCH_ASSOC);        
       foreach ($conusers as $adminlogin) {}              
    $user = $_POST["user_email"];              
    $pw =  $_POST["user_email"];        
       
    $queryRowCount = $conusers->rowCount();
    
    if ($queryRowCount == 1 ) {
    
    if ($user == $adminlogin["user_email"] & $pw == $adminlogin["user_password"]) {
    header("Location: ../anasayfa?login=1"); // kullanıcı adı ve şifre doğruysa burası çalışır.
    } else {
    header("Location: ../anasayfa?login=0");  // kullanıcı adı ve şifre doğru değilse burası çalışır.
    }
     }