gpt4 book ai didi

php - 如何在 php 中将通过 header() 传递的变量从 1 个文件传递到另一个文件

转载 作者:可可西里 更新时间:2023-11-01 00:43:51 25 4
gpt4 key购买 nike

我在“$variables”中有一个变量数组,它包含如下数据:-

$variables['firstname'] = "Sachin"; (say the user filled in these)
$variables['lastname'] = "Tendulkar";
$variables['firstname'] = "SachinTendulkar";

现在,在同一页面上验证后,我使用:-

header("Location:http://localhost/PhpSample/target.php");

将用户重定向到另一个页面“target.php”。 “header()”函数中将数组 $variables 的值传递给“target.php”文件并使用“target.php”文件中的这些值向用户显示他们输入的内容的语法是什么?

target.php代码

<?php
echo "<h2>Your Input:</h2>";
echo "Firstname:" .; //Here what needs to be written after . and before ; to use the values passed from the other file
echo "<br>";
echo "Lastname:" .;
echo '<br>';
echo "Username:" .;
echo '<br>';
?>

我在某处读到我们必须在“target.php”中使用 $_GET['firstname'] 才能使用这些值。如果它是正确的,那是不是不安全,因为 $_GET 不应该用于敏感信息,例如用户名、密码等?

最佳答案

由于需要通过header()传递数组,所以使用http_build_query:

header("Location:http://localhost/PhpSample/target.php?vals=" . http_build_query($arr));

请注意,重定向本质上不能执行 POST。它将产生一个新的 GET 请求,这意味着您必须在 URL 中传递数据。如果您有一个非常大的 url,您几乎肯定会丢失其中的大部分内容,因为 url 有长度限制。

但是,如果它很短,您也可以尝试这样的方法:

header("Location:http://localhost/PhpSample/target.php?vals=" . urlencode(serialize($variables)));

您可以访问 target.php 文件中的数组值:

$Values= unserialize(urldecode($_GET['vals']));
echo "<h2>Your Input</h2>";
foreach($Values as $key => $value) {
echo $key." : ".$value."<br>";
}

否则

<?php
$Values= unserialize(urldecode($_GET['vals']));
echo "<h2>Your Input:</h2>";
echo "Firstname:" .$Values['firstname']; //Here what needs to be written after . and before ; to use the values passed from the other file
echo "<br>";
echo "Lastname:" .$Values['lastname'];
echo '<br>';
echo "Username:" .$Values['username'];
echo '<br>';
?>

关于php - 如何在 php 中将通过 header() 传递的变量从 1 个文件传递到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25882669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com