بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تفاوت در هاست و local

مدیریت گفتگو
Lnaz 10 سال پیش
آخرین تغییر: 10 سال پیش

من رو local اجرا میگیرم و همه چی درسته و با موفقیت لاگین میشه  

ولی توی هاستم  که لاگین میشم اصلا به صفحه خوشامد گویی نمیره و با وجود اینکه پیغام ورود موفق میده به عنوان کاربر مهمان میشناسه فقط  !!  

 

 

نظرات

کاشی زاده 10 سال پیش
مطمئنا نباید تفاوتی در لوکال و سرور باشه چون سورس یکی هست احتمالا جایی از کدتون ایراد داره .

پاسخ‌ها 12

ABOLFAZL 10 سال پیش

تو فیلم های آموزشی استاد هم همین اتفاق میافته

ینی موقعی ک استاد هم این پروژه رو انجام میده باوجود نشان دادن پیام موفقیت در ورود به عنوان کاربر میهمان وارد میشه؟؟

اگه این اتفاق نمی افته یکاری بکنین شما یک بار از سورس کد استاد استفاده کنین و بعد بررسی کنین و ببینین کجای کدتون مشکل داره (نظر شخصی)

نظرات

Lnaz 10 سال پیش

نه کد استاد که رو هاست گذاشت درست بوده . بله ممنون همین کارو میکنم .

نظرات

Lnaz 10 سال پیش

!!!!!!!!!!!!!!!!!!!!!!!!!
پروژه استاد، بدونه حتی یه نقطه کم کردن آپ کردم !!!!

و باز هم در local کاربر به خوبی وارد میشه و رکورد هارو میاره !!!! 

ولی در host باوجود دادن پیغام ورود شما را تبریک می گوییم ورود به صفحه اصلی وقتی روی ورود به صفحه اصلی میزنم . میگه کاربر مهمان برای استفاده کامل از سیستم، نیازمند ثبت نام در سایت می باشید !

نظرات

mhpakdel 10 سال پیش
احتمالا توی رندر صفحه ی اصلی یا قبل ترش Session پاک میشن. مخصوصا در رندر صفحه اصلی. ببینید آیا کدی ننوشتید که Session رو دیستوری (destory) کنه. اگه به قول خودتون تمام کدها رو واقعا درست نوشتید پس احتمال میره که مرورگر شما کوکی ها رو نگه نمیداره.
Lnaz 10 سال پیش

حتی جای دستورات با هم عوض کردم و چون isGest مقدار 1 داشت  و با وجود رفتن به صفحه home باز session خالی بود !!!!!!!!!!

 

نظرات

mhpakdel 10 سال پیش
یه چیزی میگم امتحان کنید. بعد از این که کاربر با موفقیت وارد شد و پیغام "ورود شما را تبریک می گوییم ورود به صفحه اصلی" رو مشاهده کرد، شما از طریق یک تب دیگه توی مرورگر صفحه home رو لود کنید. اگه باز Session پاک شده بود، پس از خود صفحه ی home هست و اگر درست بود و Note ها رو نشون می داد، پس از لینکی هست که روش کلیک می کنید و بعد وارد صفحه اصلی میشین.
reza piry ghadim 10 سال پیش
این مشکل قطعا از ست نشدن سشن ها هست . شما از $_SESSION یه dump یا همون print_r بگیرید ببینید بهتون ارایه خالی میده یا نه . که به احتمال زیاد با توجه به توضیحاتتون ارایه خالی بهتون چاپ کنه . این کار رو بکنید و نتیجه رو بگید
Lnaz 10 سال پیش

 بله درسته بعد از ورود و دادن پیام موفقیت ، با زدن روی ورود به صفحه اصلی سشن خالیه !!!

 

نظرات

Lnaz 10 سال پیش

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

و فقط هم توی هاست این مشکل پیش میاد !!!!

نظرات

Mr Mehdi 10 سال پیش

من مشکلی شبیه به مشکل شما داشتم که البته تفاوتش این بود که با بستن مرورگر سشن از بین میرفت که با کد زیر مشکل حل شد. یکی از خطها برای تغییر عمر سشن هست و اون یکی مربوط به عمر کوکی (که البته مشکل من از عمر کوکی بود):

ini_set('session.gc_maxlifetime', 3*30*24*60*60);
session_set_cookie_params(3*30*24*60*60);

این کد رو توی فایل Index استفاده کنید شاید مشکل شما هم مثل مشکل من بود.

نظرات

Lnaz 10 سال پیش

صفحه 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');
?>

نظرات

Lnaz 10 سال پیش
فکر کنم صفحه های مورد نیازو گذاشتم
mhpakdel 10 سال پیش
من با کدهای خودم که هم روی لوکال جواب داده و هم روی هاست آنلاین، چک کردم تفاوتی در نوشتار کدهای شما ندیدم. البته این کار به قول دوستمون آقا مهدی کار سختیه. ولی اگه میتونید کل پوشه پروژه رو زیپ کنید و جایی آپلود کنید تا بررسی کنیم. البته اگه فرصت کنم یا دوستان زودتر فرصت کنن. در ضمن تاکید می کنم پسوردها و نام هاست در فایل کانفیگ رو حتما پاک کنید و بعد زیپ کنید و بفرستید.
Lnaz 10 سال پیش
باشه،ولی پروژم نیاز به آپ نداره فک کنم ، چون بعد فرمایش شما همون پروژه استاد آپ کردم فقط یوزر و پسو عوض کردم . حالا یه نگاه بندازید. :( لینک
Mr Mehdi 10 سال پیش
شما بهتره کاری که من می‌گم رو بکنید تا بهفمید ایراد از کده یا سرور اگه از سرور باشه و با کدی که من دادم حل نشده ایراد از محل ذخیره شدن سشن هست که با فانکشنی که بهتون دادم میشه فهمید چه مشکلی وجود داره
Lnaz 10 سال پیش
که توی فایل Index اول یک سشن تنظیم کنید این یعنی چیکار کنم ؟
Lnaz 10 سال پیش
session_save_path ([ string $path ]); مسیرشو کجا بدم خب !!!!
Mr Mehdi 10 سال پیش

بهتره اول بفهمید که مشکل از هاست هست یا کد. بررسی کد کار سختیه به نظر من منطقی نیست. کاری که من پیشنهاد میکنم اینه که توی فایل Index اول یک سشن تنظیم کنید و بعد از فانکشن exit استفاده کنید تا کد ادامه پیدا نکنه.

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

نظرات

Lnaz 10 سال پیش

این کد نوشتم در 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

نظرات

Mr Mehdi 10 سال پیش
احتمال زیاد مشکل اینه که سشن اصلا ذخیره نمیشه که استفاده کنید. اگه از سرویس اشتراکی استفاده می‌کنید باید با پشتیبانی هاست تماس بگیرید و مشکلتون رو بهشون بگید تا اونا پیگیری کنند. از این قسمت به بعد دیگه دست شما نیست.
Lnaz 10 سال پیش
دقیقا به همین دلیل بود و با تغییر هاست مشکلم برطرف شد .
w3b.programm3r 10 سال پیش

اصلا نیازی به تغییر هاست نیست

علت این که Session ها به درستی کار نمیکردن کانفیگ سرور بوده

شما اگه از دستور Header("Location:page.php"); استفاده کنید با یک پیغام مبنی بر این که تغییر header امکان پذیر نیست مواجه میشید.

حالا راه رفع این پیغام رو میتونید با استفاده از دستور

ob_clean(); و ob_start  در ابتدا صفحه  و استفاده از دستور ob_end_flush و ob_get_clean قبل از ساخت session

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

 

نظرات

Lnaz 10 سال پیش

خیلی ممنونم از راهنماییتون . مشکلم برطرف شد . سپاس  از وقتی که گذاشتید. 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .