[PHP5] Cookie setzen funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] Cookie setzen funktioniert nicht

    Halli Hallo,

    ich arbeite gerade an einer Seite. Bei der Anmeldung würde ich gerne zwei Cookies setzen. Dies funktioniert allerdings nicht so, wie ich es gerne hätte. Es kommt folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/XXXXXXXXXXX/connect2.php:12) in /srv/www/httpd/XXXXXXXXXXX/login2.php on line 9

    Warning: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/XXXXXXXXXXXX/connect2.php:12) in /srv/www/httpd/XXXXXXXXXXXX/login2.php on line 10
    Ich hab den Beitrag zu diesem Thema in diesem Forum bereits gelesen, kann mir aber dennoch noch immer keinen Reim drauf machen. Die Fehlermeldung beginnt erst in der zweiten Zeile; wenn ich den Quellcode der Meldung ansehe, dann beginnt dieser auch erst in der zweiten Zeile. Man kann den Cursor allerdings auch gar nicht in die erste Zeile bewegen.

    Der Quelltext der (noch unfertigen Datei) sieht folgendermaßen aus:

    login.php
    <?
    echo "<h1>Anmeldung für Mitglieder</h2>";
    echo "Bitte gib in das untenstehende Formular deinen Benutzernamen und dein Passwort ein,
    damit du vollen Zugriff auf die Seite erhältst. Dadurch werden dir auch vereinsinterne Informationen
    angezeigt, du kannst dein Profil verändern und erhältst Zugriff auf den TTSG-Messenger.
    Administratoren erhalten außerdem dadurch Zugriff auf das Admin-Tool, womit sie Inhalte
    hinzufügen, verändern oder löschen können.";
    ?>
    <br><br>
    <form action="login2.php" method="post">
    <table border="1">
    <tr><td><b>Benutzername:</b></td><td><input name="username" type="text" size="30" maxlength="30"></td></tr>
    <tr><td><b>Passwort:</b></td><td><input name="password" type="password" size="30" maxlength="30"></td></tr>
    </table><br>
    <input type="submit" value="Anmelden">
    </form>
    <?
    ?>
    login2.php
    <?
    include ("connect2.php");
    $username = $_POST["username"];
    $passwort = $_POST["password"];
    $abfrage = "select * from spieler WHERE uname = '$username' and password = '$passwort'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis))
    {
    setcookie("hokuspokus",$username,time()+3600*24*365);
    setcookie("hokuspokus2",$passwort,time()+3600*24*365);
    echo "Die Anmeldung wurde erfolgreich abgeschlossen. Bitte klicke auf den nachfolgenden Link, um deine Navigation anzupassen.";
    echo "<br><br><a href=\"navibar.php\" target=\"Navigation\">Navigation anpassen</a>";
    }
    ?>
    connect2.php
    <?
    mysql_connect("host","user","passwort");
    mysql_select_db("datenbankname");
    ?>
    Ich wäre echt dankbar, wenn jemand einen Tipp für mich hat, weil ohne Cookie kann ich nicht ins Backend und die nötigen Tests vornehmen (es ging aber schon mal).

    Vielen Dank bereits vorab.

    Michael Missenberger
    Zuletzt geändert von missenberger; 19.06.2006, 11:59.

  • #2
    bin nicht % sicher aber aus dem Bauch heraus würde ich sagen das das script mit der while Schleife mehrmals setzt....
    vielleicht mal mit if ($row=....) probieren...
    aber achtung bin noob :-)

    Kommentar


    • #3
      Re: [PHP5] Cookie setzen funktioniert nicht

      Original geschrieben von missenberger
      Warning: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/t/de/pytalhost/ttsg/web/connect2.php:12) in /srv/www/httpd/phost/t/de/pytalhost/ttsg/web/login2.php on line 9
      Wenn die Meldung eindeutig auf Zeile 12 in connect2.php hinweist - dann willst du uns doch wohl nicht erzählen, dass diese nur die gezeigten vier Zeilen enthielte?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Doch, diese enthält sinnloserweise wirklich nur die vier genannten Zeilen. Deshalb kann ich auch nicht in Zeile 12 nachschauen, wo das Problem liegt.

        Bin echt am verzweifeln.
        Alle aufgeführten Dateien sind vollständig von mir zitiert worden. Ich habe nichts hinzugefügt oder weggelassen...

        Kommentar


        • #5
          hasst du dir schon den "sticky" Thread zum Thema can not modify Header durchgelesen ???

          Kommentar


          • #6
            Auch keine Leerzeichen/-zeilen o.ä.?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ja den Sticky hab ich mir durchgelesen und auch schon zigmal was an den Dateien geändert, aber ich kann einfach beim besten Willen nirgends eine Ausgabe, ein Leerzeichen, eine Leerzeile oder sonstiges entdecken.

              Wie würdet ihr die Dateien coden, die ich oben gepostet habe. Bisher hats bei mir noch immer so funktioniert.

              Vielleicht weiß ja jemand Rat. Ich experimentiere mal weiter, um die Fehlerquelle weiter einzugrenzen.

              PS: google auch schon seit einem Tag, um irgendwas brauchbares zu finden. Bisher aber erfolglos.

              Kommentar


              • #8
                Ich habe die login2.php jetzt mal so gemacht:

                <?
                $username = $_POST["username"];
                $passwort = $_POST["password"];
                setcookie("hokuspokus",$username,time()+3600*24*365);
                setcookie("hokuspokus2",$passwort,time()+3600*24*365);
                echo "Die Anmeldung wurde erfolgreich abgeschlossen. Bitte klicke auf den nachfolgenden Link, um deine Navigation anzupassen.";
                echo "<br><br><a href=\"navibar.php\" target=\"Navigation\">Navigation anpassen</a>";
                ?>
                Ich habe das include("connect2.php");
                also entfernt und die Datenbankabfrage auch.
                Der Fehler tritt nicht mehr auf.

                Die connect2.php muss also irgendeine Art von Ausgabe erzeugen. Ich würde die Abfrage aber benötigen, um festzustellen, ob der Benutzername mit dem Passwort übereinstimmt.

                Ich forsche mal fleissig weiter.
                Hat irgendjemand einen Geistesblitz, wenn er sich die connect2.php anschaut. Kann jemand vielleicht mal seine connect2.php posten (ohne Zugangsdaten natürlich!)

                Vielen Dank
                missenberger

                Kommentar


                • #9
                  Das connect2.php hat doch mindestens 12 Zeilen, evtl. vorher und nachher Leerzeilen, und auf der 12. Zeile, nicht vorher, gab es output.

                  Es könnte sein, dass mysql_connect und mysql_select_db eine Fehlerausgabe machen, die du überlesen und hier nicht mitgeteilt hast.

                  Kommentar


                  • #10
                    komisch... komisch...
                    so funktionierts jetzt:

                    <?
                    $database= "xyz";

                    $sqlhost= "xyz";

                    $sqluser= "xyz";

                    $sqlpass= "xyz";


                    $verbindung = @mysql_connect($sqlhost,$sqluser,$sqlpass);

                    mysql_select_db($database);
                    $username = $_POST["username"];
                    $passwort = $_POST["password"];
                    $abfrage = "select * from spieler WHERE uname = '$username' and password = '$passwort'";
                    $ergebnis = mysql_query($abfrage);
                    while($row = mysql_fetch_object($ergebnis))
                    {
                    setcookie("hokuspokus",$username,time()+3600*24*365);
                    setcookie("hokuspokus2",$passwort,time()+3600*24*365);
                    echo "Die Anmeldung wurde erfolgreich abgeschlossen. Bitte klicke auf den nachfolgenden Link, um deine Navigation anzupassen.";
                    echo "<br><br><a href=\"navibar.php\" target=\"Navigation\">Navigation anpassen</a>";
                    }
                    ?>
                    keine Ahnung warum, aber hauptsache es geht.
                    Vielen Dank an alle
                    EDIT:
                    SQL-Zugangsdaten unkenntlich gemacht.
                    wahsaga

                    Zuletzt geändert von wahsaga; 19.06.2006, 13:07.

                    Kommentar

                    Lädt...
                    X