繁体   English   中英

在html标记之前必须调用哪些会话函数

[英]What session functions have to be called before html tag

我听说必须在!DOCTYPE之前调用session_start() ,但是我对其他会话函数感到困惑。 从手册中:

"To use a named session, call session_name() before calling session_start()."

因此,显然我必须在<!DOCTYPE html>之前具有session_name()函数,但是在html开始之前我还需要什么其他函数? 我很确定$_SESSION['']在html里面还可以,但是我想澄清一下。

据我所知(假设您使用PHP进行编码),在开始编写响应正文之后,您将无法设置响应标头。

因此,在程序开始编写响应正文之前,必须设置与响应标头相关的任何内容(例如:响应正文中的html元素)。

我不知道在<!DOCTYPE>之前必须调用哪些会话函数,但是我可以说$ _SESSION是一个超全局变量,这就是为什么您可以在脚本中的任何地方访问它。 它是一个数组。

必须始终先调用session_start()函数,然后才能在文档中进行任何其他操作,并且$_SESSION超全局变量可以在文档中的任何位置使用。 它基本上只是一个数据数组。

会话验证的基本示例:

if (isset($_SESSION['username']) === true) {
    echo "Hello: ".$_SESSION['username'];
} else {
    header('Location: http://www.yourdomainname.com/login.php');
}

实际上不需要session_name()函数,因为该名称应由PHP自动生成。

但是,您应该使用session_start()在所有脚本中启动会话。 这应该是您要使用会话功能的任何脚本中要做的第一件事。 像这样。

<?php
    session_start();
?>
<!DOCTYPE html>

 .... other html

<?php
   if ( ! isset($_SESSION['is_logged_in']) || $_SESSION['is_logged_in'] === false ) {
      // send user to login page
   }
   .. some other bits of php code
?>

 .... other html

<?php
   .. some other bits of php code
?>

暂无
暂无

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

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