تفاوت در هاست و local
من رو local اجرا میگیرم و همه چی درسته و با موفقیت لاگین میشه 
ولی توی هاستم که لاگین میشم اصلا به صفحه خوشامد گویی نمیره و با وجود اینکه پیغام ورود موفق میده به عنوان کاربر مهمان میشناسه فقط !! 
تو فیلم های آموزشی استاد هم همین اتفاق میافته
ینی موقعی ک استاد هم این پروژه رو انجام میده باوجود نشان دادن پیام موفقیت در ورود به عنوان کاربر میهمان وارد میشه؟؟
اگه این اتفاق نمی افته یکاری بکنین شما یک بار از سورس کد استاد استفاده کنین و بعد بررسی کنین و ببینین کجای کدتون مشکل داره (نظر شخصی)
نه کد استاد که رو هاست گذاشت درست بوده . بله ممنون همین کارو میکنم .
!!!!!!!!!!!!!!!!!!!!!!!!!
پروژه استاد، بدونه حتی یه نقطه کم کردن آپ کردم !!!!
و باز هم در local کاربر به خوبی وارد میشه و رکورد هارو میاره !!!!
ولی در host باوجود دادن پیغام ورود شما را تبریک می گوییم ورود به صفحه اصلی وقتی روی ورود به صفحه اصلی میزنم . میگه کاربر مهمان برای استفاده کامل از سیستم، نیازمند ثبت نام در سایت می باشید !
حتی جای دستورات با هم عوض کردم و چون isGest مقدار 1 داشت و با وجود رفتن به صفحه home باز session خالی بود !!!!!!!!!!
بله درسته بعد از ورود و دادن پیام موفقیت ، با زدن روی ورود به صفحه اصلی سشن خالیه !!!

جالب اینجاست که وقتی ورود موفقیت امیز بوده SESSION پره و وقتی میره به صفحه home خالی میشه !!!!
و فقط هم توی هاست این مشکل پیش میاد !!!!

من مشکلی شبیه به مشکل شما داشتم که البته تفاوتش این بود که با بستن مرورگر سشن از بین میرفت که با کد زیر مشکل حل شد. یکی از خطها برای تغییر عمر سشن هست و اون یکی مربوط به عمر کوکی (که البته مشکل من از عمر کوکی بود):
ini_set('session.gc_maxlifetime', 3*30*24*60*60);
session_set_cookie_params(3*30*24*60*60);
این کد رو توی فایل Index استفاده کنید شاید مشکل شما هم مثل مشکل من بود.
صفحه LOGIN
<?
if (isset($_SESSION['email'])){
$message = _already_logged_in . ' ' . $_SESSION['email'];
exit;
}
?>
<div class="tac">
<img src="<?=baseUrl()?>/image/notes.png"><br><br>
<form action="<?=baseUrl()?>/user/login" method="post">
<input type="text" class="ltr" placeholder="<?=_ph_email?>" name="email"><br>
<br>
<input type="password" class="ltr" placeholder="<?=_ph_password?>" name="password"><br>
<br>
<br>
<button type="submit" class="btn-blue"><?=_btn_login?></button>
</form>
<br>
<br>
<br>
<a href="<?=baseUrl()?>/user/register" class="link-gray"><?=_btn_signup?></a>
</div>
صفحه success
<div class="tac">
<br>
<img src="<?=baseUrl()?>/image/success.png">
<br>
<br>
<div><?=$message?></div>
</div>
پیام داخل messege
define('_login_welcome', 'ورود شما را تبریک می گوییم <a href="' . baseUrl() . '/page/home">ورود به صفحه اصلی</a>');
صفحه home
<div id="header-wrapper">
<div id="header-top-right">
<? if ($isGuest) { ?>
<img class="profile-image" src="<?=baseUrl()?>/image/empty-profile-24.png">
<span style="margin-right: 5px"><?=_header_guest?> <?=_header_welcome?></span>
<a style="margin-right: 5px" class="btn-blue" href="<?=fullBaseUrl()?>/user/login"><?=_btn_login?></a>
<? } else { ?>
<img class="profile-image" src="<?=baseUrl()?>/image/empty-profile-24.png">
<span style="margin-right: 5px"><?=$_SESSION['email']?> <?=_header_welcome?></span>
<a style="margin-right: 5px" class="btn-blue" href="<?=fullBaseUrl()?>/user/logout"><?=_btn_logout?></a>
<? } ?>
</div>
</div>
<div id="content">
<? if ($isGuest) { ?>
<div class="tac lf important-color m15tb">
<span>برای استفاده کامل از سیستم، نیازمند ثبت نام در سایت می باشید</span>
</div>
<? } else { ?>
<ul class="todo-entry">
<li>انجام</li>
<li>حذف</li>
<li>عنوان</li>
<li>توضیحات</li>
<li>زمان وقوع</li>
</ul>
<? if ($records == null){ $records = array(); } ?>
<? foreach ($records as $record){
if ($record['isDone']){
$doneClass = "done";
} else {
$doneClass = "pending";
}
?>
<ul class="todo-entry <?=$doneClass?>">
<li><span onclick="noteToggle(this, <?=$record['note_id']?>)" class="btn">*</span></li>
<li><span onclick="noteRemove(this, <?=$record['note_id']?>)" class="btn">-</span></li>
<li><?=$record['title']?></li>
<li><?=$record['description']?></li>
<li><?=$record['eventTime']?></li>
</ul>
<? } ?>
<br>
<br>
<div class="tal">
<a href="/notes-v2/note/submit" class="btn-blue">درج یادآور</a>
</div>
<? } ?>
</div>
<script>
function noteToggle(sender, noteId){
sender = $(sender);
var parent = sender.parentsUntil('.todo-entry').parent();
$.ajax('/notes-v2/note/toggle/' + noteId, {
type: 'post',
dataType: 'json',
success: function(data) {
if (parent.hasClass('done')){
parent.removeClass('done');
parent.addClass('pending');
} else {
parent.removeClass('pending');
parent.addClass('done');
}
}
});
}
function noteRemove(sender, noteId){
sender = $(sender);
var parent = sender.parentsUntil('.todo-entry').parent();
$.ajax('/notes-v2/note/remove/' + noteId, {
type: 'post',
dataType: 'json',
success: function(data) {
parent.remove();
}
});
}
</script>
اینم loader
<?
session_start();
date_default_timezone_set('Asia/Tehran');
global $config;
require_once(getcwd() . '/config.php');
require_once(getcwd() . '/system/core.php');
require_once(getcwd() . '/system/common.php');
require_once(getcwd() . '/system/db.php');
require_once(getcwd() . '/system/view.php');
require_once(getcwd() . '/locale/' . $config['lang'] . '.php');
?>
بهتره اول بفهمید که مشکل از هاست هست یا کد. بررسی کد کار سختیه به نظر من منطقی نیست. کاری که من پیشنهاد میکنم اینه که توی فایل Index اول یک سشن تنظیم کنید و بعد از فانکشن exit استفاده کنید تا کد ادامه پیدا نکنه.
صفحه رو ریلود کنید. حالا کد تنظیم سشن رو حذف کنید و به جاش کد پرینت سشن رو بذارید تا ببینید سشن هنوز تنظیمه یا نه.
این کد نوشتم در index
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo '<hr><center><b>session_save_path:</b> ', session_save_path(), '</center><hr>';
echo '<hr><center><b>open_basedir:</b> ', ini_get('open_basedir'), '</center><hr>';
phpinfo();
exit;
خروجی مسیر خالیه !! session_save_path

Warning هم که میده اینه !!!
Warning: Unknown: open(/tmp/sess_12710v3nqle01fvsifobhefru5, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is
correct () in Unknown on line 0
اصلا نیازی به تغییر هاست نیست
علت این که Session ها به درستی کار نمیکردن کانفیگ سرور بوده
شما اگه از دستور Header("Location:page.php"); استفاده کنید با یک پیغام مبنی بر این که تغییر header امکان پذیر نیست مواجه میشید.
حالا راه رفع این پیغام رو میتونید با استفاده از دستور
ob_clean(); و ob_start در ابتدا صفحه و استفاده از دستور ob_end_flush و ob_get_clean قبل از ساخت session
با استفاده از دستورات بالا مشکلتون حل میشد.
خیلی ممنونم از راهنماییتون . مشکلم برطرف شد . سپاس از وقتی که گذاشتید.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .