php - 为什么我看不到我在第一个脚本中设置的请求变量?

标签 php request superglobals

当我尝试从我在第一个脚本中设置的 $_REQUEST[] 数组中检索变量 status 时(然后进行重定向),除了警告 Undefined index: status。这是为什么 ?

<?php
        $_REQUEST['status'] = "success";
        $rd_header = "location: action_script.php";
        header($rd_header);
?>

action script.php

<?php
echo "Unpacking the request variable : {$_REQUEST['status']}";

最佳答案

这是因为您的 header() 语句将用户重定向到一个全新的 URL。任何 $_GET$_POST 参数都不再存在,因为我们不再在同一页面上。

您有几个选择。

1- 首先,您可以使用 $_SESSION 跨页面重定向持久保存数据。

session_start();
$_SESSIONJ['data'] = $data; 
// this variable is now held in the session and can be accessed as long as there is a valid session.

2- 重定向时将一些获取参数附加到您的 URL -

$rd_header = "location: action_script.php?param1=foo&param2=bar";
header($rd_header);
// now you'll have the parameter `param1` and `param2` once the user has been redirected.

对于第二种方法,this documentation might be usefull .这是一种从名为 http_build_query() 的数组创建查询字符串的方法。

关于php - 为什么我看不到我在第一个脚本中设置的请求变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463301/

相关文章:

php - 使用 PHPExcel 将数据映射到新工作表

javascript - Node.js 下载文件 - 并非所有请求都能解析,Promise.all 不会触发

Python 问题, Mechanize 机器人

php - 使用 isset 或 @ 测试/分配超全局变量

php - 全局变量不在 PHP 中的静态类方法中更新

javascript - Div 重新加载 jquery 并用它传递 PHP 变量

date - 我如何转换 yyyy-MM-ddThh :mm:sszzz to timestamp with php?

Jquery ajax 请求失败并显示空错误消息

php - $_SERVER ['HTTP_HOST' ] 也包含端口号 =/

php - CakePHP Auth 登录错误