Question

J'essaie de faire un simple script php de test pour les sessions.Fondamentalement, il incrémente un compteur (stocké dans $_SESSION) chaque fois que vous actualisez cette page.Cela fonctionne, mais j'essaye d'avoir un lien pour détruire la session qui recharge la page avec le ?destroy=1 paramètre.J'ai essayé quelques instructions if pour voir si ce paramètre est défini et si c'est le cas pour détruire la session, mais cela ne semble pas fonctionner.

J'ai même mis une instruction if dans le corps principal pour afficher un message si le paramètre est défini - mais il ne semble pas être capté.

Je sais que je fais quelque chose de stupide (je suis un débutant en PHP) mais je n'arrive pas à trouver ce que c'est...

Voir le code ici :

<?php
if ($_POST['destroy']) {
    session_destroy();
} else {
    session_start();
}    
?>

<html>
    <head>
        <title>Session test</title>
    </head>
    <body>
    <?php
    if (isset($_POST['destroy'])) {
        echo "Destroy set";
    }

    $_SESSION['counter']++;

    echo "You have visited this page " . $_SESSION['counter'] . " times" . "<BR>";
    echo "I am tracking you using the session id " . session_id() . "<BR>";
    echo "Click <a href=\"" . $_SERVER['PHP_SELF'] . "?destroy=1\">here</a> to destroy the session.";
?>
Était-ce utile?

La solution

je pense que tu as mis

$_POST['destroy']

Au lieu de

$_GET['destroy']

Vous devez utiliser un formulaire si vous souhaitez utiliser une variable $_POST.Les variables $_GET sont stockées dans l'URL.

Autres conseils

Au fait, vous pouvez utiliser

$_REQUEST['détruire']

qui fonctionnerait peu importe si les données sont transmises dans une requête POST ou GET.

Dans le Manuel PHP il contient un extrait de code pour détruire une session.

session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();

Ouais, tu vas vouloir faire

if( $_GET['destroy'] == 1 )

ou

if( isset($_GET['destroy']) )

Je sais que je fais quelque chose de stupide (je suis un débutant en PHP) mais je n'arrive pas à trouver ce que c'est...

c'est comme ça que vous allez apprendre beaucoup ;) profitez-en...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top