【问题标题】:why include() don't allow to work setcookie? [duplicate]为什么 include() 不允许使用 setcookie? [复制]
【发布时间】:2010-04-08 10:33:45
【问题描述】:

我需要在我的页面中设置 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'; 

但即使我删除包含,ir 在 session_start 或 mysql_connect 上返回相同的警告。 所以我认为这些所有函数在调用时都使用标题,但我该怎么办?至少我需要连接到数据库,然后我需要使用 setcookie()。 那我该怎么办? 谢谢

更新 index.php 的第一行

<?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, "/");

【问题讨论】:

    标签: php


    【解决方案1】:

    &lt;?php 开头之前,您很可能在/24kadr/index.php 中有空格。删除它应该没问题。

    如果没有空格,则您的 PHP 文件可能是使用 Byte Order Mark (BOM) 保存的。在这种情况下,让您的编辑器在没有它的情况下保存文件。

    【讨论】:

    • @Pekka 我已经删除了 ti,但它没有帮助:(
    • 你能显示/24kadr/index.php的第一行吗?
    • @Pekka 我已经展示过了。请看
    • @Syom 文件可能有 BOM。请参阅此问题的答案:stackoverflow.com/questions/1814258/… 了解如何删除它。
    • @Syom 仍然是完全相同的错误消息,对吧?
    【解决方案2】:

    如果您在设置标头/cookie 之前输出 anything,则会收到此错误。要么在输出任何内容(甚至是空行)之前执行此操作,要么使用output buffering

    【讨论】:

    • @Ignacio Vazquez-Abrams 所以当我调用 include() 时,它正在输出吗?什么是输出缓冲,我不知道:(
    • 您在某处使用的某些文件会输出一些内容。检查您的文件。
    【解决方案3】:

    如果您确定您的文件 /24kadr/index.php

    开头
    <?php
    

    在此之前没有一个字符,您可能会遇到“UTF-8 with BOM”问题

    如果您的编辑器配置为使用编码“UTF-8 with BOM”保存文件,那么它将在文件开头添加(而不显示)2 个特殊字符。

    这会导致 PHP 抛出警告。

    我希望这会有所帮助 杰罗姆·瓦格纳

    【讨论】:

      猜你喜欢
      • 2019-01-21
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2015-12-07
      相关资源
      最近更新 更多