Сведения о вопросе

Fhohir

12:14, 18th August, 2020

Теги

php   session    

Доступ к параметру html в PHP

Просмотров: 462   Ответов: 5

Я пытаюсь сделать простой тестовый сценарий php для сеансов. В основном он увеличивает счетчик (хранится в $_SESSION) каждый раз, когда вы обновляете эту страницу. Это работает, но я пытаюсь иметь ссылку, чтобы уничтожить сеанс, который перезагружает страницу с параметром ?destroy=1 . Я пробовал пару операторов if, чтобы увидеть, установлен ли этот параметр, и если да, то уничтожить сеанс, но он, похоже, не работает.

Я даже поместил оператор if в основной корпус, чтобы всплывающее сообщение, если параметр установлен , но он, похоже, не был поднят.

Я знаю, что делаю что-то глупое (я новичок PHP), но я не могу найти, что это такое...

Смотрите код здесь:

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



  Сведения об ответе

прога

10:16, 29th August, 2020

Я думаю, что вы положили

$_POST['destroy']

Вместо

$_GET['destroy']

Вам нужно использовать форму, если вы хотите использовать переменную $_POST. Переменные $_GET хранятся в переменной URL.


  Сведения об ответе

KOMP

15:38, 17th August, 2020

Кстати вы можете использовать

$_REQUEST['destroy']

который будет работать независимо от того, передаются ли данные в запросе POST или GET.


  Сведения об ответе

park

16:29, 29th August, 2020

В руководстве PHP есть фрагмент кода для уничтожения сеанса.

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


  Сведения об ответе

baggs

20:00, 25th August, 2020

Да, вы будете хотеть сделать

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

или

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


  Сведения об ответе

dumai

21:06, 1st October, 2020

Я знаю, что делаю что-то глупое (я новичок php), но я не могу найти, что это такое...

вот как вы собираетесь многому научиться;) наслаждайтесь этим ...


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться