PDA

View Full Version : سوال: ذخیره id یوزر در سشن



hashem64
چهارشنبه 19 فروردین 1394, 23:49 عصر
سلام چه طوری من میتونم آی دی کاربری که لاگین کرده را در سشن ذخیره کنم و از اطلاعاتش استفاده کنم ؟

aliphp1
پنج شنبه 20 فروردین 1394, 00:36 صبح
اول همه صفحاتی که میخوای از سشن استفاده کنی سشن رو استارت میکنی
بعد بادستور زیر بعد از لاگین موفق

$_SESSION['id_holder']=$userid;
آی دی کاربر رو توی سشن میریزی و با دستور زیر هم هر جا لازم داشتی از سشن میگیری و استفاده می کنی

$userid=$_SESSION['id_holder']

hashem64
پنج شنبه 20 فروردین 1394, 00:54 صبح
اول همه صفحاتی که میخوای از سشن استفاده کنی سشن رو استارت میکنی
بعد بادستور زیر بعد از لاگین موفق

$_SESSION['id_holder']=$userid;
آی دی کاربر رو توی سشن میریزی و با دستور زیر هم هر جا لازم داشتی از سشن میگیری و استفاده می کنی

$userid=$_SESSION['id_holder']


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

دقیقا متوجه نشدم .

j_naroogha@yahoo.com
پنج شنبه 20 فروردین 1394, 08:36 صبح
خب وقتی لاگین کرده یه آیدی بهت داده که لاگینش رو چک کردی.... در صورت لاگین موفق همین ایدی رو به صورتی که دوستمون گفتن بریز داخل یه متغیر سشن
البته session_start هم اول کار انجام بدی

aliphp1
پنج شنبه 20 فروردین 1394, 10:34 صبح
ببینید اینطوری که مشخصه شما اطلاعات تون یک مقداری کم هست نیاز هست که بیشتر مطالعه کنید اما بازم من یه توضیح کلی میدم
کاربری که میخواد وارد سایت بشه خودش نام کاربری و رمز رو وارد میکنه
شما باید چک کنید که کاربری با این نام کاربری و پسورد وجود داره اگه نداشت که پیغام مناسب میدید و تمام
اگر اطلاعاتش درست بود این شما دستور

$_SESSION['id_holder']=$userid;
رو میزنید تا نام کاربری کاربر و یا اگر خواستید آی دی باشه از دیتابیس آی دی رو سلکت می کنید (با استفاده از نام کاربری ) و اون رو میریزید توی سشن
وقتی این سشن پر شد الان کاربر شما لاگین کرده حالا شما باید توی همه صفحات چک کنید که آیا این سشن وجود داره یا نه
اگر وجود داشت که مقدار سشن که همون نام کاربری و یا آی دی کاربر هست رو میگیرید (اون کد دومی که نوشتم در پست بالا)
و برای سایر عملیات استفاده می کنید اگر هم دیدید توی صفحات دیگه سشن مورد نظر ست نشده کاربر رو به صفحه ورود هدایت می کنید و پیغام میدید که باید لاگین کنه
توضیحات من بسیار ساده و ابتدایی بود اگر متوجه نشدید بهتره یک مقدار بیشتر مطالعه کنید
ضمنا برای لاگین حتما غیر از اون سشن چیز های دیگه ای هم استفاده کنید تا مشکل امنیتی نداشته باشید ولی در ساده ترین حالت همین هست و بعدا که تجربه تون بالاتر رفت خودتون متوجه میشید که باید چیکار کنید
موفق باشید

aliphp1
پنج شنبه 20 فروردین 1394, 10:37 صبح
یه چیز دیگه : ببینید کلا سشن یک متغییر سراسری هست که شما در همه صفحات سایت به اون دسترسی دارید البته اگر در اون صفحه session_start کرده باشید و این دستور رو هم بید بالای صفحه استفاده کنید
و وقتی که کاربر بین صفحات جابجا میشه فقط شما می تونید از سشن بفهمید که همون کاربر هست یا نه (البته راه های دیگه ای هم داره ولی راحت ترین و استاندارد ترینش استفاده از سشن هست )

hashem64
پنج شنبه 20 فروردین 1394, 12:26 عصر
درسته ببنید الان بنده بعد از تائید لاگین و وارد شدن این کد را نوشتم .

$result = mysql_query("SELECT * FROM `user` WHERE `username` = '$user' and password='$pass'");
$row = mysql_fetch_assoc($result);
$id = $row['user_id'];
$pr = $row['user_prm'];
session_start();
$_SESSION['user_id']=$id;
$_SESSION['user_prm']=$pr;


سوال بنده اینه که راه اصلیش اینه یا خیز چون من با این کار تونستم اون چیزی را که میخواستم در بیارم .


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


<?php
session_start();
include '../conect.php';
$iduser=$_SESSION['user_id'];
$level=$_SESSION['user_prm'];
if($level==1)
{echo "heloo admin";}
else
{ echo " لطفا لاگین کنید ";}

?>

ولی وقتی لوگ اوت میکنم دو تا ارور زیر را میده

Notice: Undefined index: user_id in C:\xampp\htdocs\admin\index.php on line 4

Notice: Undefined index: user_prm in C:\xampp\htdocs\admin\index.php on line 5
لطفا لاگین کنید

احتمال میدم چون سشن خالی شده این دو خطا را میده میشه راهنماییم کنید . ممممممننونم

phpdev
پنج شنبه 20 فروردین 1394, 13:19 عصر
چرا دوباره سشن رو استارت زدی مگه اون صفحه سلکت شما اینکلود نشده توی ایندکس ؟! تازه سشن هم باید قبل از هرگونه کدی باشه . خیلی مهمه:لبخندساده:

hashem64
پنج شنبه 20 فروردین 1394, 16:00 عصر
چرا دوباره سشن رو استارت زدی مگه اون صفحه سلکت شما اینکلود نشده توی ایندکس ؟! تازه سشن هم باید قبل از هرگونه کدی باشه . خیلی مهمه:لبخندساده:

خیر اینکلود نشده

hashem64
پنج شنبه 20 فروردین 1394, 18:19 عصر
آپ س

s.hoseinpoor
پنج شنبه 20 فروردین 1394, 18:28 عصر
شما لازم نیست بعد از لاگین نام کاربری و ... رو بگیرین! شما در صفحه ورود وقتی اومدین و از دیتابیس بررسی کردین که کاربر وجود داره در همین موقع باید نام کاربر ی وسایر اطلاعاتی که لازمه رو در سشن بذارید. و سیپس هدایت به صفحه جدید.
در صفحه جدید اول از همه یه کد بزنید که ایا سشن userid ست شده اس؟ یا نه؟ به همین راحتی!

شما کد مربوط به لوگ اوت رو نذاشتید! ولی در اونجا هم باید اول سشن رو استارت کنید بعد unset کنیدش

s.hoseinpoor
پنج شنبه 20 فروردین 1394, 18:31 عصر
اینم کد:


function LogOut()
{
session_start();
if(isset($_SESSION['logged']))
{
unset($_SESSION['logged']);
header("Location: loginForm.php");
}
else echo "sesion set nashode";
}