这是面板登录:
<?php include('header.php');
$login=mysql_query("select * from user")or die(mysql_error());
$row=mysql_fetch_row($login);
$level = $row[3];
session_start();
if (isset($_SESSION['username'])){
if ($level == '1')
{
header('location:admin/index.php');
}
if ($level == '2')
{
header('location:member/index.php');
}
}
?>
<body>
<div class="row-fluid">
<div class="span12">
<center>
</br>
</br>
<div id="container">
<div id="header">
<div class="alert alert-success"><label>Login to the System</label></div>
</div>
<form method="post">
<table>
<tr>
<td><label>User Name</label></td>
<td><input type="text" id="username" name="username" placeholder="username" required></td>
</tr>
<tr>
<td><label>Password</label></td>
<td><input type="password" id="password" name="password" placeholder="Password" required></td>
</tr>
<tr>
<td></td>
<td><button type="submit" id="submit" name="submit" class="btn btn-success">Login</button></td>
</tr>
</table>
</form>
<?php
if (isset($_POST['submit'])){
$username=$_POST['username'];
$password=($_POST['password']);
$login=mysql_query("select * from user where user_name='$username' and user_password='$password'")or die(mysql_error());
$count=mysql_num_rows($login);
$row=mysql_fetch_row($login);
$level = $row[3];
if ($count > 0){
$_SESSION['username']=$row[1];
if ($level == 1)
{
header('location:admin/index.php');
}
if ($level == 2)
{
header('location:member/index.php');
}
}
else{ ?>
<!-- <script type="text/javascript">
alert("Error Login! Wrong Combination of Username and Password!");
</script> -->
<div class="alert alert-error">Error login! Please check your username or password</div>
<?php
}}
?>
</div>
</center>
</div>
</div>
</body>
</html>
我使用正确的信息登录但系统未转发到会员页面。 $ _SESSION ['用户名']无效。我尝试了所有可以在互联网上找到的解决方案,但都没有。我想出为什么这不起作用。非常感谢任何帮助,谢谢。
我用过这段代码:你可以帮我解决一下吗?非常感谢你
答案 0 :(得分:2)
session_destroy();
在此次通话之后,$_SESSION
没有留下任何遗漏。
除此之外,你的逻辑中有很多错误,我的意思是:
$login=mysql_query("select * from user")or die(mysql_error());
$row=mysql_fetch_row($login);
$level = $row[3];
您选择了一个随机用户,$level
到底应该包含什么内容?
答案 1 :(得分:1)
在阅读变量之前,您正在销毁会话。
session_start();
session_destroy();
session_start();
因此,您将无法访问$_SESSION
变量。
删除上面代码段的两个第一行,这样就可以了。
答案 2 :(得分:0)
你破坏会话,之后你想检查是否存在。
您必须在另一个页面处理该表单,或者只是保护session_desytroy
在您发送后不会执行。
if (empty($_POST['submit'])){
session_start();
session_destroy();
session_start();
}
如果你把它放入condidion,它将不会在发送表格后销毁你的会话。
我个人认为set
,destroy
和set
再次会话毫无意义。只需做
session_start();
答案 3 :(得分:0)
您在session_destroy();
<?php include('header.php');
//Where are the user details to select the user? Should not it be like?
$sql = "select * from `user` WHERE `username ` = 'something' AND `password` = 'something' LIMIT 1";
$login=mysql_query($sql)or die(mysql_error());
$row=mysql_fetch_row($login);
$level = $row[3];
//Start a session first
session_start();
//Set session username here
$_SESSION['username'] = $row[username-array-key]
if ($level == '1')
{
header('location:admin/index.php');
}
if ($level == '2')
{
header('location:member/index.php');
}
?>