2013-05-12 40 views
1

我有一个主页面上有一个登录链接,它将用户带到一个登录页面。但是,如果用户已经登录,我想让用户访问另一个页面,例如信息页面。重新定向到某个页面如果登录

我有这样的功能:

function logged_in_redirect() { 
if (logged_in() === true) { 
    header('Location: client.php'); 
    exit(); 
} 
} 

我不知道放在哪里呢?我已经尝试了几乎所有的东西。如果我把它放在登录页面上,当我登录时它不会重定向我。我试着将它作为主页上链接的onclick函数添加,但它不起作用。

这是我LOGGED_IN()函数:

function logged_in() { 
return (isset($_SESSION['user_id'])) ? true : false; 
} 

有什么建议?

编辑:

目前,我有固定的通过使主页链接上的按钮具有这种代码test.php的文件中的问题:

<?php 
include 'core/init.php'; 

if (isset($_SESSION["user_id"])) { 
    header('Location: client.php'); 
} 
else { 
    header('Location: info.php'); 
} 

?> 

有没有解决这个办法吗?

+1

嗯,这是PHP或者我失去了一些东西?该问题被标记为Javascript。 – sixFingers 2013-05-12 22:21:04

+0

这是什么节目? 'echo var_dump(logged_in());' – 2013-05-12 22:21:39

+0

这完全是完全的PHP。 – Stephen 2013-05-12 22:23:45

回答

1

如果您的会话已设置并且用户已通过身份验证,则此操作将生效。

你并不需要额外的功能来检查登录是否设置,除非你有正在处理认证相关的东西和所有其他文件调用其功能检查,如果用户登录一个公共文件..

登录页面:

<?php 

//check if the user is already loggedin 
if(isset($_SESSION["user_id"]){ 
    //assuming client.php is in the same directoy 
    header("Location: client.php"); //you don't need exit since it will be redirected 
} 

//your login stuff. if your user_id was not set this part will be executed 

?> 

也不要忘记,一旦你退出销毁会话..

+0

由于某些原因,这仍然不起作用。它总是重定向到信息页面,而不是client.php,即使我登录了。 – TheNameHobbs 2013-05-12 22:45:46

+0

你在客户端页面上有什么?假设你的信息页面是主页面...这个代码位于登录页面上,所以如果设置了会话重定向到客户端PHP,如果有东西重定向到信息页在client.php你有双重定向.. – Dinesh 2013-05-12 22:52:43

+0

我认为使thingss更清楚我们你应该提供更多的代码.. client.php和login.php可能是。 。 – Dinesh 2013-05-12 22:53:41