在PHP中访问html参数

时间:2020-03-05 18:40:51  来源:igfitidea点击:

我正在尝试为会话做一个简单的测试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.";
?>

解决方案

回答

我想你把

$_POST['destroy']

代替

$_GET['destroy']

如果我们想使用$ _POST变量,则需要使用表格。 $ _GET变量存储在URL中。

回答

是的,你要去做

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

或者

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

回答

顺便说一下你可以使用

$_REQUEST['destroy']

无论数据是通过POST还是GET请求传递,它都将起作用。

回答

I know I'm doing something silly (I'm a php newbie) but I can't seem to find what it is...

那就是你将学到很多东西的方式;)享受它...

回答

在PHP手册中,它包含用于销毁会话的代码段。

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