我需要在我的页面中设置cookie,但它会返回
Warning: Cannot modify header information - headers already sent by (output started at /home1/bsam/public_html/24kadr/index.php:1) in /home1/bsam/public_html/24kadr/basic_login.php on line 35
在第1行我有
include 'basic_login.php';
但即使我删除了include,ir也会在session_start或mysql_connect上返回相同的警告。 所以我认为这些所有功能在通话时都使用标题,但我该怎么办?至少我需要连接数据库,就在它之后我需要使用setcookie()。 那我该怎么办? 感谢
<?include 'basic_login.php';include 'settings.php';?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
...........
<_>在basic_login.php中启动
<?
session_start();
include 'connect.php';
ini_set("session.bug_compat_42",1);
ini_set("session.bug_compat_warn",0);
..........................................
setcookie("cookname", $_SESSION['username'], time()+60*60*24*30, "/");
setcookie("cookpass", $_SESSION['password'], time()+60*60*24*30, "/");
答案 0 :(得分:6)
在开幕/24kadr/index.php
之前,您很可能在<?php
中有空格。删除它,它应该没问题。
如果没有空格,可能您的PHP文件使用Byte Order Mark(BOM)保存。在这种情况下,让编辑器在没有它的情况下保存文件。
答案 1 :(得分:2)
如果在设置标头/ cookie之前输出任何内容,则会出现此错误。在输出任何内容之前执行此操作,甚至是空行,或使用output buffering。
答案 2 :(得分:0)
如果您确定您的文件 /24kadr/index.php 以
开头<?php
之前没有一个字符,您可能会遇到“带BOM的UTF-8”问题
如果您的编辑器配置为使用编码“UTF-8 with BOM”保存文件,那么它将在文件的开头添加(而不是显示)2个特殊字符。
这可能导致PHP发出警告。
我希望这会有所帮助 杰罗姆·瓦格纳