如果已登录,则重定向到某个页面

时间:2013-05-12 22:17:39

标签: php session redirect

我有一个主页面,其上有一个登录链接,将用户带到登录页面。但是,如果用户已经登录,我想将用户带到另一个页面,例如信息页面。

我有这个功能:

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 个答案:

答案 0 :(得分: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

?>

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