بعد از استارت 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 اینکلود شده.
غنچه نوبختی۲۶ فروردین ۱۴۰۲، ۱۹:۵۰
این مشکل حل شد فقط استاد گفتن تمرینها رو گذاشتن اکادمی سون لرن کجا میتونم داشته باشم این تمرینها رو
پریچهر پارسی۲۷ فروردین ۱۴۰۲، ۱۶:۳۱
تمرینات در پلتفرمی که ان شالله اواخر اردیبهشت رونمایی میشه، اضافه خواهند شد.