登录系统:会话启动问题

时间:2017-12-14 11:02:11

标签: javascript php html mysql

我有一个登录系统,它会检查正确的登录详细信息,如下所示:

    <?php
    @session_start();
    require_once "connection.php";
    $Username=$_POST['uname'];
    $Password=$_POST['pass'];

    $encrypt_password=md5($Password);
    //echo $encrypt_password; 

    $Username=stripslashes($Username);
    $Password=stripslashes($Password);
    $Username = mysql_real_escape_string($Username);
    $Password = mysql_real_escape_string($Password);

    $sql="SELECT * FROM loginlist WHERE username='$Username' and password='$encrypt_password'";
    $query=mysql_query($sql) or die(mysql_error());
    $Count=mysql_num_rows($query);
    if($Count == 1)
    {
        session_register(myusername);
        session_register(mypassword);
        $_SESSION['uname']=$Username;
        $_SESSION['pass']=$Password;

        header("location:controlpanel.php");
    }
    else
    {
        echo 'wrong user name or password';
    }
?>

如果登录详细信息正确,它将转移到controlpanel.php,我在controlpanel.php的开头有以下代码

    @session_start();
    if(!isset($_SESSION['uname']))
       echo"<script>window.location='thisisthesystem.php';</script>";
    else

但每次我尝试登录(使用正确的登录详细信息)时,它都会将我返回登录页面。请让我知道那里出了什么问题:

提前致谢。

1 个答案:

答案 0 :(得分:1)

您应该在isset上查找。

ISSET检查变量是否已设置,换句话说,它检查变量是否为除NULL以外的任何值或未赋值。如果变量存在且ISCS不是NULL,则ISSET返回TRUE。这意味着变量分配了一个&#34; &#34;,0,&#34; 0&#34;或FALSE已设置,因此对于ISSET为TRUE。

if ( isset($Variable)){
  //this will be true if $Variable will have some value
}else {
//this is false if $Variable will be empty
}

删除&#39; ! &#39; 从我在评论部分中说过

See more about Isset