2012-03-31 113 views
1

我正在为客户端登录系统,我遇到了一个问题,我不确定如何解决。我已经设置好了,当用户试图访问某个目录的index.php时,他们需要登录。我已经这样做的代码是:PHP登录脚本 - 可能的会话错误

<?php 
    session_start(); 
    if(!$_SESSION['myusername']){ 
     header("location:Login_admin.php"); 
    } 
?> 

在Login_admin.php页,还有用行动=“checklogin.php”的形式。这里是它连接到数据库,并开始在那里它存储了用户名会话:()

if($count==1){ 
    session_start(); 
    // Register $myusername, $mypassword and redirect to file "login_success.php" 
    $_SESSION['myusername']; 
    $_SESSION['mypassword']; 
    header("location:index.php"); 
} 

原来上面的代码不具备的session_start,所以我说的是,在试图解决我的问题。

实际的问题是会话没有注册。如果我转到导演的其中一个页面(他们都有顶部的第一段代码)并登录,就会像我想要的那样发送给index.php,但是当我尝试返回该页面时它使我再次登录。有一次,我在索引页上获得了第一段代码,即使登录了正确的日志,它也会循环回登录页面。

我被一个朋友看到了这个脚本,并没有真正改变太多。本来剧本有:

session_register("myusername"); 

但一些调试后,我把它改为:

$_SESSION['myusername']; 

最后一点,我不是专家的问题可能认为是一个愚蠢的错误,但对于生活我无法弄清楚。

在此先感谢!

+0

下面的两个答案都帮助我解决了这个问题。多谢你们! – 2012-03-31 17:18:28

回答

1

$_SESSION['myusername']; 

行不绝对没有
分配一个值,会话变量,你必须分配一个到会话变量
通常的方式数值将分配给变量在PHP中

+0

噢好吧,我会试试 – 2012-03-31 17:10:45

+0

正确的方法是:$ _SESSION ['myusername'] = $ myusername; ? – 2012-03-31 17:12:36

1

您必须给每个会话变量赋值

$_SESSION['myusername'] = 'thename'; 
$_SESSION['password'] = '*******';