• 1400/02/23

headers already sent :

سلام،

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

اولای پروژه که میخوایم وارد روت ادمین بشیم و  همچین کدی در صفحه ادمین قرار دادیم

\System\Auth\Auth::user()->first_name

و هنوز یوزری نساختیم و قبل از اینکه با متد loginbyid بخوایم وارد بشیم

وقتی میرم داخل روت ادمین توسط کد بالا (متد Auth)باید ریدایرکت بشم به صفحه login ولی با خطای زیر روبرو میشم

Warning:  Cannot modify header information - headers already sent by 

(output started at E:\xampp\htdocs\mvc\system\helpers\helpers.php(10) : eval()'d code:1) in 

E:\xampp\htdocs\mvc\system\helpers\helpers.php

on line 75

ob_start() رو در بوت استرپ فایل app قرار دادم که درست شد ولی میدونم که کار درستی نیست و شما هم اینو قرار ندادید

الان ایرادش کجاست استاد عزیزکه برای شما درست کار میکنه و میبره به لاگین ولی برای من این خطا رو میده؟

  • 1400/02/23
  • ساعت 17:26

در ضمن استاد لاین 75 هم این هستش

function redirect($url){

  $url = trim($url,'/ ');

  $url = strpos($url, currentDomain()) === 0 ? $url : currentDomain() . '/' . $url;

  header("Location: ".$url);

  exit;

}

و متد Auth هم به این هلپر ریدایرکت میکنه


  • 1400/02/23
  • ساعت 17:36

با سلام خدمت شما همراه عزیز

 

بهتره توی پروژه تغییر ایجاد نکنید

 

 

متن خطارو سرچ‌کنید و راه حلی که ارائه داده طی کنید حل میشه

 

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


  • 1400/02/23
  • ساعت 18:36

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

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

array(5){[0]=>string(23)"X-Powered-By: PHP/8.0.0" [1]=> string(38) "Expires: Thu, 19 Nov 1981 08:52:00 GMT" [2]=> string(50) "Cache-Control: no-store, no-cache, must-revalidate" [3]=> string(16) "Pragma: no-cache" [4]=> string(38) "Content-type: text/html; charset=UTF-8" } 

فکر میکنم اون eval که در متد view هست هدر ارسال میکنه و دیگه کد هدر درون php اجرا نمیشه

این ویوی منه در هلپرها

function view($dir, $vars = []){

  $viewBuilder = new \System\View\ViewBuilder();

  $viewBuilder->run($dir);

  $viewVars = $viewBuilder->globalVars;

  $content = $viewBuilder->content;

  empty($viewVars? : extract($viewVars);

  empty($vars? : extract($vars);

  eval(" ?>".html_entity_decode($content));

}

این متد ریدایرکت منه در هلپرها

function redirect($url){

  $url = trim($url,'/ ');

  $url = strpos($url, currentDomain()) === 0 ? $url : currentDomain() . '/' . $url;

  header("Location: ".$url);

  exit;

}

اینم کد داخل متد Auth هست که باید اجرا بشه ولی هدر قبلا ارسال شده

if(!$session->get('user')){

      return redirect($this->redirectTo);

    }

استاد عزیز راه حلش چیه؟


  • 1400/02/23
  • ساعت 18:47

Cannot modify header information - headers already sent by

 

 

 

اینوبایدسرچ

کنید


  • 1400/02/23
  • ساعت 19:06

استاد منم همینو سرچ کردم و بازم سرچ کردم 

eval(" ?>".html_entity_decode($content)); 

ارور پایین میگه در کدی که در خط بالا قرارش دادم هدر ارسال میشه ، دقیقا مثل شما نوشتم و چندین بار هم چک کردم و هیچ اشتباه نوشتاری هم نداره ولی نمیدونم چرا میگه اون خط هدر ارسال میکنه ، کل امروز تقریبا رو این بودم ولی بازم نتونستم بفهمم ایرادش کجاست ، دقیقا مثل شما نوشتم و فقط میدونم که ایراد از خط کد بالاست

Warning:  Cannot modify header information - headers already sent by 

(output started at E:\xampp\htdocs\mvc\system\helpers\helpers.php(10) : eval()'d code:1) in 

E:\xampp\htdocs\mvc\system\helpers\helpers.php

on line 75

 


  • 1400/02/23
  • ساعت 19:10

ورژن php رو‌مثل بنده کنید

 

 

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


  • 1400/02/23
  • ساعت 19:10

چون با راه حل های مختلف حل میشه و باید همرو تست کنید


  • 1400/02/23
  • ساعت 19:14

استاد ورژن php  من 8 هستش ؟ خب به فرض کمترش کنم و کار کنه ، پس این یعنی فریمورکی که نوشتیم فقط برای ورژن زیر 8 کار میکنه؟


  • 1400/02/23
  • ساعت 19:16

اول پروژه ورژن php مورد نیاز رو گفتیم خدمتتون که ۷.۲ هست فکر کنم

 

این‌ فریمورک‌قبل از معرفی ورژن ۸ ساخته شده

 

به دوره بروز رسانی اضافه میشه و سازگار ۸ هم میشه

 

دوسه تا تغییر ریز نیاز هست


  • 1400/02/23
  • ساعت 19:21

استاد عزیز میتونید این دو سه تا تغییر ریز رو توی یه ویدئو در همین دوره قرار بدید که نمونه برای بروزرسانی ؟

بنظرم خیلی واجبه ، خیلی ممنون لطف میکنید موفق باشید 

دیگه برم ببینم خودم چکار میکنم 


  • 1400/02/23
  • ساعت 19:23

دقیقا همینکارو میکنیم‌

 

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

 

چشم

 

 

موفق باشید قطعا میتونید درستش کنید🌹


  • 1400/02/23
  • ساعت 19:23

راستی یه چیزی استاد عزیز ،

این ریدایرکت با متد Auth از داخل کنترولر عمل میکنه و فقط وقتی بین کدهای html هستش عمل نمیکنه 

اینم گفتم بگم شاید چیزی به ذهنتون رسید


  • 1400/02/23
  • ساعت 19:24

متوجه نشدم


  • 1400/02/23
  • ساعت 19:30

اینجا ریدایرکت میکنه خط پنجم در صورتی که ادمین نباشه یا آیدی بیخود وارد میکنم

class AdminController extends Controller{

  public function __construct(){

    Auth::loginById(5);

    Auth::check();

    if(Auth::user()->user_type != 'admin'){

      redirect('/login');

      exit;

    }

  }

  public function index(){

    return view("admin.index");

  }

}

ولی وقتی داخل کد اچتیمل مینویسم عمل نمیکنه

ولی وقتی مثل خط پایین داخل کد اچتیمل قرار میگیره عمل نمیکنه

این کد داخل صفحه ادمین هست که در صورت لاگین نبودن ریدایکت میکنه به صفحه لاگین

<span class="user-name text-bold-600"><?= \System\Auth\Auth::user()->first_name .' '. \System\Auth\Auth::user()->last_name?></span>

ولی میگه هدر قبلا ارسال شده در این خط

eval(" ?>".html_entity_decode($content)); 

و بازم ممنون استاد عزیز بخاطر ویدیوی آخر دوره ،

در ضمن استاد باور کنید من آدمی نیستم که هی سوال بپرسم و خیلی ارورها رو خودم حل کردم ولی خب ...


  • 1400/02/23
  • ساعت 19:34

چشم این مورد هم‌بررسی میکنیم 

 

سلامت باشید

 

 

بله میدونم این مشکل بخاطر ورژن هست بزودی حل میکنیم ایشالا


  • 1400/02/23
  • ساعت 19:53

استاد واقعا عذر میخوام خیلی مزاحم شدم،

پس لطف کنید یه راهنمایی کنید

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

چون فایده نداره اصلا ریدایرکتش کار نمیکنه

یا ob_start() رو بزارم داخل bootstrap/app و پیش برم تا برسم به اون ویدئوی آخر دوره ؟

که این کارم شما فرمودی نکنم 

خیلی ممنون استاد عزیز و واقعا سپاسگزارم برای این پاسخگویی ، موفق باشی

 


  • 1400/02/23
  • ساعت 19:55

حدودا ۵ ساعت از دوره باقی مونده

 

خب ورژن php رو‌بیارید پایین و ا‌دامه بدید


  • 1400/02/23
  • ساعت 19:58

استاد آخرش که باید ببریم بالا

حالا تا اون 5 ساعت تموم شه یه سری آموزشای دیگه رو میبینم 

موفق باشی استاد عزیز


  • 1400/02/23
  • ساعت 19:58

بسیار هم عالی

 

 

همچنین🌺


  • 1400/02/23
  • ساعت 20:38

سلام استاد سوال آخره

<?php

if(!isset($_SESSION['user'])){

    redirect('login');

}

?>

<!doctype html>

به این صورت که دستی مینویسم  عمل میکنه ، این کد رو بالای صفحه مینویسم و کد پروژه وسط صفحست ، خط پایین

<span class="user-name text-bold-600"><?= \System\Auth\Auth::user()->first_name

کد php معمولی رو هم که وسط صفحه مینویسم ، مثل خط بالا ارور ارسال هدر میده

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

جدن استاد عزیز خیلی برای آموزش برنامه نویسی وقت گذاشتم  و الان دور آخرم و دیگه طاقتم بریده ، یعنی پس  صد در صد مشکل از ورژن php هست و اطمینان داشته باشم که آخر دوره برطرف میشه؟

خیلی ممنون استاد عزیز


  • 1400/02/24
  • ساعت 11:09

سلام استاد یه کار دیگه کردم ، لاگین بودن و ادمین بودن رو بالای صفحه چک کردم که اگه ترو نبود قبل از ارسال محتوا به مرورگر بتونه هدر کنه به صفحه لاگین (بازم متوجه نشدم چطوری وسط صفحه و بعد از ارسال محتوا به مرورگر برای شما هدر میکنه) ، و ریختمش توی متغیر یوزر که اگر لاگین بود بتونم ازش استفاده کنم و همشونم به این صورت @include  و این موارد درست کردم 

دارم استاد طوری میکنم که دیگه مثل لاراول هیچ تگ phpای داخل صفحه باز نکنم

راه درستش اینه که همه رو مثل همین @include  و ... که انجام دادید و با preg_match بررسی کردید منم یه تریت به پوشه view در سیستم اضافه کنم و همون کارا رو انجام بدم؟

البته تا الان کلی اضافه کردم و واقعا جالبه برام

استاد اگر میشه @csrf رو آموزش بدید خیلی عالی میشه ، البته اینم نوشتم ولی برگشتشو هنوز فکر نکردم کجا بررسیش کنم ، باید توی سشن پروایدر بررسی بشه؟

 دمت گرم استاد واقعا آموزشت عالیه خیلی دوست دارم، موفق باشی


  • 1400/02/27
  • ساعت 10:51

با سلام خدمت شما همراه عزیز

 

 

بله مناسب هست فقط وقتی زیاد پروژه رو تغییر بدید با توجه به ساختار پروژه من دیگه کمکی ازم برنمیاد چون پیچیده میشه و فقط خودتون میتونید تغییر ایجاد کنید تووش

 

چشم حتما در بروز رسانی اضافه میکنیم

 

 

 

سلامت باشید ممنون از محبت شما


logo-samandehi