Vra

Ek probeer om 'n eenvoudige toets php script doen vir sessies. Eintlik is dit vermeerderings n toonbank (gestoor in $_SESSION) elke keer as jy die bladsy te verfris. Wat werk, maar ek probeer om 'n skakel na die sessie wat die bladsy herlaai met die parameter ?destroy=1 vernietig het. Ek het probeer om 'n paar indien state om te sien of dit parameter is ingestel en indien wel om die sessie te vernietig, maar dit lyk nie of werk nie.

Ek het selfs sit 'n as verklaring in die hoofdeel pop-up 'n boodskap as die parameter is ingestel - maar dit lyk nie of om opgetel te word

.

Ek weet ek iets dom doen (Ek is 'n PHP newbie), maar ek kan nie lyk om uit te vind wat dit is ...

Sien kode hier:

<?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.";
?>
Was dit nuttig?

Oplossing

Ek dink jy sit

$_POST['destroy']

In plaas van

$_GET['destroy']

Jy moet 'n vorm te gebruik as jy wil graag 'n $ _POST veranderlike gebruik. $ _GET veranderlikes word gestoor in die URL.

Ander wenke

By the way jy kan gebruik

  

$ _ VERSOEK [ 'vernietig']

wat sal werk ongeag of die data oorgedra word in 'n pos of 'n GET-versoek.

In die PHP Manual dit het kode uit vir die vernietiging van 'n sessie.

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

Ja, jy gaan wil doen

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

of

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

Ek weet ek iets dom doen (Ek is 'n php newbie), maar ek kan nie lyk om uit te vind wat dit is ...

Dit is hoe jy gaan baie leer;) geniet dit ...

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top