IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

problème pour supprimer un cookie


Sujet :

Web Perl

  1. #1
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut problème pour supprimer un cookie
    bonjour

    j'ai une page qui me sert à me connecter et c'est à ce moment là que je crée un cookie de la façon que l'on connait bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $cook = $cgi->cookie(-name => 'valsession',
    					-value => $valCookee,
    					-path => '/',
    					-expires => $temp);
     
     
    ....
     
    print $cgi->redirect( -url => "http://localhost/cgi-bin/pages/perso.pl" , -cookie =>$cook );
    le cookie se crée correctement aucun problème de ce côté là ..

    par contre maintenant sur la page d'arrivé en l'occurrence "perso.pl" j'ai un bouton deconnexion j'ai donc pensé que pour annuler la valeur du cookie il me suffirait de rappeler la fonction
    cookie de la manière suivante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    my $cook = $cgi->cookie(-name => 'valsession',
    					-value => "",
    					-path => '/',
    					-expires => "now");
     
    print "Set-Cookie: $cook";
    mais à prioris le valeur valsession contient toujours ma valeur de départ ...

    comment se fait-il que cette valeur ne devienne pas nul et que le cookie continu d'exister ?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pour supprimer le cookie, je procède comme suit avec CGI.pm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $cookie = $cgi->cookie(-name=>$name,-value=>'',-expires=>'now');

  3. #3
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    bien je ne comprends d'où vient le problème le cookie ne se supprime pas ...

    voici le code de la page sur laquelle je tente d'annuler le cookie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
     
    my $cook;
    $valsession = $cgi->cookie("valsession");	<-- je recupère la valeur du cookie
     
    if ( defined param("sortir") ){ <-- ici je supprime le cookie
     
    	$cook = $cgi->cookie(-name => 'valsession', -value => '', -expires => 'now');
     
    	$cgi->delete("valsession");
     
    }
     
    if( defined $valsession ){
     
    	print $cgi->header( -type => "text/html" , -expires => "+1m" );
    	HTMLENTETE;
    	HTMLOK;
    	HTMLEND;
     
    }else{
     
    	print $cgi->redirect("http://localhost/cgi-bin/pages/compte.pl");
     
    }

    donc lorsque je me "deconnecte" de la page perso.pl je reviens sur la page compte ...

    là j'ai fait un print sur en recuperant à nouveau la valeur du cookie et il s'affiche toujours ...

    lorsque je me connecte à partir de la page compte.pl je recrée le cookie donc normalement je réinitialise la valeur "valsession" qui est le "name" de mon cookie pourtant lorsque j'arrive sur la page compte je suis obligé de rafraichir la page pour avoir la nouvelle valeur du cookie ...

    Là je ne comprends vraiment plus comment s'est possible

    voici le code de la pge compte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
     
    sub COOKIESESSION {
     
     
    my ($valCookee , $temp) = @_;
     
    $cook = $cgi->cookie(-name => 'valsession',
    					-value => $valCookee,
    					-path => '/',
    				-expires => $temp);
    }
     
    ....
     
    if ( $bouton && $pseudo && $mdp ){
     
    		$message = "etape 1 ....";
     
    		if(controle($pseudo , $mdp)){
     
    		$ident = identifiant;
    		#print $cgi->header("text/html");
    		COOKIESESSION($ident,"+5m"); 
     
    		print $cgi->redirect( -url => "http://localhost/cgi-bin/pages/perso.pl" , -cookie =>$cook );
     
     
     
        		}else{
     
    		print $cgi->header("text/html", -expires => "+1m" );
    		$message = "";
    		HTMLENTETE;
    		HTMLDEFAULT;
    		HTMLEND;
     
    		}
     
    }else{
    		print $cgi->header("text/html", -expires => "+1m");
    		#print $valsession;
    		HTMLENTETE;
    		HTMLDEFAULT;
    		HTMLEND;
     
    }
    en fait tout fonctionne correctement si la session du cookie expire tout seul mais si je force l'expiration cela ne semble pas fonctionner puisque je conserve la valeur de la précdente connexion ...

    Merci

  4. #4
    Membre habitué Avatar de vbcasimir
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    455
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2003
    Messages : 455
    Points : 168
    Points
    168
    Par défaut
    ouep j'ai trouvé mon souci !!!!!

    c'était à cause de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    if( defined $valsession ){
     
       print $cgi->header( -type => "text/html" , -expires => "+1m" ); <-- ici
       HTMLENTETE;
       HTMLOK;
       HTMLEND;
     
    }else{ 
     
    ....

    je n'avais pas realisé de l'impact de -expires => "+1m"




    faut que z'arrête de m'auto corriger !!!!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Effectivement...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour supprimer fichier
    Par rainlily dans le forum ASP.NET
    Réponses: 7
    Dernier message: 20/07/2007, 11h34
  2. [Cookies] Problème pour créer un cookie
    Par Auden dans le forum Langage
    Réponses: 4
    Dernier message: 27/05/2007, 21h40
  3. Problème pour supprimer une session
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 14/05/2007, 16h49
  4. Réponses: 12
    Dernier message: 04/03/2007, 11h43
  5. Problème pour Supprimer/Ajouter un <tr>
    Par vallica dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/09/2006, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo