Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Iphone Cookie Fehlermeldung

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Iphone Cookie Fehlermeldung

    Hallo,

    ich habe mir folgendes LogIn Script mit Cookie selber erstellt.
    Im normalen PC Browser (Chrome, Firefox) funktioniert es auf meinem "Localhost" auf meinem PC einwandfrei. Jedoch bekomme ich auf dem Webserver und Iphone die folgende Fehlermeldung:

    Warning: Cannot modify header information - headers already sent by (output started at /home/www/web/html/index.php:5) in/home/www/web/html/index.php on line 43


    der zugehörige Code lautet:
    PHP-Code:
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>LogIn</title>
    <?php  #Refresh der Seite erzwingen, damit das Cookie direkt verarbeitet werden kann
        
    if (isset($_GET['Button'])) { 
            if (
    $_GET['Button'] == 'Abmelden' || $_GET['Button'] == 'LogIn' ) {
            echo 
    '<meta http-equiv="refresh" content="0; URL='$_SERVER["SCRIPT_NAME"] .'">';
            }
        }  
    ?> 
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
      <meta http-equiv="Content-Style-Type" content="text/css" />
      <meta http-equiv="Content-Script-Type" content="text/javascript" />
      <meta name="robots" content="NOINDEX, NOFOLLOW" />
     </head>
    <body>
    <?php
    $LogInPasswort 
    "meinPasswort";

    # LogIn Formular ausgeben falls kein gültiges Cookie auf dem Gerät vorhanden ist
    if (isset($_COOKIE["myCookie"])){}
    else {
        echo 
    "<form name='FormLogIn' action='" $_SERVER["SCRIPT_NAME"] . "' method='GET'>
         <br><b>Zugangskennwort:</b><br><br> 
         <input type='password' title='' name='Passwort' value='' size='20' /> <br><br> 
         <input type='submit' name='Button' value='LogIn' /></form>
        "
    ;
    }

    # Ausgabe falls ein gültiges Cookie auf dem Gerät vorhanden ist
    if (isset($_COOKIE["myCookie"])){

    echo 
    'LogIn erfolgreich';

    }

    # Änderungen durch POST Befehl und Abmeldung
    if ($_SERVER['REQUEST_METHOD'] == "GET") {

        
    # Cookie setzen
        
    if (isset($_GET["Button"])) { 
            if (
    $_GET["Button"] == "LogIn" && $_GET["Passwort"] == $LogInPasswort){
                
    setcookie("myCookie","myCookie_Wert",0); #Cookie hält bis zum Beenden des Browser
                #setcookie("myCookie","myCookie_Wert",time()+(3600*24)); #Cookie hält 24 Stunden
            
    }
            if (
    $_GET["Button"] == "LogIn" && $_GET["Passwort"] != $LogInPasswort){
                echo 
    'Falsches Passwort<br>';
            }
        }

    ############### 
        
        #Abmeldenbutton und Cookie zurücksetzen
        
    if (isset($_COOKIE["myCookie"])){
            echo 
    "<br><br> <form name='FormAbmelden' action='" $_SERVER["SCRIPT_NAME"] . "' method='GET'>
            <input type='submit' name='Button' value='Abmelden'/></form>"
    ;
            
            if (isset(
    $_GET["Button"])) { 
                if (
    $_GET["Button"] == "Abmelden") {
                
    setcookie("myCookie","myCookie_Wert",time()-3600); #Cookie zurücksetzen
                
    }
            }
        }
    }
    ?>
    </body>
    </html>
    bzgl. der Fehlermeldung habe ich einige Seiten gegooglet, werde aber nicht daraus schlau, was ich falsch gemacht habe... bin noch Anfänger.

    Über Hilfe wäre ich sehr dankbar.

    Gruß
    Klaus25

  • #2
    Ich bezweifel sehr stark dass das irgendwo funktioniert. Der Fehler hat rein gar nichts mit dem Browser oder dem Betriebssystem zutun.

    Du darfst keine Ausgabe machen bevor du einen Cookie setzen willst. Das findest du aber auch überall wenn du die Fehlermeldung suchst.

    Kommentar


    • #3
      Danke für den Tipp,

      habe es geändert und die Cookie-Setz-Abfrage an den Anfang des Scriptes gesetzt.

      Kommentar


      • #4
        Konsequentes zusammenkleben des Contents in einer Variable als String oder Array vermeidet solche Probleme.

        Kommentar


        • #5
          funktioniert es auf meinem "Localhost" auf meinem PC einwandfrei
          XAMPP benutzt einen Ausgabepuffer, der dafür sorgt, daß die Header-Informationen zuerst gesendet werden. Im "echten" Betrieb gibt es den nicht.

          Kommentar

          Lädt...
          X