简体   繁体   English

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

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

Sorry but I'm new to this. 抱歉,我是新来的。 The following code only displays 'Please login'. 以下代码仅显示“请登录”。 Code does work but it's not doing what I want it to, I'm trying to store userid in a session. 代码确实可以工作,但是它没有按照我想要的去做,我正在尝试将userid存储在会话中。 Here is my code 这是我的代码

<?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(); shouldn't be in your if condition, it has to be at the beginning of the script and always launched 不应该处于您的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() should be at the beginning without any condition. session_start()应该在开始时没有任何条件。 And also one extra closing bracket ) in the second if condition statement. 还有第二个if条件语句中的一个额外的右括号()。 Try this: 尝试这个:

 <?php
   session_start();


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

        if (!$_SESSION['userid']){
            echo "Please login";
            exit;
        }
  • session_start() need to be before you start to work with session. session_start()必须在开始使用会话之前。
  • I suggest you to replace isset() by empty(), because empty() checked for: 我建议您用empty()替换isset(),因为empty()检查了:
    • "" (an empty string) “”(空字符串)
    • 0 (0 as an integer) 0(0为整数)
    • 0.0 (0 as a float) 0.0(0为浮点数)
    • "0" (0 as a string) “ 0”(0作为字符串)
    • NULL 空值
    • FALSE
    • array() (an empty array) array()(一个空数组)
    • $var; 是$ var; (a variable declared, but without a value) (已声明变量,但没有值)

Thanks for answering. 谢谢回答。 It works now, I was also defining the wrong session. 现在有效,我也定义了错误的会话。

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

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