چطور یک پروفایل برای کاربر بسازم؟
سلام دوستان، من می خوام برای یک پروژم یک پیشخوان (DashBoard) برای کاربران عضو سایتم درست کنم، می خواستم بدونم من اگر پس از لاگین شدن کاربر، بیام اطلاعاتش رو به صورت Session بگیرم و اون ها رو توی یک صفحه قرار بدم، درسته؟ یا نه باید با یک فیلد مثل ID بیام اطلاعات کاربر رو بگیرم و به صفحاتی مثل پیشخوان اون رو پاس بدم
$_GET['id']
یا می شه بیشتر در مورد ساخت یک پروفایل یا یک پیشخوان برای کاربر توضیح بدین؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
یک سوال دیگه هم داشتم، من برای ورود کاربران سایت باید دو کپی از صفحه اول سایتم داشته باشم، یا نه با If چک کنم اگر Session وجود داشت، نام کاربر رو بنویسه و اگر نبود بنویسه ورود ؟(خودم از نوع دوم استفاده کردم ولی می خواستم ببینم اصولی هست یا نه)
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
سلام
کار خاصی نداره شما ایدی رو که با $_GET گرفتی، حالا بیا اطلاعاتی که توی پنل مورد نیاز هست رو بهش نشون بده ( از دیتابیس واکشی کن) .
اره درسته.
کلا تو برنامه نویسی اصولش تو یه چیز خلاصه می شه "کمترین حجم کد"
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
شاید اینطوری به مقصودت برسی
کد HTML:
@$getP = $_GET['p'];
$checkposts = $db->query ("select * from posts where `ID`= '$getP' ");
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
از هر دو عزیز ممنونم، دانیال اتفاقا در بعضی از قسمت ها از این روش استفاده کردم، ولی دوستان به نظرتون در مورد اولی بهتر نیست که از Session استفاده کنم، علاوه بر اینکه اطلاعات کاربر رو در همه صفحات سایت دارم و می تونم استفاده کنم، دیگر نیازی نیست که توی هر صفحه اطلاعات کاربر رو Fetch کنم و نمایش بدم.تازه مثلا وقتی بخوام کاربر وارد شد، به جای کلمه ورود و ثبت نام نام کاربر رو بنویسه و خوش آمد بگه هم باید از Session استفاده کنم، درسته؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
اینطوری ؟
خوش آمدید
<?php
$loged_in_uname = $_SESSION['loged_in_uname'];
$user = mysqli_query($con,"select * from users where `username` = '$loged_in_uname'");
$user = mysqli_fetch_assoc($user);
echo $user['name']; ?> عزیز !
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
آره تقریبا مثل همین چیزی که گفتی ولی کامل ترش که به صورت MVC و PDO هست اینطوری :
public static function Execute($query){
try{
$connection=self::gethandler();
$sqlStatement=$connection->query($query);
return true;}
catch( PDOException $pe){
self::close();
trigger_error($pe-getMessage(),E_USER_ERROR);//E_USER_ERROR
return false;}}
public static function logIn($userName,$passWord){
$sql='SELECT * FROM user WHERE firstName='."'$userName' and lastName='$passWord' ";
return $rslt=Database::FetchOne($sql);}}
$result=User::logIn($_POST['userName'],$_POST['passWord']);
if($result){
header('Location:Home.php');
session_start();
$_SESSION['userName']=$result['firstName'];
$_SESSION['passWord']=$result['lastName'];
$_SESSION['mail']=$result['mail'];
$_SESSION['ic']=$result['IC'];}
else{
header('Location:SignIn.html');}
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
و بعد در صفحه Home هم اینطوری نوشتم :
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Home</title>
</head>
<body>
<?php
session_start();
if(!isset($_SESSION['userName'])){
echo "<a href='SignIn.html' style='font-family:Segoe UI'>Log In</a><br />";
echo "<a href='AddUser.html' style='font-family:Segoe UI'>Register</a><br />";
echo "<a style='font-family:Segoe UI'>Please Enter to Use the WebSite Facilities ! Also You Can Register from the Link Above !</a>";}
else{
echo "<div style='font-family:Segoe UI'>Welcome ".$_SESSION['userName'].' '.$_SESSION['passWord']."</div>";
echo "<a href='logOut.php' style='font:12px Segoe UI'>Log Out</a>
<a href='SignIn.html' style='font:12px Segoe UI'>Sign In Again</a>
<a href='DashBoard.php' style='font:12px Segoe UI'>DashBoard</a>";}
?>
</body>
</html>
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
توی صفحه پروفایل هم به این صورت نوشتم :
<title>DashBoard</title>
<?php
session_start();
echo "<div style='font:12px Segoe UI'>".$_SESSION['userName']."</div>";
echo "<div style='font:12px Segoe UI'>".$_SESSION['passWord']."</div>";
echo "<div style='font:12px Segoe UI'>".$_SESSION['mail']."</div><br />";
echo "<a style='font:15px Segoe UI'>Your ID Code : ".$_SESSION['ic']."</a>";
?>
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
سلام
خیر.
با $_GET بهتره چون ما قراره ما با موتور های جستجو هم کار کنیم.
این رو هم در نظر نگیریم، کاربر میاد لینک یک پروفایل رو تو بوک مارک ذخیره می کنه دفعه ی بعد که میاد باز نمی شه، بنظر شما خوبه؟
این مورد رو هم در نظر نگیریم طرف هم زمان می زنه 3-4 تا لینک باز شه بنظرت چی می شه؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
ممنون، یک سوال داشتم، توی صفحه پروفایل چطوری اطلاعات کاربر رو بگیرم؟ یعنی منظورم اینه که با همون $_Session که ایجاد کردم بیا توی صفحه پروفایل و یک کوئری بنویسم که داخلش از همون Session استفاده شده و اطلاعات کاربر رو بگیرم؟(دقیقا همین جاست که متوجه نمی شم باید چطور اطلاعات رو بگیرم چون کاربر در صفحه SignIn لاگین شده و بعد از لاگین شدن، گفتم اگر لاگین شدن مشکلی نداشت بید توی صفحه Home.php که توی اون صفحه چند تا محصول هست و بعدش توی همون صفحه نوشته سلام کاربر و ... و یک جا هست که نوشتم "DashBoard" و لینک دادم به صفحه DashBoard.php، همین جاش رو گیر کردم!؟!؟!):خجالت:
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
شما ایدی کاربر رو با $_GET که گرفتید درست؟
تو دیتابیس هم اطلاعات مربوط به هر کاربر هم هست، درست؟
شما میای از دیتابیس تمام اطلاعات که با IDـی که از طریق $_GET دریافت کردی واکشی می کنی ( می کشی بیرون)بعدش نشون می دی.
کدوم قسمتش گنگه بیشتر توضیح بدم؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
ممنون، اینجاش رو بلدم، مشکلم اینجاست که من توی صفحه SignIn.html کاربر باید لاگین کنه، درست؟ این کد رو براش نوشتم (دومین لایه PDO هستش):
$result=User::logIn($_POST['userName'],$_POST['passWord']);
if($result){
header('Location:Home.php');
session_start();
$_SESSION['userName']=$result['firstName'];
$_SESSION['passWord']=$result['lastName'];
$_SESSION['mail']=$result['mail'];
$_SESSION['ic']=$result['IC'];}
else{
header('Location:SignIn.html');}
که اگر کاربر ثبلا ثبت نام کرده بود که اونو بفرسته به صفحه Home.php، و گرنه دوباره بفرسته صفحه SignIn.html. خب؟ خب حالا کاربر که رفته به صفحه Home.php فقط یک $_session داره که برابر نام کاربریش هست، اینجا چی کار کنم؟(همون $_session رو به صورت یک id به صفحه داشبورد بفرستم یا ... ؟)
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
سلام
شما ایدی رو هم تو یک سشن دیگه ذخیره کن. بعد اونو بفرست
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
آها، یعنی ID رو بگیرم و مثل نام کاربری توی یک Session ذخیره کنم و بعدش وقتی به صورت خودکار رفت به Home.php، سشن مربوط به IDرو به صورت $_GET به صفحه داشبورد بفرستم، درسته؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
خیلی ممنون،خیلی اذیتتون کردم،ببخشید یکم خنگم، فقط آخرین سوال، نحوه نوشتنش چطوریه؟مثلا اینطوری :
DashBoard.php?id=$_SESSION['id']
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
خواهش می کنم. یه روزی منم مثل شما بودم :)
نمونه :
<?php echo "dashBoard.php?id=".$_SESSION['id'];?>
<?php echo "<a href=\"dashBoard.php?id=".$_SESSION['id']."\">dashboard</a>";?>
نقل قول: چطور یک پروفایل برای کاربر بسازم؟
خیلی ممنون، واقعا ممنون، تشکر فراوان ! نمی دونم چطور تشکر کنم.:تشویق: