如何检查PHP用户是否已登录

如何检查PHP用户是否已登录,php,session,login,Php,Session,Login,如何检查用户是否已登录,以便在用户登录时调用函数if(logged_on()),调用php函数并仅显示登录用户的内容,如下所示: <?php if(logged_on()) { // show profile, edit profile buttons } else { // show login button or form } ?> <?php session_start(); function is_logged() {

如何检查用户是否已登录,以便在用户登录时调用函数if(logged_on()),调用php函数并仅显示登录用户的内容,如下所示:

<?php
   if(logged_on()) {
       // show profile, edit profile buttons
   }
   else { // show login button or form }
?>
<?php
    session_start();

    function is_logged() {
        if (isset($_SESSION['user_id'])) return $_SESSION['user_id'];
        else return false;
    }

    if (is_logged()) {
        $user_id = is_logged();

        do_something($user_id);
    } else {
        if (isset($_POST['submit'])) { //form submitted
            //check login and password, if they are correct, do this:
            $_SESSION['user_id'] = $user_id_from_database;
            //if not correct
            unset($_SESSION['user_id']);

            header('Location: /'); //refresh page
        } else {
            //show login form with button named 'submit'
        }
    }
?>


我已将所有会话变量声明为$username和$password等,但尚未声明logged_on()函数。但我还将添加is_admin()函数,以便管理员可以访问非用户内容并删除用户和页面,然后添加confirm_admin()函数,以便用户无法访问delete-users.php等等。

执行以下操作:

<?php
   if(logged_on()) {
       // show profile, edit profile buttons
   }
   else { // show login button or form }
?>
<?php
    session_start();

    function is_logged() {
        if (isset($_SESSION['user_id'])) return $_SESSION['user_id'];
        else return false;
    }

    if (is_logged()) {
        $user_id = is_logged();

        do_something($user_id);
    } else {
        if (isset($_POST['submit'])) { //form submitted
            //check login and password, if they are correct, do this:
            $_SESSION['user_id'] = $user_id_from_database;
            //if not correct
            unset($_SESSION['user_id']);

            header('Location: /'); //refresh page
        } else {
            //show login form with button named 'submit'
        }
    }
?>

只需使用 如果(isset($_会话)){…}

否则可以使用“session_status()”方法。

如果您想知道是否设置了特定变量:
如果(isset($_SESSION[“isLogged”]){…}

您的问题不清楚?“我如何检查用户是否“登录”或是否输入了会话变量,我希望将用户声明为此登录”。请更改措辞以便可以理解,并说明您的预期结果。您是否构建了logged_on()函数?Anant-我会解释得更好一点,谢谢你的提示Aviz-我没有,我不知道怎么做,你现在的具体问题是?谢谢,但是请检查我做的编辑。谢谢,但是请检查我做的编辑。我试图实现的目标更清楚一点。你可以声明一个变量,如$\u SESSION[“isAdmin”]但我认为这是不安全的。如果数据库上有“isAdmin”标志,请直接从数据库中读取此变量。