Oturumları ile PHP Giriş (yeni pencerede) ilk denemede çalışmaz

1 Cevap php

Yani herhangi bir 'hassas malzeme' erişmeden önce giriş için bir kullanıcı gerektiren bir uygulama üzerinde çalışıyorum.

Oturum açma komut dosyası, bu gibi çalışır: Kullanıcı geçerli, OTURUM değişkenleri ayarlanır ise Komut veri-> doğrular U/P-> girer.

OTURUM sunucu tarafından işlenir çünkü bu, çok garip bir sorundur.

Sorun: İlk giriş formu göndererek, yeni bir pencerede veya sekmede açma komut sağ arka giriş formuna götürür. Beklendiği gibi tüm sonraki istekleri çalışır!

Herhangi bir fikir?

1 Cevap

5 $ session değerleri set almak ve bu bir "şifre eşleşmiyor" davası için !$auth->userAuth() olması gerekiyordu tahmin nerede $auth->userAuth() olduğunu söylüyor. Mantık tür rağmen kendisini örtüşmektedir.

Sadece ayrı bloklar halinde mantığı sıralama yerine, bu deneyin:

if ($action == 'login') {
    // all of the pre-authentication error checking first
    if (!$auth->emailExists($username)) {
        header('Location: index.php?action=unknownuser');
    } else if (!$auth->isAccountActive($username)) {
        header('Location: index.php?action=inactive');
    }

    // then actual authentication here - any errors have already redirected
    $_SESSION['loggedin'] = $auth->userAuth($username, $password);
    // opinionated bonus: adds clarity & keeps superglobals out of your classes
    // (you'll have to take them out yourself though)

    // and finally redirect on success/failure
    if (!$_SESSION['loggedin']) header('Location: index.php?action=authfailed');
    else header('Location: services.php');
}