【问题标题】:Session doesn't work on MAMP会话在 MAMP 上不起作用
【发布时间】:2014-12-30 22:37:00
【问题描述】:

当我尝试在本地主机上运行我的网站时,我收到一个错误:

Undefined index: log in ... on line 137

在这个文件中有一行:

if (!$_SESSION['log']) { ...

一切都可以在服务器上运行,但不能在 localhost 上运行。我能做些什么来解决它?

【问题讨论】:

  • 你开始你的会话了吗?(session_start();)

标签: php session localhost mamp


【解决方案1】:

服务器和本地设置之间的错误报告级别可能有所不同。

如果要检查变量是否已设置(假设会话已启动...),则应使用:

if (!isset($_SESSION['log'])) {

或者如果您想检查它是否未设置和/或为空或false

if (empty($_SESSION['log'])) {

两者都不会为未设置的变量或数组索引生成任何警告。

【讨论】:

    【解决方案2】:

    它可能无法“在服务器上”运行,而是没有向页面显示错误消息。

    您可以通过将 if 语句更改为以下内容来修复警告:索引:

    if (isset($_SESSION['log']) && !$_SESSION['log']) {
    

    或者你需要的任何条件。

    【讨论】:

    • if 语句永远不会触发。如果第一个子句的计算结果为 true,则第二个子句的计算结果始终为 false。
    • 再次检查你的逻辑。我想你会发现 isset() != empty()。如果 $_SESSION['log'] 的值被设置为 false,它将被设置并且不是 true。来源:php.net/manual/en/function.isset.php
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2018-06-08
    • 2016-08-26
    • 2015-09-01
    • 2013-08-05
    相关资源
    最近更新 更多