设置会话变量

时间:2016-11-17 14:56:13

标签: php session

想知道是否有人可以帮助我。我试图从数据库表中设置会话变量。基本上我需要做的是当有人登录时,它会从' user_group'已登录用户的用户表列,并将其分配给会话变量。目前它只是传递用户在登录时手动输入的用户名。

这是我当前的login.php代码。我尝试了各种各样的东西,并在这里寻找提示,但没有运气。



<?php

session_start();

$host = "localhost";
$user = "root";
$pass = "";
$db = "california";

mysql_connect($host, $user, $pass);
mysql_select_db($db);


	$username = $_POST['name'];
	$password = md5 ($_POST['password']);
	// check to make sure both fields are entered
 if ($username == '' || $password == '')
 {
 header("Location:login-fail.htm");
 }
 else
	$sql = "SELECT * FROM users WHERE name='".$username."' AND password='".$password.
	"' LIMIT 1";
	$res = mysql_query($sql);
	if (mysql_num_rows($res) == 1) {
	    $_SESSION['logged_in']= $username;
		header("Location:login-success.htm");
		exit();
	} else {
		header("Location:login-fail.htm");
		exit();
	}

?>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:2)

如果添加

会发生什么
$row = mysql_fetch_assoc($res);
你的mysql_query之后

并将该组分配给会话

$_SESSION['logged_in'] = $row['user_group']

编辑: 我还想通知你,不推荐使用mysql_ *函数。您的mysql查询也不受SQL注入的保护

答案 1 :(得分:0)

您必须使用db:

的结果
//...
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
    $_SESSION['logged_in']= $row['user_group'];
}
//...

编辑:尝试使用Mysql PDO而不是mysql_ *函数。它们已被弃用:http://php.net/manual/en/ref.pdo-mysql.php