v2.5.2
Giriş yap

Giriş yaparken veritabanınndan kullanıcı bilgileri almak

emirhankayabas
569 defa görüntülendi

Herkese iyi günler. Kullanıcının giriş yaptığı zaman çalıştırdığım kendimce yapmış olduğum sistemcik budur. Session a girerken yazmış olduğu e postayı atıyorum lakin bana ad, soyad, id' de lazım. Bunu giriş yapan kullanıcıların verilerini veritabanınndan nasıl çekebilirim? Veritabanında kayıt olurken ad,soyadı kaydediyorum. Burada onları alıp session kaydetmek istiyorum. Buraya kadar kendi bilgimce geldim lakin onu nasıl yaparım kafamda kuramıyorum. Kısacası $_SESSION["userEmail"] = $userEmail; yazan yerde giriş yapan kullanıcıya ait ad, soyad ve id sini veritabanından çekip session a kaydetmek istiyorum.

<?php
session_start();
require_once 'connection.php';
if ($_POST) {
    $userEmail = htmlspecialchars(trim($_POST['userEmail']));
    $userPassword = htmlspecialchars(trim(md5($_POST['userPassword'])));

    if (empty($userEmail) || empty($userPassword)) {
        echo "Boş bırakmayın";
    } else {
        if (filter_var($userEmail, FILTER_VALIDATE_EMAIL)) {
            $query = $db->prepare("SELECT * FROM users WHERE userEmail = ? AND userPassword = ?");
            $query->execute(array($userEmail, $userPassword));

            if ($query->rowCount()) {
                $_SESSION["userEmail"] = $userEmail;
                header('Location: ../mail/');
            } else {
                echo "Böyle bir kullanıcı yok";
            }
        } else {
            echo "$userEmail geçerli bir eposta değil.";
        }
    }
} else {
    echo "POST MALASEF YOK";
    die();
}
sercanarga
1250 gün önce

query koduna fetch eklersen array tipinde sorgu sonucunu döndürür. Bir session anahtarı oluşturup dönen tüm bilgileri tutabilirsin.

$query = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$query->execute([$userEmail, $userPassword]);
$user = $query->fetch();

$user değişkeni ilgili kullanıcının tüm veritabanı kayıtlarını döndürmeli. Bu değerli aşağıdaki gibi bir session anahtarına yazıp kullanabilirsin.

$_SESSION['user'] = $user;
echo $_SESSION['user']['id'];