Formular in Cookie speichern

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

  • Formular in Cookie speichern

    Hi Leute,

    Ich habe einen Formular geschrieben, bei dem alle Daten, die in die Zeilen geschrieben wurden, in ein Cookie gespeichert werden sollen. Doch leider habe ich Probleme beim speichern des Cookie. Ich habe viele Lösungsansätze hergenommen, aber nicht wirklich hat es geklappt. Zuerst war es ein parser Fehler, jetzt ist es ne Warnung. Ich komm nicht mehr weiter und hoffe von auch auf einen Denkanstoß. Dies sind die Codes, die ich verwende:

    PHP-Code:
    <form method="post" action="02.php"><font face="verdana" size="2"><table>
    <
    tr><td>Player Name:</td><td><input type="text" name="1"><br></td></tr>
    <
    tr><td>Username:</td><td><input type="text" name="2"><br></td></tr>
    <
    tr><td>Password:</td><td><input type="text" name="3"><br></td></tr>
    <
    tr><td>EDC Code:</td><td><input type="text" name="4"><br></td></tr>
    <
    tr><td colspan="2" align="right"><input type="submit" name="Button" value="Login">
    </
    td></tr></table></font>
    </
    form
    Und hier 02.php:
    PHP-Code:
    <?php
    echo "Sie haben folgende Angaben gemacht:<br>";
    echo 
    "Player Name: $_POST[1]";
    echo 
    "<br>";
    echo 
    "Username: $_POST[2]";
    echo 
    "<br>";
    echo 
    "Password: $_POST[3]";
    echo 
    "<br>";
    echo 
    "EDC Code: $_POST[4]";

    $value = array('$_POST[1]+$_POST[2]+$_POST[3]+$_POST[4]');

    setcookie("Name"$valuetime()+60*60*24*30*12"/"".example.com");

    $cookie $_COOKIE["Name"];
    echo 
    "Der Inhalt des Cookies: $cookie";

    ?>
    Als warnung wird das ausgegeben: Warning: setcookie() expects parameter 2 to be string, array given in [...]02.php on line 13

    Die ganzen Daten sollem im Cookie getrennt mit einem Plus (+) gespeichert werden. z.B. soll der Inhalt des Cookies so aussehen:

    Player Name+Username+Password+EDC Code

    Sicher gibt es hier irgendwo einen Fehler, doch leider kann ich ihn nicht finden
    Zuletzt geändert von salim_aliya; 23.12.2007, 19:14.
    MFG
    salim_aliya
    Lesen, lernen, ausüben und Ziele erreichen...

  • #2
    Versuch mal das:
    PHP-Code:
    $value = array($_POST['1']."+".$_POST['2']."+".$_POST['3']."+".$_POST['4']); 
    Aber warum nimmst du Cookies? Es gibt user die schalten ihre Cookies aus... ich würde es in einer Session speichern.. ist auch sicherer.

    Kommentar


    • #3
      also Fehlermeldung sagt, dass setcookie kein array, sondern ein string haben möchte, also verstehe ich nicht ganz warum du Fehler nicht finden kannst.
      $value = array(....

      versuch besser mit implode dein $value als String zu definieren und mach dir keine Hoffnung, dass du direkt nach dem setcookie in $_COOKIE schon ein Wert findest, da es erst bei nechtem Request da ist.
      ausserdem würde ich mit Mischmasch von setcookie und $_COOKIE in einem Script aufhören.
      Slava
      bituniverse.com

      Kommentar


      • #4
        Original geschrieben von Nordin
        Versuch mal das:
        PHP-Code:
        $value = array($_POST['1']."+".$_POST['2']."+".$_POST['3']."+".$_POST['4']); 
        und jetzt haben wir wieder ein Array
        Slava
        bituniverse.com

        Kommentar


        • #5
          und jetzt haben wir wieder ein Array
          oh hehe mir ist nur aufgefallen das es nicht so toll aussah *g*

          für die ordnung halber schreib ich also nochmal...

          also aus das:
          PHP-Code:
          $value = array($_POST['1']."+".$_POST['2']."+".$_POST['3']."+".$_POST['4']); 
          mach das:
          PHP-Code:
          $value $_POST['1']."+".$_POST['2']."+".$_POST['3']."+".$_POST['4']; 

          Kommentar


          • #6
            Danke, ihr wart allo so nett^^ Ich werde euere Lösungen gleich ausprobieren...

            Das ich das mit dem Array und String nicht erkennen konnte liegt daran, weil ich noch absoluter Anfänger bin. Kann gerade mal n paar Befehle und die Grundlagen^^
            MFG
            salim_aliya
            Lesen, lernen, ausüben und Ziele erreichen...

            Kommentar


            • #7
              Original geschrieben von Nordin
              Aber warum nimmst du Cookies? Es gibt user die schalten ihre Cookies aus... ich würde es in einer Session speichern.. ist auch sicherer.
              Cookies nehme ich deswegen her, weil ich ein System aufbauen möchte. Ich bastle grad an einer Clan Homepage für meine Leute und die Sollen auf bestimmte Sachen zugreifen können, wie z.B. selbst herausgefunde Cheat Methoden, selbst Programmierte Patches etc. was "nicht Mitglieder" nicht einsehen dürfen. Der Cookie soll eine Art passwort dienen, dass beim aufrufen der Seite auf die Existenz und Inhalt geprüft wird und entsprechend den zugriff genehmigt oder verweigert. Aber deine Lösung ist auch interessant. Kannst du mir sagen wie das geht und auch paar Beispiele zeigen?
              MFG
              salim_aliya
              Lesen, lernen, ausüben und Ziele erreichen...

              Kommentar


              • #8
                Achso versteh... eine Art "autologin". Dann ist das ok... und wenn es eh nur leute aus einen kleinen bekantenkreis sind dann passt das.

                Bei einer session-variante würde ich die ganzen daten in der session speichern so sieht sie keiner... der nachteil ist das der user sich immer wieder einloggen muss wenn er kommt. Aber ich denke so wie du es machst ist es voll ok. Zumal du noch Anfänger bist ist das auch gut das du das mit den cookies mal durchspielst.

                Kommentar


                • #9
                  Hi,

                  Ja genauso wie du es sagst. Nur n paar Leute mehr nicht. vllt so 20.

                  Ich habe das mit implode etc. gemacht, aber die nächste Warnung ist gekommen

                  Sie lautet:

                  Warning: Cannot modify header information - headers already sent by (output started at .../02.php:2) in .../02.php on line 15

                  Der Script sieht jetzt so aus:

                  PHP-Code:
                  <html><body><font face="verdana" size="2">
                  <?php
                  echo "Sie haben folgende Angaben gemacht:<br>";
                  echo 
                  "Player Name: $_POST[1]";
                  echo 
                  "<br>";
                  echo 
                  "Username: $_POST[2]";
                  echo 
                  "<br>";
                  echo 
                  "Password: $_POST[3]";
                  echo 
                  "<br>";
                  echo 
                  "EDC Code: $_POST[4]";

                  $value = array($_POST['1'], $_POST['2'], $_POST['3'], $_POST['4']);
                  $cookiewert implode("+"$value);

                  setcookie("Name"$cookiewerttime()+60*60*24*30*12"/"".example.com");

                  $cookie $_COOKIE["Name"];
                  echo 
                  "Der Inhalt des Cookies: $cookie";

                  ?>
                  </font></body></html>
                  Der Script Funktioniert jetzt wunderbar, das Cookie wird gesetzt. Aber diese Warnung ist hässlich. Hat einer ne Idee, wie ich sie wegkriegen könnte?

                  Danke für die ganze Hilfe bisjetzt...
                  Zuletzt geändert von salim_aliya; 23.12.2007, 21:49.
                  MFG
                  salim_aliya
                  Lesen, lernen, ausüben und Ziele erreichen...

                  Kommentar


                  • #10
                    Original geschrieben von salim_aliya
                    Der Script Funktioniert jetzt wunderbar, das Cookie wird gesetzt. Aber diese Warnung ist hässlich. Hat einer ne Idee, wie ich sie wegkriegen könnte?
                    Der Cookie muss ganz am Anfang vom Script bzw bevor irgendetwas anderes gesendet wird gesetzt werden.

                    Oder du benutzt: http://de.php.net/manual/de/function.ob-start.php und http://de.php.net/manual/de/function.ob-flush.php

                    Kommentar


                    • #11
                      Original geschrieben von lennart
                      Der Cookie muss ganz am Anfang vom Script bzw bevor irgendetwas anderes gesendet wird gesetzt werden.
                      Diesen Tipp habe ich nicht verstanden...

                      Danke für diesen Tipp. Ich habe es in mein Script eingebaut, aber wie immer habe ich wieder was falsch gemacht Die Doku habe ich zig mal durchgelesen und auch das Beispiel mit den Äpfel und Birnen angesehen. Aber jetzt gibt mir Das Script gar nix mehr aus, die Seite ist komplett leer

                      Also, so sieht mein aktuelles Script aus:

                      PHP-Code:
                      <html><body><font face="verdana" size="2">
                      <?php

                      function callback() 
                      {
                        
                      $value = array($_POST['1'], $_POST['2'], $_POST['3'], $_POST['4']);
                        
                      $cookiewert implode("+"$value);

                        
                      setcookie("Name"$cookiewerttime()+60*60*24*30*12"/"".example.com");

                        
                      $cookie $_COOKIE["Name"];
                        echo 
                      "Der Inhalt des Cookies: $cookie";
                        echo 
                      "<br>";
                        echo 
                      "Sie haben folgende Angaben gemacht:<br>";
                        echo 
                      "Player Name: $_POST[1]";
                        echo 
                      "<br>";
                        echo 
                      "Username: $_POST[2]";
                        echo 
                      "<br>";
                        echo 
                      "Password: $_POST[3]";
                        echo 
                      "<br>";
                        echo 
                      "EDC Code: $_POST[4]";
                      }
                      ob_start("callback");
                      ob_end_flush();
                      ?>
                      </font></body></html>
                      Ich hoffe, ihr könnt mir helfen...
                      MFG
                      salim_aliya
                      Lesen, lernen, ausüben und Ziele erreichen...

                      Kommentar


                      • #12
                        Original geschrieben von salim_aliya
                        Diesen Tipp habe ich nicht verstanden...
                        Das heißt einfach dass du den Session setzen musst, bevor du irgendein HTML o.ä. sendest. Also in deinem Fall warscheinlich einfach vor dem ersten echo.

                        Original geschrieben von salim_aliya

                        Danke für diesen Tipp. Ich habe es in mein Script eingebaut, aber wie immer habe ich wieder was falsch gemacht Die Doku habe ich zig mal durchgelesen und auch das Beispiel mit den Äpfel und Birnen angesehen. Aber jetzt gibt mir Das Script gar nix mehr aus, die Seite ist komplett leer

                        PHP-Code:
                        ob_start("callback");
                        ob_end_flush(); 
                        Nunja... Du machst einen Cache auf. Füllst nichts hinein und sendest dann den leeren Cache gleich raus Tipp: Hat auch hier wieder was mit der Positionierung zu tun.

                        Kommentar


                        • #13
                          Wieder nix passiert. Ich glaube, ich bin zu dumm dafür
                          Es kam wieder nix raus, keine Ausgabe, keine Fehler oder Warnungen...

                          So siehts jetzt aus:

                          PHP-Code:
                          <html><body><font face="verdana" size="2">
                          <?php

                          ob_start
                          ("callback");

                          function 
                          callback() 
                          {
                            
                          $value = array($_POST['1'], $_POST['2'], $_POST['3'], $_POST['4']);
                            
                          $cookiewert implode("+"$value);

                            
                          setcookie("Name"$cookiewerttime()+60*60*24*30*12"/"".example.com");

                            
                          $cookie $_COOKIE["Name"];
                            echo 
                          "Der Inhalt des Cookies: $cookie";
                            echo 
                          "<br>";
                            echo 
                          "Sie haben folgende Angaben gemacht:<br>";
                            echo 
                          "Player Name: $_POST[1]";
                            echo 
                          "<br>";
                            echo 
                          "Username: $_POST[2]";
                            echo 
                          "<br>";
                            echo 
                          "Password: $_POST[3]";
                            echo 
                          "<br>";
                            echo 
                          "EDC Code: $_POST[4]";
                          }

                          ob_end_flush();
                          ?>
                          </font></body></html>
                          Muss ich bei diesem ob_end_flush() auch Parameter einfügen und wenn ja, auch wieder dieses callback?
                          Zuletzt geändert von salim_aliya; 23.12.2007, 23:14.
                          MFG
                          salim_aliya
                          Lesen, lernen, ausüben und Ziele erreichen...

                          Kommentar


                          • #14
                            Original geschrieben von salim_aliya
                            Muss ich bei diesem ob_end_flush() auch Parameter einfügen und wenn ja, auch wieder dieses callback?
                            Hättest du die Doku richtig gelesen, hättest du gesehen, dass dein "callback" dort keinen Sinn macht. Lass das einfach mal weg.

                            Kommentar


                            • #15
                              @salim_aliya
                              setcookie("Name", $cookiewert, time()+60*60*24*30*12, "/", ".example.com");
                              $cookie = $_COOKIE["Name"];

                              Auch wenn du bei Scriptanfang das schreibst, wirst du bei dem Erstem scriptaufruf eine Fehlermeldung bekommen.
                              $_COOKIE['Name'] existiert bei dem erstem Aufruf nach dem setcookie nicht. Auch bei zwietem Aufruf wenn du ein anderes Wert mit setcookie setzt, wirst du zwar keine Fehlermeldung erhalten, aber der neugesetzter Wert wird nicht mit dem Wert in $_COOKIE gleich sein.
                              Ich werde einfach abraten setcookie() und $_COOKIE in einem Script zu verwenden, da es bei erstem Aufruf automatisch zu den Problemen führt.
                              Slava
                              bituniverse.com

                              Kommentar

                              Lädt...
                              X