v2.5.2
Giriş yap

sürekli açık session

zehrabilkin
540 defa görüntülendi ve 2 kişi tarafından değerlendirildi

Merhaba ben üyelik sistemi yazıyorum. üyelik sisteminde tarayıcı kapandıgında session bitiyor.
bunu cerez kullanmadan nasıl yapabilirim. yani session sürekli açık kalacak

app
659 gün önce

ChatGPT ile uğraştık biraz oturumun süresini 7 güne ayarlayıp isteğimi gerçekleştirdi.

<?php
ini_set('session.gc_maxlifetime', 60 * 60 * 24 * 7);
ini_set('session.cache_expire', 60 * 60 * 24 * 7);
session_start();
if (isset($_SESSION['kullanici']['id'])) {
    $dsn = "mysql:host=localhost;dbname=db_name";
    $pdo = new PDO($dsn, "root", "");

    // Check if session is valid
    $stmt = $pdo->prepare("SELECT * FROM user WHERE id = :user_id");
    $stmt->bindParam(":user_id", $_SESSION['kullanici']['id']);
    $stmt->execute();
    $user = $stmt->fetch();
    if ($user) {
        echo "Giriş Yapıldı";
    } else {
        session_destroy();
    }
} else {
    echo '
  <form action="" method="POST">
    <input type="text" name="email">
    <input type="text" name="sifre">
    <button type="submit" name="login">Gönder</button>
  </form>
  ';
    if (isset($_POST['login'])) {
        $dsn = "mysql:host=localhost;dbname=db_name";
        $pdo = new PDO($dsn, "root", "");
        $stmt = $pdo->prepare("SELECT * FROM user WHERE email = :email AND sifre = :sifre");
        $stmt->bindParam(":email", $_POST['email']);
        $stmt->bindParam(":sifre", $_POST['sifre']);
        $stmt->execute();
        $user = $stmt->fetch();

        if ($user) {
            $_SESSION['kullanici']['id'] = $user['id'];
            echo "Giriş Yapıldı";
        } else {
            echo "E-posta veya şifre yanlış";
        }
    }
}