【发布时间】:2016-03-22 13:34:15
【问题描述】:
我正在尝试显示带有用户名的欢迎消息。我设置了一个会话,一切正常,没有错误,但是我不能让用户名出现在“欢迎”旁边。我阅读了大量帖子,大多数建议都要求在echo 之前添加session_start();。还是什么都没有..
如果有人可以帮助我,这里是 session.php 的代码:
<?php
session_start();
$message="";
if(count($_POST)>0) {
$conn = mysql_connect("**.***.***.***", "*********", "*********");
mysql_select_db("*********",$conn);
$result = mysql_query("SELECT * FROM WebsiteUsers WHERE user_name='" . $_POST["fname"] . "' and password = '". $_POST["password"]."'");
$row = mysql_fetch_array($result);
if(is_array($row)) {
$_SESSION["UserID"] = $row[user_id];
$_SESSION["fname"] = $row[user_name];
} else {
$message = "Invalid Username or Password!";
}
}
if(isset($_SESSION["user_name"])) {
header('Location: login.php');
}
?>
这是个人资料页面的代码,用户名应该出现在该页面上:
<?php
include('session.php'); //file shown above
?>
<!DOCTYPE html>
<html>
<head>
<title>Your Home Page</title>
</head>
<body>
<div id="profile">
<b id="welcome">Welcome : <i>
<?php
session_start();
echo $_SESSION['fname'];
?>
</i></b>
<b id="logout"><a href="logout.php">Log Out</a></b>
</div>
</body>
</html>
我只是在学习 PHP,这是一个基本测试。
感谢您提供任何信息。 祝你有美好的一天!
更新:
登录脚本.php
<?php
session_start();
$error='';
if (isset($_POST['submit'])) {
if (empty($_POST['uname']) || empty($_POST['password'])) {
$error = "Username or Password is invalid";
}
else
{
$uname=$_POST['uname'];
$password=$_POST['password'];
$conn = mysql_connect("**.***.***.***", "*********", "*********");
$uname = stripslashes($uname);
$password = stripslashes($password);
$uname = mysql_real_escape_string($uname);
$password = mysql_real_escape_string($password);
$db = mysql_select_db("*********", $conn);
$query = mysql_query("select * from WebsiteUsers where password='$password' AND uname='$uname'", $conn);
$rows = mysql_num_rows($query);
if ($rows == 1) {
$_SESSION['login_user']=$uname;
header("location: profile.php");
} else {
$error = "Username or Password is invalid";
}
mysql_close($conn);
}
}
?>
注销.php:
<?php
session_start();
if(session_destroy())
{
header("Location: login.php");
}
?>
【问题讨论】:
-
显示你的 session.php 文件。我已经测试了你的代码,它运行良好
-
用户在哪里登录?您的代码也有一个奇怪的地方:
if(isset($_SESSION["user_name"]))如果用户名在会话中,您将用户重定向到登录页面。应该是反过来吧?喜欢if( !isset($_SESSION["user_name"]) ) -
session.php 是代码的第一位。
-
@user2387628 我已经为你更新了我的答案。告诉我你发现了什么