Ankündigung

Einklappen
Keine Ankündigung bisher.

eval und Cookie

Einklappen

Neue Werbung 2019

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

  • eval und Cookie

    ich hab mir gedacht, für eine Benutzerabfragt loggt man sich ein, und speichert Username + PW in einem Cookie. Und zwar in der Rohform von php-Code so dass man das beim einlesen mit eval in ein Array schubsen kann.
    zum Schreiben des Cookies benutz ich dann das hier:
    Code:
    $Cookiewert = "\"user\" =>\"".$_POST["username"]."\", \"PW_Md5\" => \"".md5($_POST["PW"])."\"";
    if(!setcookie ("TobiKeks", $Cookiewert, time()+60*60*24*30, "/", ".bei.mir")) {die("Fehler beim Eintragen des Cookies!");}
    Klappt auch fast, abgesehen davon dass in dem Cookie viele %20's stehen.
    Beim erneuten Zugriff wird nun erst getestet, ob das Cookie gesetzt ist. Wenn ja, soll der das hiermit wieder einlesen
    Code:
    $evalstr = "\$vars = array (".$_COOKIE["TobiKeks"].");";
    eval($evalstr);
    Ergebnis ist dann jedoch leider nur ein 'unexpected $end in eval()'d code on line 1'
    Was läuft daran falsch?

  • #2
    örgs sorry, aber wieso verwendet man freiwillig eva(i)l ? die %20 kommen weil du halt
    nun mal leerzeichen in deinem cookie stehen hast .. und da ein cookie nur einen string
    beinhaltet wird das halt nun mal ersetzt .. ich weis auch nicht, wieso du werte in der form
    da rein packst .. nimm ein array, gib das als wert für das cookie an und alles läuft automatisch.
    ansonsten fürs überprüfst checkste halt einfach wie ja auch schon gemacht
    $_COOKIE['...'] und gut ..

    Kommentar


    • #3
      hab jetzt versucht, ein array mit Serialize und dann setcookie zu speichern. Das Speichern geht auch, nur kommt unserialize wohl mit Strings in einem Array nicht klar, jedenfalls kommt am Ende nur ein ''nix'' dabei heraus. gettype sagt das wär ein boolean...
      Ins Cookie schreiben tu ich jetzt mit
      Code:
      $serializewert = array(user => $_POST["username"], PW_Md5 => md5($_POST["PW"]));
      $Cookiewert = serialize($serializewert);
      if(!setcookie ("TobiCookie", $Cookiewert, time()+60*60*24*30, "/", ".zu.hause")) {die("...");}
      und wieder herausholen mit
      Code:
      $Cookie = $_COOKIE["TobiCookie"];
      $vars = unserialize ($Cookie);

      Kommentar


      • #4
        Addslashes könnte helfen.

        PHP-Code:
        if(!setcookie ("TobiCookie"addslashes($Cookiewert), time()+60*60*24*30"/"".zu.hause")) {die("...");} 
        Web-Entwickler/-in bei der IAK GmbH

        Kommentar


        • #5
          Zitat von grollmaniac
          hab jetzt versucht, ein array mit Serialize und dann setcookie zu speichern.
          Arrays werden so serialisiert:
          http://test.php-help.info/serialize-1/ (Quelltext wird angezeigt)

          btw: warum verwendest Du keine Session?

          Kommentar

          Lädt...
          X