PDA

View Full Version : سوال: نحوه نمایش اطلاعات کاربر لاگین کرده در سایت



sadegh3321
شنبه 27 اسفند 1390, 15:00 عصر
سلام
من چطوری می تونم اطلاعات کاربری را که به وسیله صفحه لاگین وارد شده و یک جلسه جدید به نام این کاربر آغاز شده را دوباره بازیابی کنم
یعنی
کاربری که لاگین کرده توی یک صفحه مثلا صفحه پروفایل اطلاعات اون رو نمایش بدم
چطور امکان داره
از چه راهی باید این را انجام بدم

hightech
شنبه 27 اسفند 1390, 15:06 عصر
موقعی که میخواید username و password رو چک کنید، همون وقت اگر کاربر مجاز بود شناسه یا سایر مشخصات اون کاربر رو در یک متغیر session قرار بدید
اینطور همیشه در دسترس شما هست

mosi2007
شنبه 27 اسفند 1390, 15:07 عصر
باید یه mysql_query بگیرید و اطلاعاتو از تو table بخونید و چاپ کنید

sadegh3321
شنبه 27 اسفند 1390, 15:52 عصر
<?php

session_start();
include('../include/config.php');

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT `password` , `name` , `lastname` , `username` , `email` , `age` FROM `users` WHERE `username` = '$username';";
$result = mysql_query($sql, $dbconn) or die(mysql_error());
$numresult = mysql_num_rows($result);
if ( $numresult = 1 ) {
$password2 = mysql_result($result , 0);
if ( $password == $password2 ){
$_SESSION['username'] = '$username';
$_SESSION['name'] = '$name';
$_SESSION['lastname'] = '$lastname';
$_SESSION['user'] = true ;
$sql = "SELECT `name` , `lastname` , `username` , `password` , `email` , `age` FROM `users` WHERE `username` = '$username';";
$result = mysql_query($sql , $dbconn) or die(mysql_error());
$resultuser = mysql_fetch_assoc($result);

header("location: showinformation.php");
exit();
}
}


?>
<p> wrong! </p>
<p> the username or password is wrong. </p>

این صفحه پردازش لاگین من هست حالا باید چه کاری را انجام دهم
یک صفحه دیگر دارم به نام showinformation.php می خوام اطلاعات توی اون صفحه نمایش داده یشه
یعنی هر جا که خواستم اطلاعان رو نشون بدم در دسترس باشه..
ممنون از جوابتون

Reza1607
شنبه 27 اسفند 1390, 22:06 عصر
دوست عزيز اين كد رو تست كنيد


<?php

session_start();
include('../include/config.php');

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT `password` , `name` , `lastname` , `username` , `email` , `age` FROM `users` WHERE `username` = '$username';";
$result = mysql_query($sql, $dbconn) or die(mysql_error());
$numresult = mysql_num_rows($result);
if ( $numresult == 1 ) {
$password2 = mysql_result($result , 0);
if ( $password == $password2 ){
$_SESSION['username'] = $username;
$_SESSION['name'] = $name;
$_SESSION['lastname'] = $lastname;
$_SESSION['user'] = true ;
header("location: showinformation.php");
exit();
}
}


?>
<p> wrong! </p>
<p> the username or password is wrong. </p>


چند تا نكته كه لازم دونستم بگم
1) شما ظاهرا رمز رو به صورت خام در ديتابيس ذخيره كرديد كه اين كارتون اشكال امنيتي داره حداقل يكبار رمز رو هش كنيد
2)براي بررسي تساوي دو مقدار از == استفاده كنيد نه از = ( البته مي تونيد به جاي == از === هم استفاده كنيد كه من پيشنهاد مي كنم از === استفاده كنيد)
3) متغيير هاي داخل تك كوتيشن پردازش نمي شه ( يعني مقدار متغيير چاپ نميشه بلكه همون نام متغيير چاپ ميشه )

و اين كه من دليل كوئري دومتون رو نفهميدم:متفکر:

mostafa272
یک شنبه 28 اسفند 1390, 15:02 عصر
این رو فک کنم دوستان نگفتن ولی لازم بدونید که برای اینکه فقط کاربرای لاگین کرده اجازه دسترسی داشته باشند باید اول صفحه این کنترل رو با سشنی که برای این کار درنظر گرفتی انجام بدی.یعنی مثلا اگر اینجا اگر با session یوزر می خوای ایک کار رو بکنی کد رو اینطور بنویس:


session_start();

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

تو صفحه لاگ اوت هم با session_destroy() می تونی جلسه رو از بین ببری!