【问题标题】:Getting Warning: array_push() expects parameter 1 to be array, string given /function.php收到警告:array_push() 期望参数 1 是数组,字符串给定 /function.php
【发布时间】:2021-12-29 02:53:00
【问题描述】:

我对编码不太友好,浪费了将近 5 天的时间来寻找解决方案。最近更改了托管,然后它开始发生。同时也得到了其他警告,如

“警告:无法修改标头信息 - 标头已由 /var/www/ 中的(输出开始于 /var/www/u1524808/genericpanda.com/wp-content/themes/pillshope/functions.php:278)发送u1524808/genericpanda.com/wp-login.php 在第 400 行"

因此,我无法登录 WordPress 仪表板。真的面临着艰难的时刻。这是我收到错误的函数。真的需要帮助,提前谢谢你!!!

function register_my_session() {
    if (!session_id()) {
        session_start();
    }
    $_SESSION['cart']='';
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
       array_push($_SESSION['cart'], $_POST);
    }
}
add_action('init', 'register_my_session');

【问题讨论】:

  • themes/pillshope/functions.php:278 已发送输出,因此session_start() 无法运行。发布该文件的相关部分可能是个好主意

标签: php arrays wordpress session


【解决方案1】:

两件事

  1. 输出已经发送,所以没有使用 session_start() 但是如果你想添加并通过警告写它就像

    @session_start()

  2. array_push($_SESSION['cart'], $_POST);

$_SESSION 可以是一个数组,$_SESSION['cart'] 有空字符串,因为你已经用空引号 ('') 分配它

$_SESSION['cart'] = ''

所以当你尝试将数据推送到 $_SESSION['cart'] 时,它会给你警告

您可以编写 $_SESSION['cart'] = [] 然后您的代码就可以工作了 或

array_push($_SESSION['cart'], $_POST); 

可以

array_push($_SESSION, $_POST); 

但后面的部分可以擦除所有其他 SELSON 数据,所以我建议你应该使用第一个替代替换

$_SESSION['cart'] = '' 

$_SESSION['cart'] = [] 

然后尝试。

【讨论】:

  • @Robert 如果可行,让我们标记答案已被接受,以便其他人可以学习或进行研究。谢谢!
【解决方案2】:

您正在使用 array_push 但您的 $_SESSION['cart'] 是一个字符串,因为您将其初始化为 ' ' 但您应该这样做 $_SESSION['cart'] = array()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多