0

関連するコードは以下のとおりです。php.net によると、出力がないこと、空白がないことを確認する必要があります。ありません。php タグはドキュメントの最初のタグであり、その前に空白はありません。私は何を間違っていますか?

<?php

    // main.php
    // 6:48 PM 8/6/2010

    include('config.php');

    // Does myid cookie exist?
    if ( !isset( $_COOKIE['myid'] ) )
    {
        // Generate myid
        $myid = substr(md5(date( 'Ymdhis' ) . str_replace( '.', '', $_SERVER['REMOTE_ADDR'] ) ), 0, 10);

        // set the cookie
        setcookie( 'myid', $myid, time() + 31536000 );
4

3 に答える 3

0

他のスクリプトからでも、を呼び出す前に何も出力する必要はありません。setcookie

たとえば、開始タグの前 (または終了タグの後) にconfig.php空白があると、問題が発生します。<?php?>

が呼び出された場所、headerまたは PHP タグの外側にあるテキスト (空白も含む) が存在する場所を探し出します。それが起こっていることです、間違いありません。

于 2010-08-23T05:20:59.687 に答える
0

一部のテキスト エディターでは、すべての記号が表示されません。main.php と config.php を別のエディターで開き、両方のファイルで <?php の前に何かがないか確認してください。Windows についてはわかりませんが、Linux ではvimまたはを使用できますvi。また、完全なエラー メッセージは、正確にどこでエラーが発生したかを示しています。

于 2010-08-23T05:21:44.063 に答える
0

このエラー メッセージを読んでいないか、少なくともここに貼り付けていません。詳細な説明があります。何が間違っていますか。
ほとんどの場合、config.php:XXX から出力が開始されます。かなりクリアな。

output started at main.php:0 と表示されている場合 - これはおそらくBOM文字であり、エディターの [保存] ダイアログまたは別のエディターを使用して、それなしでファイルを再保存する必要があります。

常にエラー メッセージ全体を読んでください。何かがうまくいかなかったことを示すだけでなく、実際に何が起こったのかを説明することもよくあります。

于 2010-08-23T05:24:15.390 に答える