Pokaż wyniki 1 do 4 z 4

Temat: [perl] obsługa cookies i redirecty

  1. #1
    Zarejestrowany
    Oct 2009
    Postów
    6

    Domyślnie [perl] obsługa cookies i redirecty

    Witam, chce zbudować sobie mechanizm sesji oparty na CGI:COOKIE, niestety mam problemy i chce poprosić oo pomoc.
    Z tego co zrozumiałem, to tworzenie i wysłanie powinno wyglądać tak:

    my $p=new CGI;
    my $cookie = new CGI::Cookie(-name=>'tekst',-value=>123456);
    $p->header(-cookie=>$cookie);

    a odczyt cookie np tak:
    %cookies = fetch CGI::Cookie;
    if (defined($cookies{tekst}))
    {
    print "cookie istnieje";
    }

    niestety odczyt nie dzieła..

    innym problemem jest brak przekierowania, gdy umieszcze kod na jakiejś stronie, np w pliku index.cgi umieściłem kod:
    print $p->redirect('display.cgi');
    i otrzymuje informacje: Status 302 found location display.cgi

    oba pliki są w tym samym katalogu..

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Ja do ciasteczek uzywam golego CGI (zobacz tutaj) a nie CGI::Cookie. Nie mam teraz czasu sprawdzac, ale zobacz, ze to co odzyskujesz jako cookie w Twoim kodzie to nie hash tylko hash obiektow i do step do wartosci odbywa sie przez odpowiednie metody

    Kod:
        # fetch existing cookies
        %cookies = fetch CGI::Cookie;
        $id = $cookies{'ID'}->value;
    redirect - domyslnie odbywa sie redirect 302 i jest to prawidlowe zachowanie, tak jak podano tutaj
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Oct 2009
    Postów
    6

    Domyślnie

    Cytat Napisał TQM Zobacz post
    Ja do ciasteczek uzywam golego CGI (zobacz tutaj) a nie CGI::Cookie. Nie mam teraz czasu sprawdzac, ale zobacz, ze to co odzyskujesz jako cookie w Twoim kodzie to nie hash tylko hash obiektow i do step do wartosci odbywa sie przez odpowiednie metody

    Kod:
        # fetch existing cookies
        %cookies = fetch CGI::Cookie;
        $id = $cookies{'ID'}->value;
    redirect - domyslnie odbywa sie redirect 302 i jest to prawidlowe zachowanie, tak jak podano tutaj
    a mógłbyś wkleić jak to robisz? próbowałem już na różne sposoby z gołym CGI i z CGI:Cookies i nic nie wychodzi. Cookie chyba jest wysłany, ale nie wiem, jak go pobrać z przeglądarki.

    Docelowo chce osiągnąć coś takiego:
    uruchamiam skrypt index.cgi z formularzem logowania
    po wysłaniu prawidłowych danych tworzy się cookies
    przy ponownym wpisaniu adresu index.cgi jest sprawdzane, czy istnieje cookie o określonym name, jeśli tak to przekierowuje na stronę dostępną po zalogowaniu

  4. #4
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    2 rozwiazania...

    1. use CGI
    Kod:
    use CGI;
    my $cgi = CGI->new;
    my $cookie = $cgi->cookie('tekst');
    print "Text z ciacha to ", $cookie, "\n";
    2. bardziej hardcore ale przydatne gdy musisz recznie obrobic calosc... czyli goly Perl bez modulow
    Kod:
        my @incookies = split(/; /, $ENV{HTTP_COOKIE});
        my %cookie;
        foreach my $tmp (@incookies) {
          $tmp =~ m|^(.*?)=(.*)|;
          $cookie{$1} = $2;
        }
    Oba dzialaja, pamietaj tylko ze w pierwszym przypadku mozna zapisac nieco bardziej skomplikowane dane niz tylko tekst :-) wiecej przykladow w manualu do CGI ktory podlinkowalem wczesniej
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

Podobne wątki

  1. [Perl] Kurs Perl - cz.1 - wprowadzenie i podstawy
    By TQM in forum Perl/Python/TCL/Prolog
    Odpowiedzi: 22
    Autor: 10-27-2014, 00:50
  2. Odpowiedzi: 18
    Autor: 07-14-2009, 11:55
  3. Odpowiedzi: 31
    Autor: 05-20-2008, 17:01
  4. cookies
    By dark angel in forum Hacking
    Odpowiedzi: 7
    Autor: 07-11-2007, 10:24
  5. Cookies
    By sidknot in forum Hacking
    Odpowiedzi: 15
    Autor: 06-18-2007, 10:15

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52