пытаясь создать страницу профиля пользователя, я создал 3 страницы входа в систему. php, где пользователь входит в систему, используя адрес электронной почты и пароль, которые они использовали в реестре. php, после входа в систему пользователь может получить доступ к странице своего профиля. на котором я хочу отобразить его имя, фамилию, адрес электронной почты. Я также пытаюсь разрешить пользователю редактировать свое имя, фамилию и адрес электронной почты, поля на сайте обновляются, но база данных не обновляется.
Информация, собранная в реестре. php вставляется в базу данных пользователей.
Я использую следующий код:
<?php # DISPLAY COMPLETE PRODUCTS PAGE.
# Access session.
session_start() ;
# Open database connection.
require ( 'includes/connect_db.php' ) ;
# Redirect if not logged in.
if ( !isset( $_SESSION[ 'user_id' ] ) ) { require ( 'login_tools.php' ) ; load() ; }
# Set page title and display header section.
$page_title = 'My Profile' ;
include ( 'includes/nav_logout.php' ) ;
if(isset($_POST['update']))
{
$UpdateQuery = "UPDATE users SET first_name='$_POST[first_name]',
last_name='$_POST[last_name]',
email='$_POST[email]'
WHERE user_id ='$_POST[user_id]'";
mysqli_query($link, $UpdateQuery);
}
?><html>
<head>
</head>
<body><center>
<br><br>
<div id="profile">
<h1>Your Profile</h1>
<a>First Name: <?php echo $_SESSION['first_name'];?></a>
<br>
<a>Last Name: <?php echo $_SESSION['last_name'];?></a>
<br>
<a>Email: <?php echo $_SESSION['email'];?></a>
</div>
<br>
<form class="form1" method="post" action="" id="form1">
<fieldset>
<ul>
<br>
<h3>Change Profile details</h3>
<br>
<label for="name">Email:</label><span><input type="text" name="email" placeholder="Email" class="required" role="input" aria-required="true"/></span>
<br><br>
<label for="name">First Name:</label><span><input type="text" name="first_name" placeholder="First Name" class="required" role="input" aria-required="true"/></span>
<br><br>
<label for="name">Last Name:</label><span><input type="text" name="last_name" placeholder="Last Name" class="required" role="input" aria-required="true"/></span>
</ul>
<input class="submit .transparentButton" value="Save Changes" type="submit" name="Submit"/>
</fieldset>
</form>
<?php
if (isset($_POST['Submit']))
{
$_SESSION['email'] = $_POST['email'];
$_SESSION['first_name'] = $_POST['first_name'];
$_SESSION['last_name'] = $_POST['last_name'];
echo "<meta http-equiv='refresh' content='0'>";
}
?>
Отображаются только first_name и last_name. Я также использовал print_r ($ _ SESSION), который отображал только имя, фамилию. Поле электронной почты было пустым.
Переменные сеанса
here # Check login. list ( $check, $data ) = validate ( $link, $_POST[ 'email' ], $_POST[ 'pass' ] ) ; # On success set session data and display logged in page. if ( $check ) { # Access session. session_start(); $_SESSION[ 'user_id' ] = $data[ 'user_id' ] ; $_SESSION[ 'first_name' ] = $data[ 'first_name' ] ; $_SESSION[ 'last_name' ] = $data[ 'last_name' ] ; $_SESSION[ 'email' ] = $data[ 'email' ] ; load ( 'dashboard.php' ) ; }