Php 如果包含多个文件,在何处声明会话\u开始?
我对php会话变量声明有疑问 我有两个php文件。1.head.php 2。body.php head.phpPhp 如果包含多个文件,在何处声明会话\u开始?,php,Php,我对php会话变量声明有疑问 我有两个php文件。1.head.php 2。body.php head.php session_start(); $id = $_Session['id']; $name = $_Session['name']; some other text like include js include css etc. include 'head.php'; echo $id; echo $uid; body.php session_start(); $id = $_S
session_start();
$id = $_Session['id'];
$name = $_Session['name'];
some other text like include js include css etc.
include 'head.php';
echo $id;
echo $uid;
body.php
session_start();
$id = $_Session['id'];
$name = $_Session['name'];
some other text like include js include css etc.
include 'head.php';
echo $id;
echo $uid;
这是正确的吗?或者我需要添加session_start()代码>也在body.php文件中。TL;DR
在头文件中调用函数后,无需再次调用该函数
哦,这是$\u会话
,而不是$\u会话
如果包含多个文件,在何处声明会话\u开始
将任何输出发送到浏览器之前。没有别的事了。在此之前可能有数百行PHP代码,只要它们不发送任何您可以调用的输出session_start()代码>之后
显然,在此之前您不会有会话值:)
请详细说明我不明白
在调用session\u start()
之前,不要回显或打印任何内容,甚至不要在PHP标记之外。也不要在PHP标记前放置任何html或空格。在调用该函数之前,绝对不应该向浏览器发送任何内容
错误用法
<html>
<?php
session_start();
?>
正确用法
<?php
blahblahblah(); // or nothing
session_start();
echo "<html>";
?>
TL;DR
在头文件中调用函数后,无需再次调用该函数
哦,这是$\u会话
,而不是$\u会话
如果包含多个文件,在何处声明会话\u开始
将任何输出发送到浏览器之前。没有别的事了。在此之前可能有数百行PHP代码,只要它们不发送任何您可以调用的输出session_start()代码>之后
显然,在此之前您不会有会话值:)
请详细说明我不明白
在调用session\u start()
之前,不要回显或打印任何内容,甚至不要在PHP标记之外。也不要在PHP标记前放置任何html或空格。在调用该函数之前,绝对不应该向浏览器发送任何内容
错误用法
<html>
<?php
session_start();
?>
正确用法
<?php
blahblahblah(); // or nothing
session_start();
echo "<html>";
?>
此外,如果您将head.php包含在许多php文件中,则应首先检查会话,然后启动会话。否则你会得到错误
if(session_id())
{
// session has been started
}
else
{
// session has NOT been started
session_start();
}
您当前的代码还可以,会话开始应该在head.php本身中如果您将head.php包含在许多php文件中,那么您应该首先检查会话,然后启动会话。否则你会得到错误
if(session_id())
{
// session has been started
}
else
{
// session has NOT been started
session_start();
}
您当前的代码还可以,会话开始应该是head.php本身请详细说明我不理解。错误。如果您包括f1.php和f1.php执行会话_start(),那么您包括f2.php和f2.php也执行会话_start(),您将收到一个错误/警告,说明会话已经启动。除非你用错误报告()来隐藏它们ofc@hanshenrik调用session_start()代码>两次不会覆盖任何内容session_start-启动新会话或恢复现有会话
,也没有人建议他们使用它两次。您不需要添加session_start()
在body.php
中,如果您在@HankyPanky中包含head.php
“我是否需要在body.php文件中添加session_start()”,“在您向浏览器发送任何输出之前,其他什么都不重要”,是的,有一件事很重要,不管session_start()是否已被调用。请详细说明我不明白,错了。如果您包括f1.php和f1.php执行会话_start(),那么您包括f2.php和f2.php也执行会话_start(),您将收到一个错误/警告,说明会话已经启动。除非你用错误报告()来隐藏它们ofc@hanshenrik调用session_start()代码>两次不会覆盖任何内容session_start-启动新会话或恢复现有会话
,也没有人建议他们使用它两次。您不需要添加session_start()
在body.php
中,如果您在@HankyPanky中包含head.php
“我是否需要在body.php文件中添加session_start()”,“在您向浏览器发送任何输出之前,其他什么都不重要”,是的,有一件事很重要,不管session_start()是否已被调用。