بعد از استارت session داخل فایل init.php وقتی ایمیل و پسورد وارد میکنم لینک وارد شدن به مدیرت تسک میاد ولی وارد تسک نمیشه و دوباره پنل لاگین نمایش داده میشه
فایل پروژه رو قرار میدم
سلام
برای اینکه اگر کاربر وارد شده بود به صفحه اصلی هدایت شود باید کد زیر رو در اول فایل auth.php قرار بدید تا در صورت ست شده بودن سشن لاگین کاربر هدایت بشه:
if(isLoggedIn())
header('Location:'.site_url());
احمدرضا فاطمی کیا۲۲ فروردین ۱۴۰۲، ۱۶:۲۳
بعد اضافه کردن این کد با خطای پایین داخل مرورگر مواجه شدم
Fatal error: Uncaught Error: Call to undefined function isLoggedIn() in C:\\laragon\\www\\7learn.php\\7Todo\\auth.php:2 Stack trace: #0 {main} thrown in C:\\laragon\\www\\7learn.php\\7Todo\\auth.php on line 2
علی اسدزاده۲۲ فروردین ۱۴۰۲، ۲۲:۱۷
و وقتی این کد داخل فایل index.php کامنت میکنم وقتی توی مرورگر لاگین میشم لینک مدیرت تسکها رو به درستی میاره و انتقال داده میشم به پنل تسک
///////////////index.php////////////
//if(!isLoggedIn()){//redirect to aut from// header("Location:" . site_url('auth.php'));////////////auth.php////////////////}//if(isLoggedIn()){// header('Location: ' . site_url('auth.php'));//}
و کدی که شما گفتین بزارم اول فایل auth.php رو کامنت کردم تا به ارور بالا که ذکر کردم بر نخورم ولی الان بدون این دو کد اول دو فایل از نظر امن بودن درسته ؟ یا بعدا مشکلی ایجاد نمیکنه از تغییراتی هست بگین تا اجرا کنم ممنون
علی اسدزاده۲۲ فروردین ۱۴۰۲، ۲۲:۳۰
علی عزیز
فایلی که فانکشن isloggedin داخلش هست رو اینکلود کن.
///////////////index.php////////////
//if(!isLoggedIn()){//redirect to aut from// header("Location:" . site_url('auth.php'));////////////auth.php////////////////}//if(isLoggedIn()){// header('Location: ' . site_url());//}
احمدرضا فاطمی کیا۲۳ فروردین ۱۴۰۲، ۱۶:۱۳
روند پاسخ گویی به خطاها واقعا کند و زمانبر هست و یک تا یک روز طول میکشه و احتمال درست بودن راهکار رفع درست باشه شاید توی دو یا سه روز مشکلات رفع بشه قبلا زیر پنج ساعت هر مشکلی بود رفع میشد این نوع پاسخ گویی روند یادگیری رو طولانیتر میکنه وخسته کنندهتر لطفا رسیدگی کنید ممنون
فایل lib-auth.php خدمت شما به دلیل اضافه نشدن داخل تایپیک به صورت کد فرستادم :
prepare($sql);
$stmt->execute([':email' => $email ]);
$records = $stmt->fetchAll(PDO::FETCH_OBJ);
return $records[0] ?? null;
}
function login($email,$pass){
$user = getUserBrEmail($email);
if(is_null($user)){
return false;
}
#check the password
if(password_verify($pass,$user->password)){
# login is successfull
$_SESSION['user']= $user ;
// dd($_SESSION);
return true ;
}
return false ;
}
function register($userData){
global $pdo;
#validation of $userData here (isValidEmil,isValidUserName,isValidPassowrd)
$passHash = password_hash($userData['password'], PASSWORD_BCRYPT);
$sql = "INSERT INTO users (name,email,password) VALUES (:name , :email , :pass);";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name'=>$userData['name'],':email'=>$userData['email'],':pass'=>$passHash]);
return $stmt->rowCount() ? true : false;
}
علی اسدزاده۲۳ فروردین ۱۴۰۲، ۲۱:۲۳
سلام،
سورسی که پیوست کردی، لاین 34 از صفحه lib-auth برای ایندکس user سشن ست کردید در صورتی که در لاین 11 همین صفحه، سشن login رو چک میکنید.
لاین 34 تغییر بدید:
$_SESSION['login'] = $user;
محسن موحد۲۶ فروردین ۱۴۰۲، ۰۰:۵۶
با این ارور برخورد کردم الان
Fatal error: Uncaught Error: Call to undefined function isLoggedIn() in C:\\laragon\\www\\7learn.php\\7Todo\\auth.php:2 Stack trace: #0 {main} thrown in C:\\laragon\\www\\7learn.php\\7Todo\\auth.php on line 2
علی اسدزاده۲۶ فروردین ۱۴۰۲، ۱۴:۱۰
یدونه isLoggedIn صدا زدی بیارش زیر اضافه شدن init.php. این مواردو دیگه در این قسمت از آموزش باید بدونی چون خطا معنیش واضحه.
isLoggedIn داخل li-auth.php تعریف شده تابعش و lib-auth داخل init اینکلود شده.
محسن موحد۲۶ فروردین ۱۴۰۲، ۱۹:۵۰
این مشکل حل شد فقط استاد گفتن تمرینها رو گذاشتن اکادمی سون لرن کجا میتونم داشته باشم این تمرینها رو
علی اسدزاده۲۷ فروردین ۱۴۰۲، ۱۶:۳۱
تمرینات در پلتفرمی که ان شالله اواخر اردیبهشت رونمایی میشه، اضافه خواهند شد.