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

?>

有没有办法解决?

4

1 回答 1

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

?>

注销后也不要忘记销毁会话..

于 2013-05-12T22:38:25.277 回答