此代码在Xampp中正常运行但在我将其上传到服务器后无法正常工作
<?php
ob_start();
session_start();
if(session_status()!=PHP_SESSION_ACTIVE) { session_start();}
if(!isset($_SESSION['username']) || !isset($_SESSION['password']))
{
header('location:login.php');
}
$connection=mysqli_query('localhost','username','password','dbname')
?>
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
页面已经加载正常,但它在页面顶部给出了错误,因为它是一个管理页面,除非设置了会话,否则它不能打开。这是我现在收到的警告。
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home3/index.php:1) in /home3/index.php on line 3
Warning: Cannot modify header information - headers already sent by (output started at /home3/index.php:1) in /home3/index.php on line 7
答案 0 :(得分:2)
使用以下代码,确保在<?php
标记开始之前代码中没有剩余空格。
<?php session_start();
ob_start();
请注意,会话只能在页面输出开始之前启动,并且相同的规则适用于php中的标题函数。
答案 1 :(得分:2)
session_start()
应位于页面顶部
答案 2 :(得分:1)
首先,<?php
之前和?>
标记之后不应该有空格。
其次,在调用session_start之前,请检查是否未发送任何内容。更好的是,只需将session_start作为你在PHP文件中做的第一件事(所以把它放在绝对的开头,在所有HTML等之前)。
<?php
session_start();
ob_start();
if(session_status()!=PHP_SESSION_ACTIVE) { session_start();}
if(!isset($_SESSION['username']) || !isset($_SESSION['password']))
{
header('location:login.php');
}
$connection=mysqli_query('localhost','username','password','dbname')
?>