Andre Speit: Cookies

Gibt es eine Möglichkeit Cookies auch innerhalb des HTML Dokuments zu setzen? Aktuell ist meine Seite wie folgt aufgebaut:

PHP => Cookies Setzen
HTML
FORMULAR
HTML
PHP => "Hauptscript"
HTML

Ich möchte aber den Cookie-Befehl in das Hauptsrcipt schreiben, um auf die Variablen aus dem Formular zurückgreifen zu können.
Wenn ich das im Moment mache bekomme ich den Fehler:

Warning: Cannot modify header information - headers already sent by (output started at D:\Programme\Server\xampp\htdocs\Test1.php:24)...

Gibt es da irgendeine Möglichkeit das zu umgehen?

Gruß
Andre

  1. Hi Andre Speit,

    Warning: Cannot modify header information - headers already sent by (output started at D:\Programme\Server\xampp\htdocs\Test1.php:24)...

    Gibt es da irgendeine Möglichkeit das zu umgehen?

    Ja: im Archiv suchen

    Viele Grüße aus Freiburg,
    Marian

    PS: Was ist ein Generalverweis? (Kommt hier grad als Fehler)

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)
    <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    1. Hallo Marian.

      PS: Was ist ein Generalverweis? (Kommt hier grad als Fehler)

      Ein Link auf suche.de.selfhtml.org ungeachtet des Query-Strings.

      Einen schönen Samstag noch.

      Gruß, Ashura

      --
      sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
      mathbr:del.icio.us/
      1. Hi Ashura,

        PS: Was ist ein Generalverweis? (Kommt hier grad als Fehler)
        Ein Link auf suche.de.selfhtml.org ungeachtet des Query-Strings.

        Habs grad nochmal gemacht:
        "Sie haben einen General-Verweis gepostet. Das ist hier unerwünscht. Sind Sie sicher, dass sie das Posting so abschicken möchten?"
        Was ist dadran unerwünscht?

        Viele Grüße aus Freiburg,
        Marian

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) n4:( ss:) de:] js:| ch:? mo:} zu:)
        <!--[if IE]><meta http-equiv="refresh" content="0; URL=http://www.getfirefox.com"><[endif]-->
    2. Srry, aber das Archiv hilft mir da nicht wirklich weiter...
      ich schnall einfach nicht warum ich die Cookies nicht später im Script setzen kann...

      1. Hallo Andre,

        ich schnall einfach nicht warum ich die Cookies nicht später im Script setzen kann...

        Du kannst Cookies im Script setzen, wann immer Du willst. Dein Script darf nur keine Ausgabe veranlassen, bevor alle Cookies beisammen sind. Denn Cookies werden im HTTP-Header gesammelt und Deine Ausgaben, die z.B. mittels echo erzeugt werden, sthen im HTTP-Body. Sowie ein Eintrag in den Body stattfindet, wird der Header geschlossen.

        Bitte verwechsele nicht HTTP-Header mit HTML-<Head>.

        LG
        Chris

        1. Hallo Andre,

          ich schnall einfach nicht warum ich die Cookies nicht später im Script setzen kann...

          Du kannst Cookies im Script setzen, wann immer Du willst. Dein Script darf nur keine Ausgabe veranlassen, bevor alle Cookies beisammen sind. Denn Cookies werden im HTTP-Header gesammelt und Deine Ausgaben, die z.B. mittels echo erzeugt werden, sthen im HTTP-Body. Sowie ein Eintrag in den Body stattfindet, wird der Header geschlossen.

          Bitte verwechsele nicht HTTP-Header mit HTML-<Head>.

          LG
          Chris

          Ok, danke für die aufklährung- aber das Problem ist, das ich ja auf den Inhalt des Formulars zurückgreifen möchte, und das muss doch dann schon vorher im Script stehen; folglich hab ich schon vorher eine Ausgabe;
          oder kann man das irgendwie umgehen?

          1. Hallo,

            [...] aber das Problem ist, das ich ja auf den Inhalt des Formulars zurückgreifen möchte,

            Auf welchen Inhalt welchen Formulars willst Du zugreifen, der bei Scriptbeginn noch nicht bekannt wäre?

            Ist Dir das Verfahren "Client-Server-Computing" hinlänglich bekannt?

            LG
            Chris

            1. Super,

              desto mehr ich hier höre desto weniger verstehe ich:
              Hier ist der ganze Code
              (1. ich bin Anfänger, 2. es ist nur zum testen der Funktion; das Layout kommt später).

              <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
              "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
              <html>
                  <head>
                      <title>Test1</title>
                  </head>

              <body>

              <h2>Login</h2>
              <form action="test1.php?section=gb_insert" method="post" class="formular">

              <label for="name">Nickname</label>
                          <input type="text" name="Name" id="name" /><br>

              <label for="password">Passwort</label>
                          <input type="password" name="Password" id="Password"/><br>

              <input type="submit" name="submit" value="Einloggen" />
                          <input type="reset" name="submit" value="Zurücksetzen" /><br>

              </form>

              </body>

              <?php

              error_reporting(E_ALL);

              include 'inc/config.php';
                  // Konfigurationsdatei laden

              @mysql_connect("~", "~", "~") OR
                      die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
                  mysql_select_db("Test Datenbank 1") OR
                      die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

              if(!isset($_POST['Name'], $_POST['Password']
                            )) {
                      die("Bitte f&uuml;llen sie alle Felder aus!\n");
                  }

              $PW1 = $_POST['Password'];

              $name = $_POST['Name'];

              $sql = "SELECT
                          ID,
                   Password
                       FROM
                          users
                       WHERE name = '$name' ";

              $ergebnis = mysql_query($sql) OR die(mysql_error());

              $row = mysql_fetch_assoc($ergebnis);
              $ID = $row['ID'];
              $PW2 = $row['Password'];

              if ($PW1 == $PW2) {
                      echo "Herzlich wilkommen";
                  }
              else
              {
              echo("Falsches Password");
              }

              ?>

              </html>

              Es soll jetzt einfach ein Cookie gesetzt werden, indem die ID drinsteht....

              Gruß
              Andre

              1. Hallo,

                was sollen wir mit Deinem ganzen HTML-Dokument, wenn es doch um PHP geht?

                hast Du denn https://forum.selfhtml.org/?t=122003&m=784589 nicht gelesen oder noch Fragen dazu?

                Bitte arbeite die Tipps, die man Dir hier gibt, auch konsequent ab oder hinterfrage sie...

                LG
                Chris

                1. Bitte arbeite die Tipps, die man Dir hier gibt, auch konsequent ab oder hinterfrage sie...

                  Doch ich hab das gelesen und auch mal versucht die Datei umzustellen aber da treten nur 100 neue Fehler auf... wie soll ich denn beispielsweise auf ein Formular zugreifen wenn die erst später kommt?

                  Andre

                  1. Hallo,

                    [...] wie soll ich denn beispielsweise auf ein Formular zugreifen wenn die erst später kommt?

                    Im Script auf dem Server gibt es kein Formular, bestenfalls die Definition eines solchen. Und die kann aus beliebig vielen Teilen bestehen.

                    Das Formular entsteht doch erst durch das Parsen des HTML-Codes auf dem Client. Und er HTML-Code entsteht erst durch das Parsen des Codes auf dem Server...

                    LG
                    Chris

                    1. Gut ich hab den ganze Kram jetzt umgedreht- aber wie krieg ich jetzt die Fehlermeldungen weg??

                      Notice: Undefined index: Password in D:\Programme\Server\xampp\htdocs\Test1.php on line 24

                      Notice: Undefined index: Name in D:\Programme\Server\xampp\htdocs\Test1.php on line 29

                      1. Tag Andre.

                        Gut ich hab den ganze Kram jetzt umgedreht- aber wie krieg ich jetzt die Fehlermeldungen weg??

                        Indem du uns mitteilst, was in den betreffenden Zeilen steht. Lies aber bitte zuvor folgende Erklärung zu "Notice: Undefined index".

                        Siechfred

                        1. Danke ich habs grad hingekrieg...

                          Erstmal Danke an Chris, dass er so geduldig mit mir war ;-) und auch danke an dich Siechfred für den Link; der hat mir sehr geholfen!

  2. Hallo Andre,

    Du solltest Dir angewöhnen, Aufgabe zu trennen und Reihenfolge einzuhalten:

    • Initialisierung, Konstanten, Includes
    • Datenübernahme aus $_GET, $_POST. ...
    • Datenbankanbindung
    • Datenverarbeitung
    • Header-Bestimmung für den Client
    • Ausgabeberechnung
    • Ausgabe an den Client

    Dann würde alles wunderbar laufen.

    LG
    Chris