Je crée un script de chat simple et j'ai la fonction killSession qui tue la session en cours et supprime l'utilisateur de la base de données. Le problème est que, après que le nom soit défini et vérifié, le formulaire de chat ne se charge pas, il tue simplement la session et retourne à l'objet loginForm(). Voici le script:
<?php
if (!isset($_SESSION['name'])) {
loginForm(); // set a name for chat
} else {
?>
// chat form
$(window).unload(function() {
<?php killSession(); ?>
});
Est-il possible de déclencher killSession() uniquement après avoir actualisé ou fermé la page?
MISE À JOUR:
ne peut toujours pas comprendre. Peut-être que j'ai besoin d'une pause.
$(window).unload(function() {
$.get("killSession.php", { name:"test" }); // i set the name to test for testing
});
est ici la page killSession.php:
session_start();
function killSession($name) {
include("config.php");
mysql_query("DELETE FROM sessions WHERE name='$name'");
session_destroy();
header("Location: index.php");
}
killSession($_GET['name']);
Le .get de $ ne fonctionne toujours pas, alors je l'ai essayé séparemment via le navigateur. killSession.php? name = test supprimera de la base de données, mais ne supprimera pas la session.
Vous oubliez d'appeler la fonction 'killSession'. Vous déclarez la fonction mais elle n'est pas appelée. Vous devriez également vous informer sur les injections SQL. – Gumbo
Ah, désolé, j'ai oublié de l'ajouter ici.KillSession ($ _ GET ['name']) ; – Norbert
Correction du problème de session, alors maintenant killSession.php? Name = test fonctionnera correctement. Le seul problème est maintenant le $ .get n'exécutant pas le code php. – Norbert