我从Aweber一个GET字符串在用户提交表单的接收值。 我把它们发送的变量,并将它们提交给短信网关通过短信通知提交第三方。
这里是我的问题。 我需要重定向执行的PHP头传出短信指令到最后显示从Aweber发送GET变量另一页的页面。
我可以检索在第一页的变量及其值。 如何将它们传递到第二页?
下面是我使用的第一页(sms.php)收集由Aweber发送的变量的代码:
$fname = $_GET['name'];
$femail = $_GET['email'];
$fphone = $_GET['telephone'];
....etc
header('Location: confirmed.php');
exit;
session_start();
$_SESSION['fname'] = $_GET['name'];
$_SESSION['femail'] = $_GET['email'];
$_SESSION['fphone'] = $_GET['telephone'];
....etc
header('Location: confirmed.php');
并得到它的下一个页面上,如:
session_start();
$fname = $_SESSION['fname'];
$femail = $_SESSION['femail'];
$fphone = $_SESSION['fphone'];
....等等
第一转换$_GET
使用HTTP变量为查询字符串
$query = http_build_query($_GET);
随后的查询字符串变量附加到重定向头
header('location: domain.com'."?".$query);
完成。
你并不需要将它们存储在一个会话,你可以很容易地与你的位置标头传递它们:
$fname = $_GET['name'];
$femail = $_GET['email'];
$fphone = $_GET['telephone'];
//now a header with these var's:
header("Location: confirmed.php?name=".$fname."&email=".$femail."&telephone=".$fphone);
在confirmed.php你可以得到这些变量与$ _GET方法。
将它们储存在会议 :
$_SESSION['fname'] = $_GET['name'];
使用session_start
在每个文件的开头。
请任何人在将来读这篇文章,因为如果你主要依靠增加变量头,然后如果仍然是用户在该表格上,并进行改变头的值,那么一个动作对这种变量的值传递的使用会话你自己的变量值的变化,因为它依赖于头......简单地说,使用会话。
试试这个。 它的工作完美的我。
if ($_GET)
{
$query = str_replace("%3D", "=", str_replace("%26", "&", strval(urlencode(http_build_query($_GET)))));
header('location: https://www.example.com'.'?'.$query);
}
else
{
header('location: https://www.example.com');
};
你可以做的最好的就是把你所有的POST变量,像这样的会议:
在放page1.php中:
//Start the session
session_start();
//Dump your POST variables
$_SESSION['post-data'] = $_POST;
而就使page2.php地说:( 如果我们page1.php中使用正常POST形式提交表单action="page2.php
”)
//Start the session
session_start();
//Access your POST variables
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
//Unset the useless session variable
unset($_SESSION['post-data']);
或使page2.php地说:( 如果我们page1.php中使用自提交与形式的action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>
,然后使用一个header("Location: page2.php");
移动到使page2.php并通过会议通过我们的POST变量 )
//Start the session
session_start();
//Access your POST variables
$_POST = $_SESSION['post-data'];
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
unset($_SESSION['post-data']);
我真的花了几个小时搞清楚了这一点,因为所有的论坛,把它错误或不完整。
现在它是那么容易,因为刚刚打电话给你从传递page1.php中像这样的例如变量: <b>Points: </b><?php echo $points; ?>
<b>Points: </b><?php echo $points; ?>
这就是它!
当情境的header('Location: page2.php');
在if
条件等确定,这将是在页面的第一个PHP脚本及以上的任何HTML输出。
这个工程使用sentex
头( '位置:member_dashboard.php ID =?' $同上);
文章来源: How to pass variables received in GET string through a php header redirect?