Tim: Fehlermeldung

kann mir jemand sagen was das bedeutet?

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/tim/www/1/index.php:8) in /users/tim/www/1/bestell1send.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/tim/www/1/index.php:8) in /users/tim/www/1/bestell1send.php on line 4

danke mfg Tim

  1. kann mir jemand sagen was das bedeutet?

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/tim/www/1/index.php:8) in /users/tim/www/1/bestell1send.php on line 4

    Das steht zwar vermutlich schon hundertfach im Archiv und im Netz, aber sei es drum:

    Die Antwort eines Server an einen Browser besteht aus zwei Teilen, einem Kopf (header) gefolgt von den vom Browser zuvor angeforderten Daten (body). Im Kopf steht so dieses und jenes, insbesondere auch die Cookies, die der Server im Browser zu setzen wünscht.

    Wenn nun dein PHP-Skript anfängt, Daten zu senden, und du danach versuchst, ein Cookie zu setzen, funktioniert letzteres nicht, da der Kopf ja schon raus ist, sobald die Daten durch die Leitung schleichen.
    Und genau das steh in der Warnung: "Cannot send […] cookie [kann Cookie nicht schicken] - headers already sent [denn der Kopf wurde schon übermittelt] […] (output started at [mit der Ausgabe der Daten wurde in Zeile sowieso begonnen]".

    1. Wenn nun dein PHP-Skript anfängt, Daten zu senden, und du danach versuchst, ein Cookie zu setzen, funktioniert letzteres nicht, da der Kopf ja schon raus ist, sobald die Daten durch die Leitung schleichen.

      ich sende aber vorher nichts.

      Und genau das steh in der Warnung: "Cannot send […] cookie [kann Cookie nicht schicken] - headers already sent [denn der Kopf wurde schon übermittelt] […] (output started at [mit der Ausgabe der Daten wurde in Zeile sowieso begonnen]".

      was kann ich dagegen tun?
      hier ist mal das php script:

      <?PHP
      if( $_POST['anzahl'] > 0 and $_POST['wert'] < 10 ){

      session_start();

      if (!isset($_SESSION['1pdn'])) {
        $_SESSION['1anzahl']=$_POST[anzahl];
        $_SESSION['1pdn']=$_POST[pdn];
        if ($_POST['pdn']== 'Kalender Natur'){
         $_SESSION['1preis']=$_POST[anzahl];
        }
        else{
        echo 'Ein Fehler ist aufgetreten!';
        }
        echo 'Produkt(e) wurde(n) erfolgreich dem Warenkorb hinzugefügt!';
       }
       else{
      ...
      ?>

      mfg Tim

      1. output started at /users/tim/www/1/index.php:8) in /users/tim/www/1/bestell1send.php on line 4

        Wenn nun dein PHP-Skript anfängt, Daten zu senden, und du danach versuchst, ein Cookie zu setzen, funktioniert letzteres nicht, da der Kopf ja schon raus ist, sobald die Daten durch die Leitung schleichen.

        ich sende aber vorher nichts.

        Doch, du musst, andernfalls gäbe es die Meldung nicht.

        hier ist mal das php-script:

        <?PHP
        if( $_POST['anzahl'] > 0 and $_POST['wert'] < 10 ){

        session_start();

        Wenn das bestell1send.php ist, was ist mit der ebenfalls erwähnten index.php, ruft letztere möglicherweise in Zeile 8 bestell1send.php auf?

        1. ich sende aber vorher nichts.

          Doch, du musst, andernfalls gäbe es die Meldung nicht.

          aber was sende ich und was muss ich ändern?

          Wenn das bestell1send.php ist, was ist mit der ebenfalls erwähnten index.php, ruft letztere möglicherweise in Zeile 8 bestell1send.php auf?

          nein. ich include bestell1send.php in zeile 135.

          kann es sein das der session_start() weg muss?

          mfg Tim

          1. ich sende aber vorher nichts.

            Doch, du musst, andernfalls gäbe es die Meldung nicht.

            aber was sende ich und was muss ich ändern?

            Ich kenne deinen weiteren Code nicht, aber offenbar hast du vor Zeile 1 bis 4 von bestell1send.php noch irgendwo …

            nein. ich include bestell1send.php in zeile 135.

            … 134 andere Zeilen stehen, die als Verursacher in Frage kommen.

            Meine Frage, ob "index.php möglicherweise in Zeile 8 bestell1send.php aufruft", war nicht ganz richtig: Die 8 markiert nicht die Einbindestelle, sondern vermutlich die die Warnung verursachende Zeile.

            kann es sein das der session_start() weg muss?

            Gut, das würde die Warnungen verschwinden lassen, aber erzählst du jemandem, der mit seinem Auto gegen einen Baum gerasselt ist, "Ohne Auto wär' das nicht passiert."?

  2. Hellihello

    ein kleines Leerzeichen oder eine Zeile vor dem ersten <?php besonders auch in der einbinden Datei kann die Ursache sein.

    Rück das session_start() immer weiter nach oben zum testen, damit Du das findest.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt