PHP 位置标头 - 变量
Posted
技术标签:
【中文标题】PHP 位置标头 - 变量【英文标题】:Php Location Header - Variable 【发布时间】:2020-12-20 04:59:19 【问题描述】:我需要一些关于使用变量的标题位置的帮助。 我失去了我的变量。
如何保留我的 $var?
$var = $_GET['valueToSearch']
(I get the correct value here)
if(isset($_POST['shipping']))
header("Location: shipping.php?valueToSearch=".$var);
exit;
这需要我运送,但我失去了 $var 值。
if(isset($_POST['shipping']))
$var = 'C2234';
header("Location: shipping.php?valueToSearch=".$var);
exit;
这可以正常工作。
如何保留 $var 或任何其他建议?
我也试过了:
window.location = "shipping.php?valueToSearch=" + $var;
谢谢
- More detail:
<?php
$var = $_GET['valueToSearch'];
$query = "SELECT increment_id, status, created_at, method, shipping_description, company, name, telephone, email, suburb, state, country, data_transf_ordervalue_incl, DATE_FORMAT(created_at, '%b %y')AS date FROM tblorder WHERE increment_id = '$var' order by created_at DESC";
require_once('/../../private/dbcon_order.php');
$result = mysqli_query($connect, $query) or die ('Error');
$row_cnt = mysqli_num_rows($result);
if(isset($_POST['shipping']))
header("Location: shipping.php?valueToSearch=".$var);
exit;
【问题讨论】:
这无法通过您展示的几行代码重现。 首先,以这种方式传递变量并不是一个好习惯。尝试在这里找出最佳实践 [en] phptherightway.com [ru] phptherightway.ru 其次,您的示例中的$var
值是多少?真的是string
吗? CBroe 是对的 - 你应该提供更多的代码行或至少提供数据。
谢谢,@CBroe。我是php新手,想学习。是的,$var 是一个字符串。我将粘贴更多代码。我从上一页得到 $var - 这就是我使用 $_GET 的原因。
【参考方案1】:
我不是 100% 确定你在问什么,但我的回答是基于“当用户制作 $_POST['shipping'] 时,我如何获得 $_POST['shipping'] 值 页面重定向后"
$shipping = "";
// Assuming that "shipping" is a string type.
if (isset($_POST["shipping"]))
$shipping = filter_input(INPUT_POST, "shipping", FILTER_DEFAULT);
elseif ($_GET["shipping"]))
$shipping = filter_input(INPUT_GET, "shipping", FILTER_DEFAULT);
// Debug
echo "Your shipping value is : $shipping";
header("Location: shipping.php?valueToSearch=$var&shipping=$shipping");
因此,在 $_POST["shipping"] 重定向之后,您可以使用 $_GET['shipping'] 访问您的保留值。
尽管有页面重定向,但存储变量的另一种方法是使用 $_SESSION。为此,您可以这样做。
// To set a session value
$_POST["shipping"] = $_SESSION["shipping"];
// To get a session value
$shipping = $_SESSION["shipping"];
// To remove a session value
unset($_SESSION["shipping"]);
另一种在页面重定向的情况下存储变量的方法是使用用户浏览器 cookie,但 cookie 通常仅用于身份验证目的,如果您有兴趣,可以在此处查找。 https://www.php.net/manual/en/features.cookies.php
【讨论】:
谢谢@Deviance。我有一个摘要页面,我通过链接感谢您的所有帮助。
我找到了这篇文章: $_GET or $_SESSION for passing variable
我使用了一个隐藏字段(增量),然后使用 $_SESSION 在页面之间传递它:
设定值:
$_SESSION['var'] = $_POST['increment'];
在第二页:获取值:
$valueToSearch = $_SESSION['var'];
【讨论】:
以上是关于PHP 位置标头 - 变量的主要内容,如果未能解决你的问题,请参考以下文章