【问题标题】:Wampserver Undefined index errorWampserver 未定义索引错误
【发布时间】:2014-01-17 19:53:32
【问题描述】:

我正在尝试在我的 Win7 PC 上使用 Winappserver。

我已经添加了

session.cookie_domain =
session.use_cookies = 1
session.save_path = "c:\wamp\tmp"

到我的 PHP.ini 文件来修复早期的 $_SESSION[] 索引错误问题,但现在在同一个 php 文件中我得到另一个类似的错误:

未定义索引:C:\wamp\www\ac.php 第 61 行中的 php_g_decrypted_mysqlpw_string

第 61 行: $php_mysqlpw_string = $_SESSION["php_g_mysqlpw_string"];

我需要添加另一个 php.ini 设置吗?

谢谢...

【问题讨论】:

  • 为了设置这个 php 文件中的 var,我需要运行我的 index.php 文件。我无法做到这一点,我开始研究这个,但发现它为什么不能在 wamp 下运行令人困惑。因此,带着这个问题,我运行了另一个 php 文件,只是为了看看它是否会运行并遇到这个 var 未设置的问题。但这让我回到了我不明白的原始问题:为什么我的 index.php 文件不能运行?
  • 这是错误还是警告?
  • 这是一个通知:未定义索引:第 24 行 C:\wamp\www\CostForm.php 中的 php_g_table_border_width 但如果没有这些 SESSION 变量,我的代码将无法正常工作。

标签: php wampserver


【解决方案1】:

SESSION 概念很聪明,但并不神奇。

当用户首次连接到您的网站时,他没有会话。

当该用户首先使您的一段 PHP 代码运行并在您的代码中执行第一个 session_start() 时,会创建一个会话数组,然后 PHP 会查看该用户的会话是否已经存在。如果这是第一次通过您的代码no previous session will exists,则创建一个空的$_SESSION array

这就是你的代码中发生的事情。

因此,您要么必须编写脚本以防止这种情况发生,要么编写脚本来管理这种情况,即空的 $_SESSION 数组或尚未创建的会话变量 $_SESSION["php_g_mysqlpw_string"]

因此,在您对会话变量(数组出现)进行所有检查时,您需要测试其是否存在并记住一个默认值。

例如,在第 61 行,您应该编写如下代码:

$php_mysqlpw_string = isset( $_SESSION["php_g_mysqlpw_string"] ) ? $_SESSION["php_g_mysqlpw_string"] : '';

或者,如果您更喜欢长期编写代码:

if ( isset( $_SESSION["php_g_mysqlpw_string"] ) ) {
    $php_mysqlpw_string = $_SESSION["php_g_mysqlpw_string"];
} else {
    $php_mysqlpw_string = '';
}

这表示,如果会话数组包含名为“php_g_mysqlpw_string”的索引,则使用该值,否则它尚未设置为值,我应该使用默认值,在这种情况下我假设一个空字符串。

如果您没有使用 PHP 调试器,请在执行 session_start() 之后或尝试使用数组中的值之前使用此语句,这样您可以在尝试时查看会话数组中的内容并访问它。这应该会在浏览器上显示数组内容。

echo '<pre>' . print_r( $_SESSION, TRUE ) . '</pre>';

【讨论】:

    猜你喜欢
    • 2011-02-21
    • 2016-08-17
    • 2011-12-12
    • 1970-01-01
    • 2019-04-03
    • 2012-05-23
    • 2012-06-27
    • 2014-05-08
    • 2019-10-26
    相关资源
    最近更新 更多