我的网站上有3种表格,所有表格都有效,直到有一天。我不知道发生了什么,但我得到会话错误;我的意思是,每当我有一个包含会话标记的PHP脚本时,我就会收到错误,例如,这是我在<html>
标记上的开始:
<?php
// Make the page validate
ini_set('session.use_trans_sid', '0');
// Create a random string, leaving out 'o' to avoid confusion with '0'
$char = strtoupper(substr(str_shuffle('abcdefghjkmnpqrstuvwxyz'), 0, 4));
// Concatenate the random string onto the random numbers
// The font 'Anorexia' doesn't have a character for '8', so the numbers will only go up to 7
// '0' is left out to avoid confusion with 'O'
$str = rand(1, 7) . rand(1, 7) . $char;
// Begin the session
session_start();
// Set the session contents
$_SESSION['captcha_id'] = $str;
?>
当我在我的网站上测试时,我得到:
警告:session_start():无法发送会话缓存限制器 - 已在/home4/domain/public_html/adres/contact.php中发送的标头(输出从/home4/domain/public_html/adres/contact.php:2开始)第16行
究竟是session_start()
所在的部分?之前的代码结构相同 - 发生了什么?
答案 0 :(得分:2)
在打开<?php
代码之前检查您是否有空格或换行符。
答案 1 :(得分:1)
标头已经发送“表示您的PHP脚本已经发送了HTTP标头,因此它现在无法对它们进行修改。
在调用session_start之前,请检查您是否发送了任何内容。更好的是,只需将session_start作为你在PHP文件中做的第一件事(所以把它放在绝对的开头,在所有HTML等之前)。