繁体   English   中英

PHP存储会话数据,在会话中存储用户标识

[英]PHP storing session data, storing userid in session

抱歉,我是新来的。 以下代码仅显示“请登录”。 代码确实可以工作,但是它没有按照我想要的去做,我正在尝试将userid存储在会话中。 这是我的代码

<?php

    if(!isset($_SESSION)) session_start();


    if(isset($_POST['userid'])){
         $userid = $_POST['userid']; 
         $_SESSION['userid']=$userid;
         echo "Welcome $_SESSION[userid]";
    }

    if (!isset($_SESSION['userid'])){
        echo "Please login";
        exit;
    }
    ?>

session_start(); 不应该处于您的if条件,它必须在脚本的开头并始终启动

<?php

    session_start();


    if(isset($_POST['userid'])){
        $_SESSION['userid']= $_POST['userid'];
        echo "Welcome ".$_SESSION['userid'];
    }

    if (!$_SESSION['userid']){
        echo "Please login";
        exit;
    }

session_start()应该在开始时没有任何条件。 还有第二个if条件语句中的一个额外的右括号()。 尝试这个:

 <?php
   session_start();


        if(isset($_POST['userid'])){
            $_SESSION['userid']= $_POST['userid'];
            echo "Welcome {$_SESSION['userid']}";
        }

        if (!$_SESSION['userid']){
            echo "Please login";
            exit;
        }
  • session_start()必须在开始使用会话之前。
  • 我建议您用empty()替换isset(),因为empty()检查了:
    • “”(空字符串)
    • 0(0为整数)
    • 0.0(0为浮点数)
    • “ 0”(0作为字符串)
    • 空值
    • array()(一个空数组)
    • 是$ var; (已声明变量,但没有值)

谢谢回答。 现在有效,我也定义了错误的会话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM