Я изучаю php. Я создал систему регистрации и входа в систему. Он работает нормально. Но мне интересно что-то: как я могу отображать данные пользователя в профиле пользователя. Например, имя, фамилия, адрес электронной почты и т. Д. Моя система входа в систему функционирует, но отображает только электронную почту.
Это мой код profile.php.
<?php session_start(); if (!isset($_SESSION['email'])) { header('location: index2.php'); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> <link href="css/profile.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="header"> <div class="header_in"> <div class="logo"><span>EcoWebTr</span></div> <div class="cik"><a href="cikis.php">Çıkış</a></div> <!--Login informtion--></div> </div> <div class="container"> <div class="wrapper"> User Email: <font color="#000066"><?php echo $_SESSION['email']; ?></font> </div> </div> </body> </html>
А также это login.php
<?php include("includes/connect.php"); if(isset($_POST['login'])) { $email = $_POST['email']; $password = md5($_POST['password']); $check_user = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $run = mysql_query($check_user); if(mysql_num_rows($run)>0) { $_SESSION['email']=$email; echo"<script>window.open('profile.php','_self')</script>"; } else { echo"<script>alert('wrong email or password')</script>"; } } ?>
в<?php include("includes/connect.php"); if(isset($_POST['login'])) { $email = $_POST['email']; $password = md5($_POST['password']); $check_user = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $run = mysql_query($check_user); if(mysql_num_rows($run)>0) { $_SESSION['email']=$email; echo"<script>window.open('profile.php','_self')</script>"; } else { echo"<script>alert('wrong email or password')</script>"; } } ?>
по<?php include("includes/connect.php"); if(isset($_POST['login'])) { $email = $_POST['email']; $password = md5($_POST['password']); $check_user = "SELECT * FROM users WHERE email='$email' AND password='$password'"; $run = mysql_query($check_user); if(mysql_num_rows($run)>0) { $_SESSION['email']=$email; echo"<script>window.open('profile.php','_self')</script>"; } else { echo"<script>alert('wrong email or password')</script>"; } } ?>
Возможно, существует несколько разных подходов.
Одна из возможностей, так как вы сказали, что ваш логин работает нормально, и я вижу, что вы видите, что сообщение электронной почты в переменной сеанса (предположительно при входе в систему) также должно устанавливать переменные сеанса для других полей, которые вы хотите отобразить.
Поэтому установите имя, фамилию, адрес электронной почты и т. Д. Как переменные сеанса. Затем в вашем HTML вы сможете ссылаться на них по мере необходимости. Например, <?php echo $_SESSION['first name']; ?>
<?php echo $_SESSION['first name']; ?>
ОБНОВИТЬ
Учитывая дополнительную информацию, которую вы предоставили, вот краткий пример …
if(mysql_num_rows($run)>0) { $_SESSION['email']=$email; $row = mysql_fetch_assoc($run); $_SESSION['firstname'] = $row['firstname']; $_SESSION['lastname'] = $row['lastname']; // etc
поif(mysql_num_rows($run)>0) { $_SESSION['email']=$email; $row = mysql_fetch_assoc($run); $_SESSION['firstname'] = $row['firstname']; $_SESSION['lastname'] = $row['lastname']; // etc
В этом примере предполагается, что вы сохраняете имя / фамилию в своей базе данных как «firstname» и «lastname». Просто настройте имена по мере необходимости, чтобы они соответствовали вашей базе данных. Это создает все переменные сеанса … затем вы можете обращаться к ним по мере необходимости, как если бы вы обращались к своей переменной сеанса электронной почты.
Вам нужно будет запросить его через вашу базу данных. Я рекомендую вам запросить все это во время входа в систему и сохранить его как переменные сеанса, а затем просто откликнуться в любом месте.
Как сказал Чарли, вы можете echo $_SESSION['full_name']
. Однако я обычно создаю ассоциативный массив с именем User, а затем помещаю в него информацию. Например, echo $_SESSION['USER']['full_name']
звучит как более разумный подход.
ПРИМЕР
При успешном подключении:
1) Запросить базовую информацию, такую как имя, фамилия, пол, день рождения и т. Д.
2) Сохраните их в переменных, таких как $ first_name, $ last_name и т. Д.
3) Назначьте эти переменные для сеансов следующим образом:
$first_name = $_SESSION['User']['first_name']; $birthday = $_SESSION['User']['birthday'];
При выходе из системы просто уничтожьте сеанс session_destroy()
.
что-то вроде:
<div style="float:left;">User Name:</div><div style="margin-left:100px;"><?php=$_SESSION['username']?></div> <div style="float:left;">User Surname:</div><div style="margin-left:100px;"><?php=$_SESSION['surname']?></div>
Каковы другие имена переменных сеанса?