Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    10

    [Cookie]Cookie non creato (forse)

    Salve.
    Sto realizzando IN LOCALE un sito (www.museoipsum.it) che possiede una zona riservata che vuole username e password (è un prototipo quindi per ora vengono sempre accettate le credenziali).


    Sto usando i cookie per registrare le sessioni ed accedere alle pagine riservate ed utilizzo il modulo CGI per realizzare il cookie.

    Questo è lo script

    my $q = new CGI;

    my $cart_id = $q->cookie( -name => "prova_cookie" ) || set_cookie( $q );

    sub set_cookie {

    # print "set_cookie";
    my $q = shift;
    my $server = $q->server_name;
    my $cart_id = unique_id();
    my $cookie = $q->cookie( -name => "prova_cookie",
    -value => $cart_id,
    -domain =>"museoipsum.it",
    -path => "/cgi-bin" );
    #print "Location: http://www.museoipsum.it/cgi-bin/cookie_test.cgi\n",
    print "Content-type: text/html\n\n";
    #print "Set-Cookie: $cookie\n\n";
    print $q->header( -type=>"text/html", -cookie => $cookie);
    exit;
    }




    Mancano le include e la def del metodo unique_id che comunque restituisce un numero random

    Il programma compila e su browser compare sempre questa scritta:
    Set-Cookie: prova_cookie=1rnSw5ZZGzS4ufBQwU2xpQ; domain=museoipsum.it; path=/cgi-bin Date: Fri, 15 May 2009 21:09:33 GMT Content-Type: text/html; charset=ISO-8859-1

    In teoria il cookie è cosi stato inserito, il problema è che non riesco a vedrelo ne da iceweasel tramite visualizza cookie ne altri modi.

    Penso che se rilanciassi di nuovo questo script non arriverei a lanciare la funzione set_cookie perche avrei creatio precedentemente il cookie la volta precedente, e invece ricreo ogni volta il cookie, il che mi fa pensare che il cookie non viene affatto creato....qualche consiglio È URGENTE

    GRAZIE

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    sposta questa riga sotto prima dell'exit:

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    10
    HO fatto ed ora questo è il codice completo:

    #########################
    #!/usr/bin/perl -w

    use strict;
    use URI;
    use HTML::Parser;
    use CGI;

    sub unique_id { # Use Apache's mod_unique_id if available
    return $ENV{UNIQUE_ID} if exists $ENV{UNIQUE_ID};

    require Digest::MD5;

    my $md5 = new Digest::MD5;
    my $remote = $ENV{REMOTE_ADDR} . $ENV{REMOTE_PORT};
    my $id = $md5->md5_base64( time, $$, $remote );
    $id =~ tr|+/=|-_.|; # Make non-word chars URL-friendly
    return $id;
    }

    my $q = new CGI;
    my $cart_id = $q->cookie( -name => "prova_cookie" ) || set_cookie( $q );

    sub set_cookie {

    my $q = shift;
    my $server = $q->server_name;
    my $cart_id = unique_id();
    my $cookie = $q->cookie( -name => "prova_cookie",
    -value => $cart_id,
    -domain =>"museoipsum.it",
    -path => "/cgi-bin" );

    print $q->header( -type=>"text/html", -cookie => $cookie);
    print "Content-type: text/html\n\n";
    exit;
    }

    #########################

    SUl browser mi stampa:

    Content-type: text/html

    Non riesco a capire se il cookie esiste, secondo me ancora no.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    ok, semplifichiamo un po':

    file per scrivere cookie:
    Codice PHP:
    #!/usr/bin/perl
    use CGI qw(:standard);
    use 
    CGI::Cookie;

    #Scrivere un cookie che dura 1 ora:
    $write=new CGI;
    $cookie$write->cookie(-name=>'prova', -value=>"valore", -expires=>'+1h', -path=>'/');
    print 
    "Set-Cookie: $cookie\n";
    print 
    "Content-Type: text/html\n\n";
    print 
    "ho salvato il cookie"
    ####################################

    file per leggere i cookie:
    Codice PHP:
    #!/usr/bin/perl
    use CGI qw(:standard);

    use 
    CGI::Cookie;
    #leggere un cookie
    $read=new CGI;
    $valore_cookie$read->cookie(-name=>'prova');

    print 
    "Content-Type: text/html\n\n";
    print 
    "$valore_cookie"
    Se vuoi puoi metterli come hai fatto tu in una sub ed eventualmente passargli i dati (se hai parecchi cookie da registrare)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    10
    funziona Grazie.

    I prossimi giorni provo ad ampliare la cosa

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.