🔥 با کمک هوش مصنوعی در کمتر از 6 ماه فول‌استک شوید ...
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ فرّخ ابطحی
رفتن به سایت بعد ثبت نام بدون نیاز به لاگین
جامعه پی اچ پی ایجاد شده در ۲۹ اردیبهشت ۱۴۰۲

با سلام وقتتون بخیر برای اینکه بعد ثبت نام بریم به سایت و دوباره نیاز به لاگین نباشه چه کا ر باید کنیم؟ من ااز تابع هدر استفاده میکنم اما باز بر میگرده به صفحه لاگین و این یعنی مقدار false بر میگرده و تابع

if (!isLoggedIn()){
    header("Location:" . siteUrl('auth.php'));
}

اجرا میشه حاالا برای رفع این مشکل چه باید کرد؟

احسان عزیز

در تابع register بعد از اتمام کار‌های دیتابیس،تابع login رو صدا بزن تا سشن لاگین هم ست بشه.

آقای افرنگ بخاری ۲۹ اردیبهشت ۱۴۰۲، ۱۰:۴۷

با سلام استاد گرامی

این شکلی استفاده کردم نتیجه نداد و باز هم همون بود داستان

function register($userData){
    global $conn;
    $password = $userData['password'];
    $password = password_hash($password, PASSWORD_BCRYPT);
    $sql = "INSERT INTO users (name ,email,password) VALUES (:name,:email,:password)";
    $stmt = $conn->prepare($sql);
    $stmt->execute([':name' => $userData['name'], ':email' => $userData['email'] , ':password' => $password]);
    return $stmt->rowCount() ? true : false;
    login();
}
فرّخ ابطحی ۲۹ اردیبهشت ۱۴۰۲، ۱۲:۵۸

بعد از return چیزی اجرا نمیشه.

قبل از ریترن این کار رو انجام بدید.

ضمنا آرگومان‌های موردنیاز تابع login هم بهش پاس بدید.

بهترین پاسخ
آقای افرنگ بخاری ۲۹ اردیبهشت ۱۴۰۲، ۱۳:۱۶

با این روش حل شد سپاسگزارم استاد محترم

function register($userData){
    global $conn;
    $params  = $_POST;
    $password = $userData['password'];
    $password = password_hash($password, PASSWORD_BCRYPT);
    $sql = "INSERT INTO users (name ,email,password) VALUES (:name,:email,:password)";
    $stmt = $conn->prepare($sql);
    $stmt->execute([':name' => $userData['name'], ':email' => $userData['email'] , ':password' => $password]);
    login($params['email'], $params['password']);
    return $stmt->rowCount() ? true : false;
}


فرّخ ابطحی ۳۰ اردیبهشت ۱۴۰۲، ۰۳:۵۰