Cookie Problem

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

  • #16
    Wenn man abschickt, sendet man einen Request an den Server, der dein Script startet. Dieses kann nun zu Beginn einen Cookie setzen.

    Mir scheint du hast einfach noch nicht verstanden, wie die Sache abläuft.
    Deinen Code schau ich mir allerdings erst an, wenn du ihn in PHP-Tags setzt, siehe Forumsregeln.

    Kommentar


    • #17
      okay... dann solltest du das ganze so lösen:

      -> abstimmungs-seite wird angezeigt, falls kein cookie vorhanden ist, sonst fehler

      -> user stimmt ab und wird auf ergebnisseite geleitet:

      dort folgendes:

      PHP-Code:
         if (isset($_POST['punkte'])) {
            
      setcookie(blablub);
            
      //weitere ausgaben, eventuell abstimmungsergebnis und was sonst noch so muss
         
      } else {
            echo 
      "Du Blödmann hast ja gar nicht abgestimmt. Los! Zurück mit dir!";
         } 
      dann wird das Cookie erst gesetzt, wenn Punkte vergeben wurden.
      ansonsten gibt es ganz einfach kein Cookie *gg*

      however....

      falls du abstimmungen einmal pro tag erlauben möchtest, dann lässt du das cookie einfach um mitternacht verfallen...
      Punkt aus und keine Probleme...

      gelöscht werden muss es dann niemalsnicht.. *stolzist*

      greetz, high
      Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
      When everything else fails, manipulate the data...
      Beschriftungen / Großformatdruck / Werbemittel

      Kommentar


      • #18
        @highrise
        Danke, die Idee hat ich auch, nur wie gebe ich die Werte der Felder (Punkte und Kommentar) an das zweite skript weiter?

        Kommentar


        • #19
          naja.. auf der ersten seite sendet du doch hoffentlich ein ganz gewöhnliches html-form (mittels get oder post)....

          so dass der zielseite (die dort im action-Attribut) die Werte auch definitiv in $_POST oder $_GET (oder im Zweifel auch $_REQUEST) zur Verfügung stehen.

          Dort kannst du doch nachsehen, ob was drinsteht....

          greetz, high
          Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
          When everything else fails, manipulate the data...
          Beschriftungen / Großformatdruck / Werbemittel

          Kommentar


          • #20
            ja klaro, so hab ich das ja auch bisher gemacht,
            aber das problem bleibt dann immernoch...

            erster schritt, cookie testen wenn kein cookie abstimmen lassen.

            zweiter schirtt abstimmen und bei fehler zurück zur seite..

            dann ist der cookie schon da! keine korrekte abst8mmung mehr möglich!

            .-..

            hätte mir das eher so vorgestellt:

            erster schritt cookie testen

            zweiter schritt abstimmung, bei korrekter abstimmung cookie setzten bei fehler zurück und erneut versuchen

            ---

            genau das ist ja das prob was ihc ovn anfang an schildere, da ich ja das cookie nur am anfang setzen kann. das würde heissen ich muss bei korrekter abstimmung die werte an ein weiteres skript weitergeben und dort erst das cookie setzten lassen..

            Kommentar


            • #21
              Meine Güte, du denkst einfach zu kompliziert.

              1. User ruft Formularseite auf
              2.1. wenn Cookie vorhanden, Fehler ausgeben
              2.2. sonst, Formular ausgeben
              3. User sendet Formular ab
              4.1. wenn Formulardaten korrekt, Cookie setzen
              4.2. sonst gehe zu 2.2.

              Das übersetzen wir in PHP.
              PHP-Code:
              // 1. passiert von selbst ;)
              /* 2.1. */ 
              if (checkCookie()) displayError();
              /* 2.2. */ else displayForm();
              // 3. passiert wieder von selbst
              /* 4.1. */ 
              if (checkFormdata()) setcookie();
              /* 4.2. */ else displayForm(); 
              Das erste if-else (2.) packst du in Script A, das Formular sendet seine Daten an Script B.
              B enthält das zweite if-else (4.) und da checkFormdata() nichts ausgibt, kann es ganz locker setcookie() nutzen.
              Zuletzt geändert von onemorenerd; 09.07.2006, 12:29.

              Kommentar


              • #22
                Original geschrieben von onemorenerd
                Meine Güte, du denkst einfach zu kompliziert.

                1. User ruft Formularseite auf
                2.1. wenn Cookie vorhanden, Fehler ausgeben
                2.2. sonst, Formular ausgeben
                3. User sendet Formular ab
                4.1. wenn Formulardaten korrekt, Cookie setzen
                4.2. sonst gehe zu 2.2.
                LOL, genauso läuft mein Skript schon von anfang an ab!
                Scheinbar, verstehst du nicht worauf ich hinaus will, also nochmal:

                1. ist klar
                2.1 genauso ist es
                2.2 logo
                3. bis hierhin hat ichs schon
                4.1 wenn formulardaten korrekt, cookie setzen
                GENAU HIER IST DAS PROB!!!
                ich kann das cookie nur am anfang des skripts setzen (noch vor "<html>"), und nicht erst nach der abfrage der formulardaten!(Zumindest wurde mir gesagt, dass es nicht vernünftig geht) Das ist das problem was ich hier von anfang an beschreibe! Wenn du mir zeigst wie das geht, hab ich was ich wissen wollte...

                sag jetzt bitte nich:
                setcookie("cookiename", $AktuellesDatum, $Gueltigkeit);
                das geht nämlich nicht...nur am anfang der seite...

                Zuletzt geändert von Tyler80; 09.07.2006, 13:16.

                Kommentar


                • #23
                  <<ich kann das cookie nur am anfang des skripts setzen (noch vor "<html>"), und nicht erst nach der abfrage der formulardaten!>>
                  dann kontrolliere erst deine formulardaten,stze keks und erst danach schreib dein <html>
                  Slava
                  bituniverse.com

                  Kommentar


                  • #24
                    Script A:
                    PHP-Code:
                    <?php
                    require 'functions.inc.php';
                    if (
                    checkCookie()) 
                        
                    displayError();
                    else 
                        
                    displayForm();
                    ?>
                    Script B:
                    PHP-Code:
                    <?php
                    require 'functions.inc.php';
                    if (
                    checkFormdata())
                        
                    setcookie(/* ... */);
                    else 
                        
                    displayForm();
                    ?>
                    Script B hat bis zur Funktion setcookie() keine Ausgabe erzeugt und nur darauf kommt es an: setcookie() muß nicht etwa der erste Befehl im Script sein, sondern muß nur aufgerufen werden, bevor irgendeine Ausgabe erfolgte.

                    Du kannst Script A und B auch in einem vereinen:
                    PHP-Code:
                    <?php
                    if (!isset($_POST['submit'])
                        require 
                    'scripta.php';
                    else
                        require 
                    'scriptb.php';
                    ?>
                    Immernoch ist setcookie() im Fall 4.1. vor jeder Ausgabe dran ...

                    Kommentar


                    • #25
                      Original geschrieben von Tyler80
                      4.1 wenn formulardaten korrekt, cookie setzen
                      GENAU HIER IST DAS PROB!!!
                      ich kann das cookie nur am anfang des skripts setzen (noch vor "<html>"), und nicht erst nach der abfrage der formulardaten!
                      Wenn du die "Abfrage der Formulardaten" erst dann machst, wenn du bereits '<html>...' ausgegeben hast, ist das wirklich "dein Problem". Dann stelle den Scriptablauf halt entsprechend um - prüfe erst, bevor du irgendwelche Ausgaben machst.
                      Das ist das problem was ich hier von anfang an beschreibe! Wenn du mir zeigst wie das geht, hab ich was ich wissen wollte...
                      Wenn du ein wenig selber nachdenkst, und dir mal überlegst, wie man so ein Script vernünftig aufbaut - dann hast du auch das, was du brauchst.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #26
                        ICH HABS!

                        So, erstmal danke für die Hilfe, aber das Problem war nun wohl ein ganz einfaches.
                        Es war kein Problem mit dem Aufbau des Codes oder der Systematik die ich mir überlegt hatte.

                        Ich hab es jetzt einfach so gelört, das ganze php skript vor "<html>" zu schreiben, ich wusste nicht, da ich erst seit 3 tagen mit php rummache, dass das geht.
                        Auch wenn das einigen als logisch erscheinen mag(und deshalb keinem aufgefallen ist), ist es das für php newbies wohl kaum.

                        Jetzt funktioniert alles wunderbar und ich musste nichtmal meine Codes überarbeiten...

                        THX4Help


                        THREAD CAN BE CLOSED

                        Kommentar

                        Lädt...
                        X