۴ احسان پژمان
رفتن به سایت بعد ثبت نام بدون نیاز به لاگین
جامعه پی اچ پی ایجاد شده در ۲۹ اردیبهشت ۱۴۰۲

با سلام وقتتون بخیر برای اینکه بعد ثبت نام بریم به سایت و دوباره نیاز به لاگین نباشه چه کا ر باید کنیم؟ من ااز تابع هدر استفاده میکنم اما باز بر میگرده به صفحه لاگین و این یعنی مقدار 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;
}


احسان پژمان ۳۰ اردیبهشت ۱۴۰۲، ۰۳:۵۰