Steffen Wawryniuk: & Cookie setzen funktioniert nicht (habe orginal Script)

Hi,

ich habe mir aus dem Archive die BESTEN Dinge rausgesucht und ein Script herausgesucht:

sub register {
   print "Content-type: text/html\n\n";
if(defined ($id=cookie(-name => 'ID'))) { # Cookie gesetzt!
      print header();
   print b("Nummer $id! Was für eine Freude!");
                                      }
else { $id = unpack ('H*', pack('Nc', time, $$ % 0xff));
       $cookie = cookie('-name' => 'ID',
                     '-value' => $id,
      '-expiries' => '+1d',
      '-domain' => '.arenaxtreme.de');
  print header('-cookie' => $cookie);
  print b("Willkommen bei der Cookie-Mafia, Nummer $id!");
  }          
}

Das Script erkennt IMMER das KEIN Cookie da is, und setzt IMMER einen neuen...
DER wird ABER nicht GESPEICHERT ....  und somit durchläuft das Script IMMER die ELSE Routine ohne den Cookie NUN WIRKLICH zu setzen ..

DANKE FÜR EURE Hilfe

  1. Hallo Steffen,

    print "Content-type: text/html\n\n";

    Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
    Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus, und wie heißts so schon bei highlander:
    'Es kann nur einen geben'.

    Grüße
    Klaus

    1. print "Content-type: text/html\n\n";
      Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
      Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus

      hehe THX STIMMT !!!
      war MEIN Fehler ....
      naja toll dann arbeite ich jetzt mal weiter...
      wenn probleme gibt... bin ich wieder da *g*

    2. » >    print "Content-type: text/html\n\n";

      Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
      Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus

      hehe zu früh gefreut... du hast ZWAR recht...
      Aber GESPEICHERT werden die Cookies trozdem nicht, NUR virtuell, schließe ich den Browser und starte ihn dann neu  erkennt er den Cookie nicht und vergiebt einen NEUEN  bei Refresh es er dann also da, sobald ich den Browser schließe aber weg...

      1. » >    print "Content-type: text/html\n\n";

        Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
        Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus

        hehe zu früh gefreut... du hast ZWAR recht...
        Aber GESPEICHERT werden die Cookies trozdem nicht, NUR virtuell, schließe ich den Browser und starte ihn dann neu  erkennt er den Cookie nicht und vergiebt einen NEUEN  bei Refresh es er dann also da, sobald ich den Browser schließe aber weg...

        Hallo,

        Jaja der Tippteufel hat wieder zugeschlagen

        '-expiries' => '+1d',

        müßte
              '-expires' => '+1d',
        heißen

        Bis dann
        Klaus

        1. Jaja der Tippteufel hat wieder zugeschlagen

          '-expiries' => '+1d',
          müßte

          »»        '-expires' => '+1d',

          heißen

          okay danke es läuft !!!
          Habe jetzt aber noch ne Frage...
          Ist es mit dem GLEICHEN script möglich mehrere IDs (Infomortionen) zu schreiben UND auszulesen

          if(defined ($id=cookie(-name => 'ID'))) { # Cookie gesetzt!
                print header();
             print b("Nummer $id! Was für eine Freude!");
                                                }
          else { $id = unpack ('H*', pack('Nc', time, $$ % 0xff));
                 $cookie = cookie('-name' => 'ID',
                               '-value' => $id,
                '-name' => 'UserName',
                               '-value' => $username,
                '-expires' => '+1y',
                '-domain' => '.arenaxtreme.de');
            print header('-cookie' => $cookie);
            print b("Willkommen bei der Cookie-Mafia, Nummer $id! <br> UserName : $username");
            }

          also so das ich nicht nur 'ID' habe, sondern auch  'Name'  usw.
          ???
          Wie schreibe & lese ich dann soetwas ???
          dnake nochmal für die hilfe...

          1. Hi,
            Auszug aus der Dioku von CGI.pm:

            To create multiple cookies, give header() an array reference:

            $cookie1 = $query->cookie(-name=>'riddle_name',
                                              -value=>"The Sphynx's Question");
                    $cookie2 = $query->cookie(-name=>'answers',
                                              -value=>%answers);
                    print $query->header(-cookie=>[$cookie1,$cookie2]);

            Das ist wohl, was Du meinst.

            Klaus