[PHP] fermer session à partir d'une image

Résolu
clem285 Messages postés 290 Statut Membre -  
clem285 Messages postés 290 Statut Membre -
Bonjour,
je voudrais fermer une session en php lorsque je clique sur une image

j'ai essayé sa :

<?php
echo "<a href=\"acceuil.php?\" onclick = \"session_destroy();\"><IMG SRC='images/deco.png' BORDER=0 WIDTH=50 HEIGHT=50></a>";
?>

cela :

<?php
echo "<a href=\"acceuil.php?\"><IMG SRC='images/deco.png' BORDER=0 WIDTH=50 HEIGHT=50 onclick = \"session_destroy();\"></a>";
?>


et même cela :

<?php
echo "<a href=\"acceuil.php?\"  onclick = \"session_destroy();\"><IMG SRC='images/deco.png' BORDER=0 WIDTH=50 HEIGHT=50 onclick = \"session_destroy();\"></a>";
?>


mais aucun ne fonctionne

alors que si je met tout simplement session_destroy() cela fonctionne.
Configuration: Windows XP
Firefox 3.0

6 réponses

  1. donuts08 Messages postés 523 Statut Membre 39
     
    bonjour,

    session_destroy() c'est du PHP donc tu ne pourras pas l'exécuter comme ça, il faut que tu mettes un lien vers une page PHP qui contient session_destroy().
    1
    1. clem285 Messages postés 290 Statut Membre 83
       
      erf, j'y ait même pas pensé :S
      faut vraiment que je dorme moi u_u

      je laisse ouvert jusqu'à se soir, si quelqu'un à une meilleur solution
      0
      1. donuts08 Messages postés 523 Statut Membre 39 > clem285 Messages postés 290 Statut Membre
         
        tu peux utiliser ajax mais prévoit quelque chose pour prévenir l'utilisateur qu'il a été déconnecté.
        0
  2. Utilisateur anonyme
     
    Ca va être un peu débile mais essaye ça : (j'avais un problème avec une redirection et ça avait pu marcher comme ça)
    <a href="acceuil.php"><img SRC='images/deco.png' BORDER=0 WIDTH=50 HEIGHT=50 
    onclick = FermeSession()></</a>      <!--ne le met pas dans du code php-->
    
    <!--fonction javascript avec du php dedans-->
    
    <script language="javascript">
    function FermeSession()
    {
    </script>
    <?php
    session_destroy();
    ?>
    <script language='javascript'>
    }
    </scipt>
    

    Voilà... Tu peux toujours essayer comme ça.
    0
    1. legulysse Messages postés 123 Statut Membre 15
       
      désolé, mais ton astuce ne sert pas à grand chose^^
      coté serveur, une page html va etre générée, contenant une fonction javascript dont le contenu est vide.
      le bout de code php est executé directement coté serveur, donc lorsque la page s'affichera, le session destroy aura deja été fait.

      Le php est executé coté serveur, la partie html/javascript n'est qu'un resultat de cette execution.
      Le javascript est exécuté côté client, et ne peut donc pas utiliser de fonctions php.

      Sauf avec le concept Ajax, mais sa demande une bonne maitrise de PHP et javascript...
      0
    2. clem285 Messages postés 290 Statut Membre 83
       
      il est vrai que cela ne fonctionne pas, j'ai testé, et sa déco automatiquement dès que je change de page une fois connecté
      même pas besoin de cliquer sur l'image
      mais merci tout de même de ton aide =D
      0
    3. legulysse Messages postés 123 Statut Membre 15 > clem285 Messages postés 290 Statut Membre
       
      Moi, pour gérer mes déconnexions, j'ai fait une page php qui contient juste un session destroy et un petit affichage genre vous etes maintenant deconnecté, avec un lien vers un accueil quelconque. Ensuite, il ne reste plus qu'à créer un lien vers cette page, que ce soit par un lien classique ou une image ^^

      Je suis en vacances et je m'embete, donc hesites pas à me poser d'autres questiosn XD
      0
    4. clem285 Messages postés 290 Statut Membre 83 > legulysse Messages postés 123 Statut Membre
       
      c'est aussi se que ma suggéré donuts08 et c'est se que j'ai fait
      sa fonctionne impec
      par contre depuis que j'utilise les session, lorsque je fait précédent après un formulaire, les champs sont vides :S alors qu'avant ils gardaient les valeurs
      saurais-tu pourquoi ?
      0
    5. donuts08 Messages postés 523 Statut Membre 39 > clem285 Messages postés 290 Statut Membre
       
      ton identifiant de session est-il contenu dans l'url de la page?
      0
  3. Utilisateur anonyme
     
    Merci legulysse pour ces présicions!
    J'étais pas sure que ça marche mais au moins maintenant, je sais pourquoi!
    Balaise! Merci... ^^
    0
  4. clem285 Messages postés 290 Statut Membre 83
     
    non, je viens de me mettre au session depuis se matin, donc je maitrise pas encore
    c'est à dire ?
    0
    1. donuts08 Messages postés 523 Statut Membre 39
       
      c'est ton navigateur qui ne repère pas que c'est le même formulaire, certainement parce que l'url change ou que le formulaire change...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. clem285 Messages postés 290 Statut Membre 83
     
    le problème intervient depuis que j'ai les sessions
    presque tout mon site est fait en php, donc je doute que cela vienne du coté serveur
    je sais comment palier le problème mais cela risque d'être long et je dois finir pour vendredi ( date de fin de mon stage en entreprise)
    donc si quelqu'un à une idée rapide et efficace qu'il se prononce :) ou se tait à jamais
    0
    1. legulysse Messages postés 123 Statut Membre 15
       
      t'as vérifié par rapport à ce qu'a dit doonuts08 ?
      avec l'histoire du nom de page et des noms de formulaires qui changent.
      0
      1. clem285 Messages postés 290 Statut Membre 83 > legulysse Messages postés 123 Statut Membre
         
        oui et je n'ai rien qui change dans mes urls, enfin, j'ai rien de nouveau
        j'entend par la que la page de départ est :
        http://acceuil.php
        si je clique sur un lien sa donne :
        http://acceuil.php?id_page=-2
        mais ya rien de nouveau la dedans
        0
  7. clem285 Messages postés 290 Statut Membre 83
     
    sinon pour ceux que cela intéresserait voila comment fermer la session :

    <div id="contenu">
    <META HTTP-EQUIV="Refresh" CONTENT="0; URL=acceuil.php"> 
    <?php
    session_destroy();
    ?>
    </div>


    simple et efficace

    edit : ceci est une page que j'appel lorsque je clique sur mon image, et qui reste ouvert zero seconde, et qui renvoi à acceuil.php
    0