PHP / Javascript / HTML

Petit nouveau ! | 3 Messages

21 mars 2023, 15:10

Bonjour, je travaille sur un petit projet en info pour faire un site web, le principe que je souhaite faire est le suivant :
-> En appuyant sur une image, je supprime la session en cours et je me redirige vers une page login

Côté HTML :

Code : Tout sélectionner

<img name="deco" class="deco" src="/assets/img/deconn.png" alt="deco">
Côté PHP et Javascript :

Code : Tout sélectionner

<script language="Javascript"> const imgdeco = document.querySelector(".deco"); imgdeco.addEventListener("click", function () { <?php $_SESSION = array();//Ecrase tableau de session session_unset(); //Detruit toutes les variables de la session en cours session_destroy();//Destruit la session en cours header('Location: //localhost'); // redirige l'utilisateur ?> }); </script>
Le problème est que le code PHP s'exécute directement lors du chargement de la page...
Si quelqu'un aurait une piste, je prends ! :D

Avatar du membre
Mammouth du PHP | 1609 Messages

21 mars 2023, 15:21

Salut, le php est exécuté par le serveur et le javascript par le navigateur.
Pour faire ce que tu veux, le javascript doit appeler un script php de déconnexion qui redirige vers le login une fois la session détruite.

Par exemple un window.location.href = 'url de déconnexion'; côté javascript et un header('Location: adresse du login'); exit; côté php (après la destruction de la session pour la redirection vers le login).
Développeur web depuis + de 20 ans

Mammouth du PHP | 2703 Messages

21 mars 2023, 15:22

ou un simple lien a href sur l'image.

Petit nouveau ! | 3 Messages

21 mars 2023, 15:23

Salut, le php est exécuté par le serveur et le javascript par le navigateur.
Pour faire ce que tu veux, le javascript doit appeler un script php de déconnexion qui redirige vers le login une fois la session détruite.

Par exemple un window.location.href = 'url de déconnexion'; côté javascript et un header('Location: adresse du login'); exit; côté php (après la destruction de la session pour la redirection vers le login).
Merci pour ton message, tu aurais de la documentation à ce sujet ?

Avatar du membre
Mammouth du PHP | 1609 Messages

21 mars 2023, 15:29

Non j'ai pas de documentation sur le sujet, c'est pas plus compliqué que ça.
Sinon comme suggère or1 tu peux simplement mettre un lien (vers le script de déconnexion) autour de l'image et te passer du javascript.

logout.php
<?php

session_start();
$_SESSION = [];

header('location: login.php');
Développeur web depuis + de 20 ans

Petit nouveau ! | 3 Messages

21 mars 2023, 15:32

Non j'ai pas de documentation sur le sujet, c'est pas plus compliqué que ça.
Sinon comme suggère or1 tu peux simplement mettre un lien (vers le script de déconnexion) autour de l'image et te passer du javascript.

logout.php
<?php

session_start();
$_SESSION = [];

header('location: login.php');
Waw c'est vrai que vu comme ça c'est plus simple, merci de vos réponses en tout cas !

Avatar du membre
Mammouth du PHP | 1609 Messages

21 mars 2023, 15:35

A toi de voir si tu as vraiment besoin du session_destroy et de la suppression du cookie, comme suggéré dans la doc php, selon la manière dont tu gères l'authentification et la sécurité avec la session.
Développeur web depuis + de 20 ans