PDA

View Full Version : غیر فعال بودن session در سایت



imanvax
شنبه 25 آذر 1391, 10:40 صبح
سلام ودرود
سایتی طراحی کردیم که دارای صفحه login هم هست!
اما بالاخره فهمیدیم که سایت روی سیستم لوکال کار میکند اما وقتی upload شد روی سرور اصلی نمی توان وارد سایت شد .برای همین وقتي در آپاجي هستم همه چيز درست است اما وقتي سايت آپلود شد session كار نمي كند
كدها هم به صورت زيز است البته کدها به سبک استاد کرامتی بوده و صحت آنها چک شده از لحاظ منطقی همه چیز درست است تنظیماتی نیاز هست؟

کدهای لاگ این

require 'functions.php';
session_start();
include 'header.php';

$message = '';
if(isset($_POST['txtUsername']))
{


$loginResult = checkUserAdmin($_POST['txtUsername'], $_POST['txtPassword']);
$test=$loginResult[3];
if($loginResult)
{
/* if($loginResult[3]==0)
$message='پیام سیستم :<br /> این حساب کاربری در حال حاضر غیر فعال می باشد' ;

else
{ */
$message = 'پیام سیستم: <br /> شما با موفقیت وارد سیستم شدید';
$_SESSION['username']=$loginResult[0];
$_SESSION['userid']=$loginResult[1];
$_SESSION['userroles']=$loginResult[2];
if($loginResult[2]==1)header('location:admin.php');
else if($loginResult[2]==2)
header('location:news.php');
// }

}
else
$message = 'پیام سیستم: <br /> رمز عبور یا نام کاربری صحیح نمی باشد';

}
echo<<<_END



:


كد در ادمين :



session_start();


if(!isset($_SESSION['userid']) OR $_SESSION['userid']!=1 )
header('location:message.php?messageID=1');
require 'functions.php';
include 'header.php';

echo<<<_END


كد هاي فانكشن :



function checkUserAdmin($username,$password)
{
ConnectToDb();
$password=md5($password);
$resultnt = mysql_query("SELECT *
FROM `users`
WHERE `username` = '$username' AND `password` = '$password' ");

if(mysql_num_rows($resultnt) > 0)


$nt=array(mysql_result($resultnt,0,'username'),mys ql_result($result,0,'id'),mysql_result($resultnt,0 ,'roles_id'),mysql_result($resultnt,0,'active'));
return $nt;
return false;
}

MMSHFE
شنبه 25 آذر 1391, 20:21 عصر
اول کدهاتون این کد رو بگذارین (قبل از session_start) :

error_reporting(E_ALL);
ببینید چی چاپ میشه. اگه دیدین خطای Cannot modify headers - data already sent اومد، چک کنید ببینید همه فایلها به درستی با کدگذاری UTF-8 without BOM ذخیره شده یا نه. اگه نشده بود، اصلاح کنید و اگه همه فایلها درست بود ولی بازهم خطا اومد، باید همه کدهاتون رو اصلاح کنید و ابتدای همه کدها (اولین خط هر فایل) دستور ;()ob_start و انتهای همه کدها (آخرین خط هر فایل) دستور ;()ob_end_flush رو بنویسید.

Keramatifar
دوشنبه 04 دی 1391, 11:30 صبح
احتمالا باید مشکلی در استارت شدن Session داشته باشید
1- کاراکترهای ANSI رو در ابتدای فایل (که هنگام تبدیل به UTF بوجود می آیند) چک کنید
2- استارت شدن Session در فایل دیگری که include شده است را چک کنید
3- این کدها استاندارد کلاس PHP مقدماتی (http://keramatifar.ir/ShowCourse.php?Name=php&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20PHP%20%D9%8 5%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C) من است و الزاما استاندارد کد نویسی من نیست، بنده معمولا با استاندارد کلاس PHP پیشرفته (http://keramatifar.ir/ShowCourse.php?Name=eshop&title=%D8%A2%D9%85%D9%88%D8%B2%D8%B4%20PHP%20%D9%B E%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87) و فریم ورکی که طراحی کردم (بصورت OOP, MVC) کد نویسی می کنم