مشکل با header بعد از آپلود در هاست
سلام وقتی من سایت رو آپلود کردم یکی از فایل ها که بعد از عمل خاصی باید header میکرد و میرفت یه صفحه دیگه با پیغام زیر روبرو شدم
- Warning: Cannot modify header information - headers already sent by
این مشکل من رو هم خیلی اذیت کرده بود . چند جا برای من این مشکل به وجود اومده بود
- در هنگام استفاده از کد انتقال به صفحه header location
- در هنگام استفاده از سشن ها
اول از همه کاری که باید بکنید اینه که فایل هاتون رو با کد گذاری utf8 without BOM ذخیره کنید که تو nodepad++ میتونید این گزینه رو پیدا کنید و تو خود phpstorm یا intellij idea هم اگه همون ut8 رو بزنید خودش به صورت without BOM ذخیره میکنه. اگه اینکار رو کردید و باز جواب نداد این روشی رو که برای دو حالت بالا رو میگم انجام بدید حتما جواب میگیرید.
header('Location: http://webkral.ir ' ); // به جای این از تابعی که نوشتم استفاده کنید . همه حا هم جواب میده.
function Redirect($url) {
@header('Location: ' . $url);
exit('<meta http-equiv="Refresh" content="0; url=' . $url . '" />');
} // کافیه فقط این تابع رو فراخوانی کنید و ادرسی که میخواید به اون صفحه ری دایرکت بشه رو بدید به عنوان ورودی
مورد بعدی زمانی هست که از سشن ها به صورت غیر یکپارچه استفاده میکنید . (منظورم اینه که مثل ساختار mvc خودمون نیست و ساختار برنامه به شکل ساده و قاطی پاتیه) اون موقع هم باز همین ارور رو میده اونم من یه روش عجیبی کشف کردم که جواب میده تو هاست ها
session_start(); // به جای استفاده از این از سه خط پایین استفاده کن
<?php session_start(); ?>
<?php
session_start();
//statments ...
با این روش مشکل سشن هم حل میشه دوستان خورده نگیرن به این روش که روش ها و کد های بینهایتی رو تست کردم نشد که نشد ساده ترین روش این بود
امیدوارم این توضیحات تونسته باشه مشکلتون رو حل کنه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .