我一直在处理我继承的一些页面的编码问题,其中两个变量的值没有显示在下一页的URL中。
作者编写的代码可能很旧了
"completeyourorder.php?p=" . $p . "&service=" . $service;
就我的研究而言,至少应该有一个回声
“completeyourorder.php?p =”echo。 $ p。 “& service =”。 $服务;
或者我错过的不仅仅是那个。
我很感激对此进行了一些教育,因为我是一名新手,尽管经过了数小时的搔痒和阅读,却无法找到答案。
由于
更新:
第1页
<form action="send-order.php" method="post">
<p>Name<br /><input name="clientname" value="<?echo $clientname;?>" type="text" style="width: 350px;" /></p>
<p><br /><input type="hidden" name="service" value="<?
echo $_GET['service'];
?>" />
<input type="hidden" name="p" value="<?
echo $_GET['p'];
?>"
/>
<input type="submit" value="Order now" /></p>
</form>
第2页
$go = "completeyourorder.php?p=" . $p . "&service=" . $service;
return header("location:$go");
如果您还需要更多信息,请告诉我
解决:
非常感谢它的作品!我现在看到我的错误是假设我可以使用位置中的变量值:第2页上的completeyourorder .....而没有在同一页面上的代码中使用$ _POST。谢谢大家!
答案 0 :(得分:1)
这里显示的只是构建字符串的一部分。在php中,句点是连接运算符,因此它将两个字符串绑定在一起。您需要对整个字符串进行回显,打印,标题或变量赋值,以使其执行某些操作。在那个其他脚本中,你可以得到变量
$p = $_REQUEST['p'];
$service = $_REQUEST['service'];
编辑:看到更新后,它正在使用标题将脚本重定向到新页面
答案 1 :(得分:0)
您最近询问了有关$ _GET vars的类似问题。
在这种情况下,看起来您正在构建一个字符串以在链接或其他内容中回显。所以也许这就是你可能遇到的问题:(只是一个例子)
<?php
if(isset($_GET['p']))
{
$p = $_GET['p'];
}
if(isset($_GET['service']))
{
$service = $_GET['service'];
}
//defaults in case they are not set
$p or $p = 1; //assuming p = page
$service or $service = 'laundry'; //since I don't know what service refers to
$link = "completeyourorder.php?p=" . $p . "&service=" . $service;
?>
<a href="<?php echo $link; ?>">string to click on</a>
在此示例中,您可以看到您希望基于$ _GET变量“p”和“service”构建$ link var,如果它们不存在,则默认为第1页的标准集和服务“洗衣店”
显然,您可以根据自己的需要量身定制,但是您需要提供更多信息以获得更好,更相关的答案。
修改强>
根据您的编辑,基本答案是您的表单应填充$ p和$ service的变量,因此修改后的代码将如下所示:
<?php
if(isset($_POST['p']) && isset($_POST['service']))
{
$p = $_POST['p'];
$service = $_POST['service'];
// do some kind of post processing here
// possibly do some kind of filtering to ensure the post vars are sanitized
header("location: completeyourorder.php?p=" . $p . "&service=" . $service);
exit;
}
?>
两者都不需要isset,但您可以更改它以反映您验证发布数据的首选选项。有些人只是这样做:
if(!empty($_POST))