我正在创建一个登录和注销表单。 我的问题是当用户提交他们的用户名和密码然后显示带有该用户名的欢迎消息。文件如下所示。
include.php
<?php
session_start();
$host = "VKSolutions";
$username = "VKSolutions";
$password = "VKSolutions@1";
$db = "VKSolutions";
@mysql_connect($host,$username,$password) or die ("error");
@mysql_select_db($db) or die("error");
?>
的login.php
<?php
require_once('include.php');
$error = '';
$form = $_POST['submit'];
$user = $_POST['user'];
$password = $_POST['password'];
if( isset($form) ) {
if( isset($user) && isset($password) && $user !== '' && $password !== '' ) {
$sql = mysql_query("SELECT * FROM `accounts` WHERE user='$user' and
password='$password';");
if( mysql_num_rows($sql) != 0 ) { //success
$_SESSION['logged-in'] = true;
header('Location: members.php');
exit;
} else { $error = "Incorrect login info"; }
} else { $error = 'All information is not filled out correctly';}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Login</title>
</head>
<body>
<table width="80%" border="0"><form action="<?php $PHP_SELF; ?>" method="post" >
<tr>
<td><label>Employee Name:</label></td>
<td><input name="user" placeholder="Enter Name" type="text" value="<?php echo "$user";?>" /></td>
</tr>
<tr>
<td><label>Password:</label></td>
<td><input name="password" placeholder="Enter Password" type="password" /></td>
</tr>
<tr>
<td> </td>
<td><input valin="right" name="submit" type="submit" value="Log In" /></td>
</tr></form>
</table>
<?php
echo "<br /><span style=\"color:red\">$error</span>";
?>
</body>
</html>
members.php
<?php
require_once('include.php');
if ( !isset($_SESSION['logged-in']) || $_SESSION['logged-in'] !== true) {
header('Location: login.php');
exit;
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Staff Area</title>
</head>
<body>
<div style="margin-top:50px; color:#00F; margin-left:50px; font-size:18px; position:absolute">Welcome<?php echo "$user";?></div>
</body>
</html>
logout.php
<?php
session_start();
// if the user is logged in, unset the session
if (isset($_SESSION['logged-in'])) {
unset($_SESSION['logged-in']);
}
// now that the user is logged out,
// go to login page
header('Location: login.php');
?>
在我的members.php中,它是登录但不显示用户名。我需要那个用户名。 请找出问题所在。 感谢。
答案 0 :(得分:1)
只需使用$_SESSION['user']= $_POST['user'];
之类的会话变量,然后使用echo $_SESSION['user']
显示它。
还要确保在php文件的开头添加session_start();
。
答案 1 :(得分:1)
您需要创建$_session
变量,因为HTTP是无状态协议。除非将它们存储在会话中,否则在login.php中定义的变量不可用于members.php。
首先登录login.php
session_start();
$_SESSION['user'] = $_POST['user'];
然后在你的members.php文件中
session_start();
$user = $_SESSION['user'];
允许您访问它。
答案 2 :(得分:0)
您需要像这样注册您的会话用户名 在session_start(); $ _SESSION ['user'] = $ _POST ['user']; 然后检索您的会话用户名以显示用户名消息 echo $ _SESSION ['user'];