مشکل کار نکردن session در PHP برروی هاست

یکی از مشکلات بزرگی که توی طراحی سایت برامون پیش میاد اینه که سایت برروی سیستم ما (لوکال) به خوبی عمل میکنه و هیچ مشکلی نداره ولی به محض اینکه  روی هاست اپلود می شه، شاهد  یک سری مشکلات در سایت میشیم

این مشکلات  در بعضی سرور ها وجود داره و یکی از بدترین هاش اینه که session  استارت نمیشه ، و یا در یک صفحه استارت میشه در صفحه بعد عمل نمیکنه ، این اتفاق حتی در بعضی از نسخه های وب سرور Xamp  هم دیده میشه

رفع این مشکل راه حل خیلی ساده ای داره ، اما چون شاهد هیچ اروری در صفحه نیستیم ، ممکنه ساعت ها اذیتمون کنه

اولین و مهمتری قانونی که برای session  میدونیم اینه که session_start حتما باید اولین کد ما در صفحه باشه ، حتی قبل از شروع تگ html

<?php
session_start();
?>
<!doctype html>
<html>
 <head>
 .................

حتی بهتره بعد از <?php  هیچ فاصله ای قرار ندیم.

و اما اصل مشکل که در بعضی از  وب سرور ها به  Session  اجازه استارت نمیده تداخل ان با سیستم utf-8 است ، برای اثبات این قضیه (اگه سرورتون مشکل ارایه شده را داره) میتونید سیستم اینکودینگ utf-8 رو حذف کنید و صفحه رو اجرا کنید ، میبینید که session  در هر جای صفحه باشه به خوبی کار میکنه.

اگر شما صفحه ای رو include  کرده باشید (مثلا هدر) مطمعن شوید که استارت  session  دو بار فراخوانی نشود ، در غیر اینصورت احتمالا شاهد عمل نکردن session  خواهید بود.

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

افزودن دیدگاه جدید

showTextArticle

  • تگ‌های HTML مجاز نیستند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.

Plain text

  • تگ‌های HTML مجاز نیستند.
  • نشانی صفحه‌ها وب و پست الکترونیک بصورت خودکار به پیوند تبدیل می‌شوند.
  • خطوط و پاراگراف‌ها بطور خودکار اعمال می‌شوند.