PDA

View Full Version : مبتدی: مشکل با session



mostafa272
جمعه 26 اسفند 1390, 11:23 صبح
با سلام

من تو صفحاتی که مربوط به اعضای سایت هست به اول صفحات کد زیر رو اضافه کردم ولی وقتی لاگین می کنم دوباره بر می گردد به صفحه لاگین!لطفا بگید اشکال از چیه؟
با تشکر


<?php session_start();
if(isset($_SESSION['m'])){
$user=$_SESSION['m'];
}
else{
header('Location:login.php');
}

?>

MMSHFE
جمعه 26 اسفند 1390, 11:27 صبح
خوب شما توی صفحه مقصد فایل login.php درصورتی که کاربر نام کاربری و رمز عبور رو درست واردکرده باشه، چه کدی اجرا میکنید؟ لطفاً کد کامل رو بگذارین. تا وقتی که از همه شرایط کارکرد کد شما اطلاع نداشته باشیم، صرفاً با داشتن یک تکه کد کوتاه نمیشه راهنمایی دقیقی ارائه بدیم. موفق باشید.

khanlo.javid
جمعه 26 اسفند 1390, 11:35 صبح
دوست گرامی کد صفحه ی loginــنو بزار تا بررسی کنیم چون تو صفحه لاگینت session مربوط به کاربر هات پر نمیشن.


موفق باشید.

mostafa272
جمعه 26 اسفند 1390, 11:38 صبح
این کد قسمتیه که به سشن مقدار میدم.تابع checklogin هم فقط یک دستور select داره که یوزرو پسورد رو چک میکنه و اگر وجودد داشت true وگرنه false بر می گردونه.

if(checklogin())
{
$_SESSION['m']=$user;
header('Location:mixApartment.php');
}
else
{?><center><b><div style="color:#FF3300"><?php
echo ("اطلاعات وارد شده صحيح نمي باشد");
echo('<br/><br/>');
?></div></b></center>
<?php
}

mostafa272
جمعه 26 اسفند 1390, 11:39 صبح
اول این صفحه هم session_start() رو نوشتم و متغیر user هم تو تابع checklogin مقدار می گیره از ورودی با $_POST['user']

mostafa272
جمعه 26 اسفند 1390, 11:51 صبح
آقا $_POST['user']مستقیم ریختم تو سشن درست شد ولی مگه نباید متغیر تو اون تابع مقداری که میگیره رو نگه داره؟

khanlo.javid
جمعه 26 اسفند 1390, 11:56 صبح
مطمئنی تو اتصال پایگاه دادت مشکلی وجود نداره؟؟ منظورم تو چک کردن یوزر و پسوورد کاربره.

alismith
جمعه 26 اسفند 1390, 12:25 عصر
سلام
بجای این شرط :


if(isset($_SESSION['m']))

یک session برای وضعیت login کاربر بذار و اگه login کرد با True مقدار بده و در شرط صفحه مورد نظر این رو بنویس :


<?php
session_start();

if($_SESSION['login']==true && !empty($_SESSION['login'])){
$user=$_SESSION['m'];
}else{
header('Location:login.php');
}

?>

شاید مشکل حل شد!


موفق باشید

Reza1607
جمعه 26 اسفند 1390, 12:48 عصر
آقا $_POST['user']مستقیم ریختم تو سشن درست شد ولی مگه نباید متغیر تو اون تابع مقداری که میگیره رو نگه داره؟

دوست عزيز متغيير هاي مقدارشون رو در فضاي ديد خودشون نگه مي دارن يعني اينكه شما زماني كه يك متغيير رو داخل يك تابع مقدار دهي مي كنيد اين مقدار تنها در اون تابع درست هست و خارج از تابع اون مقدار وجود نداره به اين تكه كد نگاه كنيد


$a=10;
function func1()
{
$a=15;
echo $a;
}
func1();
echo '<br /> '.$a;


خروجي اين كد به اين صورت هست

15
10

يعني مقدار متغيير $a در خارج از تابع 10 هست ولي چون در تابع به اون مقدار 15 رو دادين در تابع مقدار 15 رو بر مي گردونه
به عبارتي اگه در تابع روي مقدار يك متغيير تغييري ايجاد بشه فقط در اون تابع اين تغيير انجام ميشه

البته روشهايي هم وجود داره كه بشه باهاش مقدار يك متغيير رو داخل تابع تغيير داد ( global )

اميدوارم متوجه منظور حرف هام شده باشيد