💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ حامد زالوند
عدم اجرای verify
جامعه پی اچ پی ایجاد شده در ۱۲ اردیبهشت ۱۴۰۳

سلام وقت بخیر 

من طبق آموزش کدها رو قرار دادم و چندین بار هم مرور کردم و نفهمیدم چرا فرم ثبت نام پر میکنم ریدارکت نمیشه به صفحه verify بجاش خطای fatal میده ,  ولی برمیدارم کاربر ثبت میشه ولی تو ثبت نام میمونه

 
<?php 
include 'bootstrap/init.php';
if($_SERVER ['REQUEST_METHOD']== 'POST') {
    $action = $_GET['action'];
    $params= $_POST;
    if($action == 'register'){
        if(empty($params['name'])|| empty($params['phone']) || empty($params['email'])){
            setErrorandRedirect('❌همه فیلدها ضروری هست' , 'auth.php?action=register');
        }
    if(filter_var($params['name'], FILTER_VALIDATE_INT)){
        setErrorandRedirect('نام را انتخاب کن ' , 'auth.php?action=register');
    }
     if(isuserExists($params['email'], $params['phone'])){
     setErrorandRedirect('کاربری از قبل با این مشخصات ثبت شده ' , 'auth.php?action=register');
     }
     if(createuser($params)){
      $_SESSION['email'] = $params['email'];
      redirect('auth.php?action=verify');
     }
    }
}
//      میده fatal  صدا میزنم بهم خطای verify تو این لاین  
  if(isset($_GET['action']) && $_GET('action')== 'verify' && !empty( $_SESSION['email'])){
    include 'tpl/verify-tpl.php';
 }
if(isset($_GET['action'] )&& $_GET['action']=='register'){
    include 'tpl/register-tpl.php';
} else {
    include 'tpl/login-tpl.php';
}

درود حامد عزیز 

 

fatal error به خاطر خطای سینتکسی توی کدتون هست 

برای دسترسی به اطلاعات سوپر گلوبال Get فرضا action شما بیاد به این شکل دسترسی داشته باشید (در بقیه قسمت‌های کد صحیح بود و مشکلی نداشت)

در این بخش شما به این شکل دارید چک میکنید  $_GET('action')== 'verify'   که اشتباه هست 

شکل اشتباه : 

// این خط اشتباه است
if(isset($_GET['action']) && $_GET('action')== 'verify' && !empty( $_SESSION['email'])){
    include 'tpl/verify-tpl.php';
}
شکل صحیح کد :
if(isset($_GET['action']) && $_GET['action'] == 'verify' && !empty($_SESSION['email'])){
    include 'tpl/verify-tpl.php';
}

 

فقط حواستون باشه توی اول کدتون حتما session_start()رو قرار داده باشید که بتونید به اطلاعات SESSION دسترسی داشته باشید 

session_start();

 

اگر سوالی داشتید حتما مطرح کنید 

موفق باشید

محمدرسول اصغری ۱۲ اردیبهشت ۱۴۰۳، ۱۵:۵۲

شرمنده داداش همین کدی که شما دادین هم کپی کردم به صفحه مورد نظر منتقل نمیشه تو همون صفحه ریجستر میمونه و کاربر ثبت میشه 

erro-pic-gh8k.png

ببینی فیلد هم پر میکنم کدکه شما هم گفتین قرار دادم تو همین جا میمونه 

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


if(isset($_GET['action']) && $_GET['action'] == 'verify'){
    include 'tpl/verify-tpl.php';
}
//این کدکه شما اصلاح کردین ولی بازم نشد 
حامد زالوند ۱۵ اردیبهشت ۱۴۰۳، ۱۱:۲۹

درود حامد عزیز 

به نظرم پروژه تون رو توی گیت قرار بدید براتون بررسی کنم 

و مشکلی که بهش برمیخورید رو بگم خدمتتون 

ممکنه از تابع redirect تون باشه 

 

محمدرسول اصغری ۱۶ اردیبهشت ۱۴۰۳، ۰۸:۵۸