希望我能对过去几天一直坚持的登录有所帮助。
基本上它是登录将登录用户,但每次都会转到同一页面。我想要它做的是:如果用户是管理员,把那个人带到管理页面。如果是用户,则到用户页面。
我已经在数据库中设置了一个用户类型字段并且硬编码了 2 个用户,其中一个具有 admin 作为用户类型,另一个作为用户。
<?php
session_start();
$host="xxxxxxxxxxxxx"; // Host name
$username="xxxxxxx"; // Mysql username
$password="xxxxxxx"; // Mysql password
$db_name="xxxxxxxx"; // Database name
$tbl_name="member"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$username=$_POST['username'];
$password=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
$num_results = mysql_num_rows($result);
$array = mysql_fetch_array($result);
$_SESSION['username']=$array['username'];
$_SESSION['password']=$array['password'];
$_SESSION['usertype']=$array['usertype'];
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if($count==1){
$_SESSION['username']=$_POST['username'];
$_SESSION['password']=$_POST['password'];
if ($array['usertype']=="user")
{ header ("location: userpage.php"); }
else if ($array['usertype']=="admin");
{ header ("location: adminpage.php"); }
} else {
echo "Wrong user or password";
}
?>
以上是我用过的最新代码。每次我登录时,它似乎都会跳过第一个标题,直接进入第二个标题。我什至在登录后打印了会话,它确实从表中获取了用户类型。
没有更多关于如何解决此问题的线索。