tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von saftmeister
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
335
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von root_linux
    root_linux root_linux ist offline Mitglied
    Registriert seit
    Dec 2002
    Beiträge
    24
    Hallo!

    Also vora, Ich selbst habe eigentlich kaum eine Ahnung von PHP. Da ich aber "gezwungen" bin für ein Schulprojekt einen CSS-Styleswitcher in PHP (mit Cookie) Funktion einzubauen.

    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>

    <?php
    if(isset($_COOKIE['style']) && file_exists($_COOKIE['style'].".css")) {
        echo 
    "<link href='{$_COOKIE['style']}.css' rel='stylesheet' type='text/css' />";
    } else {
        echo 
    "<link href='style-b.css' rel='stylesheet' type='text/css' />";
    }
    ?>




    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="author" content="Schlat" />
    <title>Testat 1 :: Webseite</title>

    </head>

    <body>

    <div id="color_scheme">
    <?php
    if (!isset($_GET['s'])) {
    ?>
    Choose your color <br />
        <a href="index.php?s=style-b">.Black.:</a><a href="index.php?s=style-w">:.White.</a>

    </div>


    <div id="black_bar">
    <div id="menu">
    <a href="index.php">Home</a>::<a href="ajax.php">Ajax</a>::<a href="videos.php">Videos</a>::<a href="members.php">Members</a>::<a href="contact.php">PHP</a>
    </div>

    <div id="content_box_l">
    <h1>RSS - News</h1><p>
    </div>

    <div id="content_box_r">

    <div id="img_bottom">
    <?php
    echo "<img src='{$_COOKIE['style']}.jpg' />";
    ?>
    </div>

    </div>
    <div id="logo">

    </div>


    </div>
    <?php
    exit;
    }
    if (
    file_exists($_GET['s'].".css")) {
    setcookie("style"$_GET['s'], time()+(31*86400), '/');
    header("Location: index.php");
    } else {
    header("Location: index.php");
    }
    ?>
    </body>
    Hier mal mein Code. Nun habe ich folgendes Probelm: Auf meinem XAMPP Server lief die Seite noch Problemlos. Seit ich sie im INternet auf einen Server geladen habe bekomme ich nur noch Fehlermeldungen geliefert.

    Cannot modify header information
    Nach kurzer Suche bin ich darauf gestossen dass der PHP Code möglicherweise an der falschen Stelle steht. Ich habe danach mehrmals den Code versucht umzustellen, aber ohne Erfolg. Wenn ich denn PHP ganz am anfang vor das Doctype stelle, zeigt es mir von <body> abwärts nichts mehr an!

    Ich hoffe jemand erbarmt sich mir un kann mir einen konkreten Hinweis liefern.


    root_linux
     
    I love Linux, because life is too short for reboot!!

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Das Problem ist, das du keinen Output (auch HTML außerhalb der PHP-Tags ist Output) an den Client senden darfst, bevor header(), setcookie(), session_start(), etc gesendet wurde. Willst du dennoch Code ausgeben, bevor die Befehle ausgeführt wurden, musst die Ausgabe zwischenpuffern. Das funktioniert so:

    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    <?php
    ob_start();
    ?>
    <html>
    ....
     
    <?php
    header("....");
    setcookie(...);
    ?>
    ...
    </html>
     
    <?php
    ob_end_flush();
    ?>
    root_linux bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    Avatar von root_linux
    root_linux root_linux ist offline Mitglied
    Registriert seit
    Dec 2002
    Beiträge
    24
    Danke, funktioniert so wunderbar!
    Aber warum lief das Script loakl auf dem XAMPP Server ohne Probleme?
     
    I love Linux, because life is too short for reboot!!

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Kann ich nicht glauben, du wirst da vermutlich nur keine Fehler gesehen haben, wenn die Fehler-Anzeige deaktiviert ist (php.ini). Du könntest das nachprüfen, in dem du in die ersten Zeilen des Scripts folgendes schreibst:

    Code php:
    1
    2
    
    error_reporting(E_ALL|E_STRICT);
    ini_set('display_errors', 1);
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Styleswitcher und Template System
    Von matze93 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.07.08, 23:01
  2. Styleswitcher PHP Neulingsfrage
    Von CGI im Forum PHP
    Antworten: 7
    Letzter Beitrag: 21.07.07, 16:37
  3. StyleSwitcher problemchen...
    Von chaosente im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 16.07.07, 20:12
  4. Styleswitcher
    Von Azi im Forum PHP
    Antworten: 6
    Letzter Beitrag: 23.09.05, 23:48

Stichworte