راکت

نحوه بررسی لوگین بودن کاربر

10 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

10
میلاد هدایت پور
میلاد هدایت پور
@miladparsi1070

تخصص: در حال پیشرفت

فرض بر اینه که شما با لاراول کار میکنید!!!!
اینطوری میتونید لاگین بودن کاربر رو چک کنید:

Auth::check()

و اینطوری میتونید اطلاعات کاربر لاگین رو بگیرید:

Auth::user()
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

سلام ، اگر با php خام نوشتید و از فریم ورک استفاده نکردید ، بستگی به نوع کد زدتون داره من مثلا یک سشن یوزر ست میکنم و داخل جدول users اضافه میکنم و واسه اینکه چک کنم ببینم لاگینه یانه
دو شرط چک میشه اول اینک اصلا سشنی استارت شده منظورم سشن یوزر هست ؟ و اگر استارت شده آیا داخل جدولusers هست؟ اگر هست چون سشن یکتا هست و فقط منحصر به یک یوزره بله لاگین هست

شاید پاسخ شما همین‌جا باشد

سهیل ملکی
سهیل ملکی
@soheilsmg

تخصص: کارآموز برنامه نویسی

سلام
من برای بررسی لاگین کاربر هام از سشن استفاده میکنم و وقتی وارد میشه چک میکنه آیا نام کاربری شخص در جدول کاربران هست یا نه اگه بود که هیچی اگه نبود لاگین نیستش و حالا هر کار دیگه ای که بخواین میتونید انجام بدین.

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

@miladparsi1070
خیر پی اچ پی خام هستش

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

@eniack @kuroshparsi11228 @hesammousavi
با عرض سلام خدمت دوستان گرامی من خودم مدنظرم این هست که در همون جدولی که نام یوزر و پسوردش هست یه مقدار بولین بزارم و اگر لوگین کرد اون رو ترو کنم و مقدار دیفالت رو فالس بزارم منتها دوتا مشکل دارم
۱-چجوری این سشن رو زمان دار کنم ؟
۲- خب اینجا چجوری باید تشخیص بدم که کاربر همون کاربریه که لوگین کرده چون وقتی مقدارش ترو بشه بقیه هم که صفحه رو رفرش کنن براشون ترو هست فک کنم بشه با بررسی ای پی و مطابقت داشتن اون بشه این کار رو کرد اگر میشه یه راهنمایی در این زمینه کنین تشکر

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

@eniack خب روشش چجوری هست؟

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

ببینید سناریو اینه
شما موقع لاگین اگر پسورد و نام کاربری صحیح بود یک سشن با حروف تصادفی ست میکنی واسش و داخل دیتابیس ذخیره میکنی اینجوری

$token = hash("sha256", $name->username . "#" . $name->password . date("YmdHis") . "3pu4098eygriuio43y8");

                                    $stmt = $pdo_panel->prepare("UPDATE users SET token = :token WHERE id = :id");
                                    $stmt->bindParam(":token", $token);
                                    $stmt->bindParam(":id", $name->id);
                                    if ($stmt->execute()) {
                                        if ($stmt->rowCount() == 1) {
                                            $_SESSION["token"] = $token;
                                        }
                                    }

بعد واسه چک کردن اینک آیا کسی لاگینه میای چک میکنی که ایا سشنی با اسم token ست شده؟اگر ست شده آیا داخل دیتابیس هست؟
اگر هست نام کاربریشو بردار

$token = $_SESSION["token"]
if (isset($_SESSION["token"])) {
    $stmt = $pdo_panel->prepare("SELECT * FROM users WHERE token = :token");
    $stmt->bindParam(":token", $token);
    if ($stmt->execute()) {
        if ($stmt->rowCount() == 1) {
            $user = $stmt->fetch(PDO::FETCH_OBJ);
            $name = htmlspecialchars($user->username);
        }
    }
}
سهیل ملکی
سهیل ملکی
@soheilsmg

تخصص: کارآموز برنامه نویسی

@ajdar9667

دوست عزیز این کار استاندارد نیست شما باید از کوکی یا سشن استفاده کنید که سشن وقتی مرورگر بسته بشه خودش حذف میشه ولی اگه میخواین از سمت سرور متوجه بشین که کدوم کاربر ها لاگین هستن میتونید یه گزینه به جدول کاربران اضافه کنید که میگه کاربر لاگین هست یا نیست که خب اگه با سشن انجام بدین و کاربر مرورگر رو ببنده دیگه نمیشه متوجه شد که لاگین نیست مگه اینکه سوکت نویسی استفاده کنید البته اگه گزینه خروج از حساب رو بذارید کاربر که خارج بشه سشن حذف میشه و اون گزینه توی جدول هم تغییر میکنه که برای این بهتره از کوکی استفاده کنید که خیلی بهتره .

سیدحسن حسینی
سیدحسن حسینی
@hoseini468

سلام در امضای الکترونیکی پیغام میده :
گواهی برای کاربر لاگین نشده است

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام