Php $\会话[';用户名';]不工作
这是面板登录:Php $\会话[';用户名';]不工作,php,session,Php,Session,这是面板登录: <?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 ($
<?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_start();
session_destroy();
session_start();
因此,您将无法访问$\u会话
变量
删除上面代码段的前两行就可以了。您将销毁会话,然后要检查会话是否存在
您必须在另一页处理该表单,否则只需保护session\u desytroy
在从发送后不会执行
if (empty($_POST['submit'])){
session_start();
session_destroy();
session_start();
}
如果您将其放入Condidon,则在发送表单后,它不会破坏您的会话
我个人认为ist对于set
,destroy
和set
会话来说毫无意义。干脆
session_start();
打了这个电话后,$\u会话
中什么都没有了,这并不奇怪
除此之外,你的逻辑中还有很多错误,我的意思是:
$login=mysql_query("select * from user")or die(mysql_error());
$row=mysql_fetch_row($login);
$level = $row[3];
您正在选择一个随机用户,$level
到底应该包含什么?您在会话_destroy()中销毁了会话代码>
您确定设置好了吗<代码>变量转储($\会话)代码>是否显示?你能告诉我们你在哪里设置代码吗?。。。您是否考虑过不先销毁会话?为什么要启动会话,销毁会话,然后再次启动会话?您将永远无法访问用户名
,因为您破坏了该会话,并且再也没有设置用户名
。标题正确地看起来像标题('Location:admin/index.php')您应该记住,它不会隐式停止脚本。它的执行一直持续到退出代码>或脚本结束。您不能在http正文之后或期间发送头。您不能在任何输出完成后设置http头,因此在您的情况下,header()
将不起作用。我使用了以下代码:您能帮我修复它吗?非常感谢你
$login=mysql_query("select * from user")or die(mysql_error());
$row=mysql_fetch_row($login);
$level = $row[3];
<?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');
}
?>