我收到一条PHP警告:
"Notice: A session had already been started - ignoring session_start()".
这仅在本地主机上发生,而不在服务器上发生。
服务器和localhost上存在相同的文件。
为什么会有结果变化?
这是我的代码:
<?php session_start ();?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>BookMyFilms - Register</title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
</html>
<?php
$username = $_POST ['username'];
$_SESSION ['user'] = $username;
require ('includes/header.php');
require ('includes/db.php');
require ('includes/common.php');
Register ();
require ('includes/footer.php');?>
答案 0 :(得分:3)
服务器通常在“生产”环境中配置,不会打印通知和警告。
对于另一个问题,您可能在下一个包含中有另一个session_start
。
答案 1 :(得分:1)
必须在您的实时服务器上关闭PHP警告通知。好吧,你可以像
一样启用它error_reporting(E_NOTICE);
主要问题,您必须在任何这些文件中使用session_start();
,这就是您收到通知的原因......
require ('includes/header.php');
require ('includes/db.php');
require ('includes/common.php');
require ('includes/footer.php');?>
尝试检查session_start();
出现的那些文件..如果是这样的话......注释掉它,因为你已经在代码的开头开始了。
答案 2 :(得分:0)
只需更改
<?php session_start ();?>
到
<?php @session_start ();?>
你完成了......!你不会在任何服务器上得到通知..