Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\会话[';用户名';]不工作_Php_Session - Fatal编程技术网

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');
                }


        ?>