【问题标题】:Session variable always getting the same value会话变量总是获得相同的值
【发布时间】:2016-10-02 02:16:36
【问题描述】:

我正在使用 php 在我的网页中设置 21 个区的会话变量。为此,我使用下面的代码。

<?php
session_start();
header('Cache-control: private'); // IE 6 FIX

//DISTRITO
if (isSet($_GET['distrito'])) {
    $distrito = $_GET['distrito'];

// register the session
$_SESSION['distrito'] = $distrito;
}
else
{
$distrito = 'portugal';
}
?>

问题在于,在我的页面中,无论我选择哪个区域,它总是假设相同。谁能帮帮我?

http://codepen.io/Ryuh/pen/ZOYPmZ?editors=1000

【问题讨论】:

  • isSet 不正确。它是 isset()
  • 不是这样的。它做同样的事情。可以是html吗?

标签: php html session session-variables


【解决方案1】:

你写错了。这不是 isSet() 而是 isset()。希望对你有用

<?php
session_start();
header('Cache-control: private'); // IE 6 FIX

//DISTRITO
if (isset($_GET['distrito'])) {
    $distrito = $_GET['distrito'];

// register the session
$_SESSION['distrito'] = $distrito;
}
else
{
$distrito = 'portugal';
}
?>

【讨论】:

  • 不是这样的。它做同样的事情。可以是html吗?
  • 如果您询问扩展,那么它必须是 PHP。
  • 是的,但它可以在页面本身上
  • 您可以阅读此链接作为参考serverfault.com/questions/496773/…
  • 我知道。我的问题是:我的 index.php 页面上的 php 有问题吗?我认为变量设置正确,但是当我回显它时,它总是显示相同的内容。
【解决方案2】:

错别字,将 isSet 替换为 isset

PHP

session_start();
header('Cache-control: private'); // IE 6 FIX
if (isset($_GET['distrito'])) {
    $distrito = $_GET['distrito'];
    $_SESSION['distrito'] = $distrito;
}
else {
 $distrito = 'portugal';
}

【讨论】:

  • 不是这样的。它做同样的事情。可以是html吗?
【解决方案3】:

我认为这就是您的目标:

<?php
session_start();
header('Cache-control: private'); // IE 6 FIX

//DISTRITO
if(isset($_GET['distrito']))
{
        $distrito = $_GET['distrito'];   
        // register the session
        $_SESSION['distrito'] = $distrito;
}
else
{
        if(isset($_SESSION['distrito']))
        {
                $distrito = $_SESSION['distrito'];
        }
        else
        {
                $distrito = 'portugal';
        }
}

这将首先使用 GET 变量,如果未设置,它将查找 cookie 值,如果两者都未设置,则默认为葡萄牙。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多