voL adlı üyeden alıntı: mesajı görüntüle
Muhtemelen sorgu sonucuna göre session'a kullanici bilgilerini atarken eposta ya da diger bilgileri atiyorsunuz ama eger session'da kullanici bilgilerini kontrol ediyorsaniz dogrulugunu, cikis yapiyordur.
fatihemre adlı üyeden alıntı: mesajı görüntüle
Sadece giriş metodunu aşağıdaki gibi değiş, tüm kodları paylaşmıyorum, giriş metodunu paylaşıyorum. Değişiklik yaptığım tek yer sorgu ve binding işlemi. PDO kullanırken binding işlemi yapacaksanız "?" kullanmayın, doğrudan binding key kullanın aşağıdaki gibi. Soru işaretini tek parametreli basit sorgularda kolaya kaçmak için kullanabilirsiniz. Onun dışında okuma zorluğu ve karmaşadan başka bir şey değil. Ayrıca binding işleminin yapıldığı if/else bloğunu da sadeleştirdim.

public function giris($kul_mail,$kul_sifre,$beni_hatirla) {
        
        try {
            global $rec;
            if (!$rec->dogrulama()) {
                throw new Exception(ses('hata'));
            }
            $sorgu=$this->db->prepare("SELECT * FROM kullanicilar WHERE (kul_mail=:kullanici or kul_tel=:kullanici or kul_adi=:kullanici) AND kul_sifre=:parola");
            $bind = ['kullanici' => $kul_mail, 'parola' => sifreleme($kul_sifre)];

            if (isset($_COOKIE['ebtoturum'])) {

                $liste=json_decode($_COOKIE['ebtoturum']);
                $cozulen=openssl_decrypt($liste->kul_sifre, "AES-128-ECB", "sifre_coz");

                if ($_POST['kul_sifre']==$liste->kul_sifre) {
                    $bind['parola'] = sifreleme($cozulen);
                }
            }
            $sorgu->execute($bind);

            if ($sorgu->rowCount()!=0) {
                $kullanici=$sorgu->fetch(PDO::FETCH_ASSOC);
                if ($kullanici['kul_durum']==0) {
                    throw new Exception("Bu Kullanıcının Oturum Açması Engellenmiştir", 1);
                }
                foreach ($kullanici as $key => $value) {
                    $_SESSION[$key]=$value;
                }
                if ($kullanici['auth_onay']==0) {
                    $_SESSION['guvenlik']=true;
                }
                $_SESSION["kul_tamisim"]=$_SESSION["kul_isim"]." ".$_SESSION["kul_soyisim"];
                if (empty($beni_hatirla)) {
                    @setcookie("ebtoturum",json_encode(@$kullanicilar),strtotime("-10 day"),"/");
                } elseif (isset($beni_hatirla)) {
                    if (empty($_COOKIE['ebtoturum'])) {
                        $yenisifre=openssl_encrypt($kul_sifre, "AES-128-ECB", "sifre_coz");
                    } else {
                        $liste=json_decode($_COOKIE['ebtoturum']);
                        if ($_POST['kul_sifre']==$liste->kul_sifre) {
                            $yenisifre=$liste->kul_sifre;
                        } else {
                            $yenisifre=openssl_encrypt($kul_sifre, "AES-128-ECB", "sifre_coz");
                        }
                    }
                    $kullanicilar=
                    [
                        "kul_mail" => $kul_mail,
                        "kul_sifre" => $yenisifre
                    ];
                    setcookie("ebtoturum",json_encode($kullanicilar),strtotime("+10 day"),"/");
                }
                $this->direktguncelle("kullanicilar", "kul_id", ses("kul_id"), ['son_giris' => date("Y-m-d H:i:s"), 'ip_adresi' => $_SERVER['REMOTE_ADDR']]);
                return TRUE;
            } else {
                throw new Exception("Lütfen Bilgilerinizi Kontrol Edin", 1);
            }
        } catch (Exception $e) {
            $_SESSION['hata']=$e->getMessage();
            return FALSE;
        }

    }


@fatihemre; Üstadım yardımın için çok teşekkür ederim. 3 seçenek ile de login olabiliyorum artık.

Yardımcı olan herkese teşekkürler. Sorun çözülmüştür.