Cookies setzen...

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

  • Cookies setzen...

    Hallo!

    Ich möchte auf meiner Seite ein Cookie setzen. Das hab ich so gemacht:

    PHP-Code:
    <?php
    $seitenzahl 
    $_GET['seitenzahl'];
    if(
    $seitenzahl != '') {
        
    setcookie ("maxrow""$seitenzahl"time()+(3600*24*100));
        
    $maxrow $_COOKIE["maxrow"];
    } else {
        if(
    $maxrow == '') {
            
    setcookie ("maxrow""5"time()+(3600*24*100));
            
    $maxrow $_COOKIE["maxrow"];
        }
    }
    echo(
    $maxrow);
    ?>
    Und zwar übergeb ich an die Seite eine Variable namens "seitenzahl". Je nachdem welche Zahl in dieser Variablen steht, dementsprechend soll das Cookie diesen Wert annehmen. Wenn keine Zahl übergeben wurde bzw. es auch noch kein Cookie gibt, dann soll das Cookie den Wert 5 haben.

    Jetzt ist es aber so, dass ich die Seite mit der Variable also "seite.php?seitenzahl=10" immer 2x aufrufen muss, bevor das Cookie den neuen Wert abspeichert...

    An was liegt das bzw. hab ich was falsch gemacht??

    Bitte um Hilfe!
    Danke!!

    Lg Karin!

  • #2
    Häufige Probleme:

    *

    Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, für die das Cookie sichtbar sein soll. Um zu testen, ob ein Cookie erfolgreich gesetzt wurde, prüfen Sie noch vor der Ablaufzeit auf der nächsten geladenen Seite, ob das Cookie vorhanden ist. Die Ablaufzeit wird mittels des Parameters expire gesetzt. Eine gute Möglichkeit, die Existenz von Cookies zu prüfen, ist ein print_r($_COOKIE); Aufruf.
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      PHP-Code:
      if (setcookie("maxrow""$seitenzahl"time()+(3600*24*100))) 
        echo 
      "Juhu! Erfolgreich gesetzt";
      else 
        echo 
      "So'n Mist! Geht nich!"
      Mal probiert?
      Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

      Kommentar


      • #4
        Original geschrieben von ArSeN

        Mal probiert?
        Ändert nichts daran, dass man auf einen gesetzten Cookie erst auf der nächsten Seite zugreifen kann!
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Stimmt, aber man schließt immerhin aus das Cookies deaktiviert sind.
          Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

          Kommentar


          • #6
            *Cookies werden nicht sichtbar, bevor nicht eine Seite geladen wird, für die das Cookie sichtbar sein soll.*
            Alles klar! Das erklärt alles!

            Gibts denn die Möglichkeit, dass die Seite, sobald das Cookie gesetzt wurde, neu geladen wird (ohne, dass die gesamte Seite vorher geladen wird)?

            Kommentar


            • #7
              Original geschrieben von karinsch

              Gibts denn die Möglichkeit, dass die Seite, sobald das Cookie gesetzt wurde, neu geladen wird (ohne, dass die gesamte Seite vorher geladen wird)?
              header("Location:"$_SERVER['PHP_SELF']);
              Für Rechtschreibfehler übernehme ich keine Haftung!

              Kommentar


              • #8
                Hätt ich schon versucht, klappt leider auch nicht.
                Ich hab folgendes probiert.
                Der Seitenaufruf mit der "seitenzahl" erfolgt so (auf der Seite index.php):

                PHP-Code:
                print "<table border=0 cellpadding=2 cellspacing=0 width=350><tr><td class=\"text\" width=\"100\">";
                            print 
                "Bilder pro Seite: &nbsp;</td><td>";
                            print 
                "<form name=\"form_seitenzahl\" style=\"margin:0;\">";
                            print 
                "<select name=\"seitenzahl\" onChange=\"MM_jumpMenu('parent',this,0)\" style=\"width:120px;\">";
                            print 
                "<option value=\"#\">Bitte wählen...</option>\n";
                            print 
                "<option value=\"cookie-setzen.php?seitenzahl=5&imgdir=$imgdir\" $selected5>5</option>\n";
                            print 
                "<option value=\"cookie-setzen.php?seitenzahl=10&imgdir=$imgdir\" $selected10>10</option>\n";
                            print 
                "<option value=\"cookie-setzen.php?seitenzahl=20&imgdir=$imgdir\" $selected20>20</option>\n";
                            print 
                "<option value=\"cookie-setzen.php?seitenzahl=50&imgdir=$imgdir\" $selected50>50</option>\n";
                            print 
                "</select>";
                            print 
                "</form></td></tr></table>"
                Die Seite cookie-setzen.php hab ich dann so gemacht:

                PHP-Code:
                <?php
                $seitenzahl 
                $_GET['seitenzahl'];
                if(
                $seitenzahl != '') {
                    
                setcookie ("maxrow""$seitenzahl"time()+(3600*24*100));
                    
                $maxrow $_COOKIE["maxrow"];
                } else {
                    if(
                $maxrow == '') {
                        
                setcookie ("maxrow""5"time()+(3600*24*100));
                        
                $maxrow $_COOKIE["maxrow"];
                    }
                }
                header('Location: http://'$_SERVER['SERVER_NAME'] .'/bilderverwaltung/index.php');
                ?>
                Da wird das Cookie dann aber gar nicht mehr an die index.php übergeben? Da ist das Cookie dann immer leer....??
                Wie gibts das?
                Die beiden Seiten index.php und cookie-setzen.php sind im gleichen Ordner drinnen....

                Kommentar


                • #9
                  Wird der cookie nach dem print gesetzt?
                  error_reporting(E_ALL); ?
                  Für Rechtschreibfehler übernehme ich keine Haftung!

                  Kommentar


                  • #10
                    Auf der Seite wo das Cookie gesetzt wird, steht nur dieser Code:

                    PHP-Code:
                    <?php
                    $seitenzahl 
                    $_GET['seitenzahl'];
                    if(
                    $seitenzahl != '') {
                        
                    setcookie ("maxrow""$seitenzahl"time()+(3600*24*100));
                        
                    $maxrow $_COOKIE["maxrow"];
                    } else {
                        if(
                    $maxrow == '') {
                            
                    setcookie ("maxrow""5"time()+(3600*24*100));
                            
                    $maxrow $_COOKIE["maxrow"];
                        }
                    }
                    header('Location: http://'$_SERVER['SERVER_NAME'] .'/bilderverwaltung/index.php');
                    ?>
                    Es wird ja das Cookie mit Namen "$maxrow" erzeugt. Das müsst ich ja dann auf der index.php einfach mit
                    PHP-Code:
                    echo($maxrow); 
                    auslesen können, oder?
                    Oder versteh ich was falsch?

                    Kommentar


                    • #11
                      Original geschrieben von karinsch
                      Es wird ja das Cookie mit Namen "$maxrow" erzeugt.
                      Nein, mit dem namen maxrow, ohne $.
                      Das müsst ich ja dann auf der index.php einfach mit
                      echo($maxrow);
                      auslesen können, oder?
                      Nein, über $_COOKIE natürlich.

                      $maxrow ist eine Variable, die du nur für die Laufzeite deines cookie-setzen.php-Scriptes "lebt".
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Klingt logisch, ja

                        Also, ich hab jetzt "cookie-setzen.php" mit folgendem Code:

                        PHP-Code:
                        <?php
                        $seitenzahl 
                        $_GET['seitenzahl'];
                        if(
                        $seitenzahl != '') {
                            
                        setcookie ("maxrow""$seitenzahl"time()+(3600*24*100));
                        } else {
                            if(
                        $maxrow == '') {
                                
                        setcookie ("maxrow""5"time()+(3600*24*100));
                            }
                        }
                        header('Location: index.php');
                        ?>
                        Und in der "index.php" ganz oben auf der Seite steht:

                        PHP-Code:
                        <?php
                        $maxrow 
                        $_COOKIE["maxrow"];
                        echo(
                        $maxrow);
                        ?>
                        Dagegen kann man nix mehr sagen, oder?

                        Aber das Cookie wird nicht übernommen.....


                        Was kanns jetzt noch haben?

                        Kommentar


                        • #13
                          error_reporting(E_ALL); ?
                          Für Rechtschreibfehler übernehme ich keine Haftung!

                          Kommentar


                          • #14
                            Da kommt nix bezüglich Cookies, das da was nicht passen würde...

                            Das muss irgendwie mit dem:
                            header('Location: index.php');
                            zusammenhängen, denn wenn ich das rausgebe und dann zuerst die cookie-setzen.php?seitenzahl=10 aufrufe und dann extra nochmal die index.php dann wird das Cookie angezeigt auf der index.php....

                            Und wenn ich zb. so eine Weiterleitung mache:
                            <script LANGUAGE="JavaScript">
                            top.location.href='index.php'
                            </script>
                            dann funktionierts auch!!
                            Zuletzt geändert von karinsch; 11.01.2007, 10:30.

                            Kommentar


                            • #15
                              $seitenzahl = $_GET['seitenzahl'];

                              ist $seitenzahl evtl
                              EDIT:
                              nicht (mein ich)
                              empty?
                              Zuletzt geändert von Damian1984; 11.01.2007, 11:21.
                              Für Rechtschreibfehler übernehme ich keine Haftung!

                              Kommentar

                              Lädt...
                              X