-1

我正在创建一个用于登录和注销的表单。我的问题是当用户提交他们的用户名和密码然后显示带有该用户名的欢迎消息时。文件如下所示。

包含.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");

?>

登录.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>&nbsp;</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>

成员.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>

注销.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 中,它登录但不显示用户名。我需要那个用户名。请找出问题所在。谢谢。

4

3 回答 3

1

只需使用会话变量$_SESSION['user']= $_POST['user'];,然后使用echo $_SESSION['user'].

还要确保session_start();在 php 文件的开头添加。

于 2013-06-24T08:10:47.540 回答
1

您需要创建$_session变量,因为 HTTP 是无状态协议。除非您将它们存储在会话中,否则您在 login.php 中定义的变量对 members.php 不可用。

首先在 login.php

session_start();
$_SESSION['user'] = $_POST['user'];

然后在你的 members.php 文件中

session_start();
$user = $_SESSION['user'];

将允许您访问它。

于 2013-06-24T08:10:54.527 回答
0

您需要像这样 session_start(); 注册您的会话用户名;$_SESSION['user'] = $_POST['user']; 然后检索您的会话用户名以显示用户名消息 echo $_SESSION['user'];

于 2013-06-24T09:09:52.183 回答