Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码执行后的PHP重定向_Php - Fatal编程技术网

代码执行后的PHP重定向

代码执行后的PHP重定向,php,Php,我有一个php页面,它接收一组url参数并发送电子邮件。我正在尝试让此页面在邮件发送后使用相同的url参数调用另一个网页。如果我做到以下几点,我的电子邮件会可靠地发送吗?重定向是我真正想做的吗 更新:谢谢你的提示。从我使用的+,您可以看到,我不懂任何php。在阅读了所有答案之后,我得出了以下结论: Random code to send email... file_get_contents('http://www.othersite.com/' . $_SERVER["REQUEST_URI

我有一个php页面,它接收一组url参数并发送电子邮件。我正在尝试让此页面在邮件发送后使用相同的url参数调用另一个网页。如果我做到以下几点,我的电子邮件会可靠地发送吗?重定向是我真正想做的吗


更新:谢谢你的提示。从我使用的+,您可以看到,我不懂任何php。在阅读了所有答案之后,我得出了以下结论:

Random code to send email... file_get_contents('http://www.othersite.com/' . $_SERVER["REQUEST_URI"]. "?". $_SERVER["QUERY_STRING"]); 发送电子邮件的随机代码。。。 文件\u获取\u内容('http://www.othersite.com/“.$”服务器[“请求URI”]。“?”$”服务器[“查询字符串”]; 我相信这应该启动一个在其他网站上获取所有当前参数,这正是我想要的。这样我就不必处理重定向。这个解决方案有什么问题吗


更新2:由于我的url是https,文件内容给我带来了一些问题。有很多方法可以解决这个问题,但我只是使用了一个重定向头,一切都很好。谢谢大家

  • 如果是同一个应用程序,为什么不调用相同的函数呢
  • 如果您愿意,您可以执行文件获取内容。。而不是重定向以获得相同的效果

如果您只想点击该页面,为什么不使用
文件获取内容

$data = file_get_contents('http://www.othersite.com/' . $_SERVER["REQUEST_URI"]); 
echo $data; 

这样做的好处是,如果您不想,您不必亲自访问另一个站点,同样,如果您控制另一个站点上的脚本,您可以在HTML中返回true或false,返回时可以进行检查。

标题位置调用将仅在邮件代码之后调用,因此不会影响您的电子邮件

不要忘记在头位置调用之后调用exit()


此外,字符串concat运算符不是+它是。(点)。

其他答案中提出的问题是,你的基本方法是否真的是你想要的方法是有效的-首先检查一下。无论如何,如果它真的是你想要做的(你的目标URL真的与你所在的相同吗?)

header('Location: http://www.othersite.com/' . $_SERVER["REQUEST_URI"]);
请注意,使用
连接字符串而不是
+
,在PHP中不能这样做

要真正正确地执行此操作,可以使用从当前GET数组构建完整有效的URL。手册中的代码,稍作修改:

<?php
echo http_build_url("http://user@www.example.com/pub/index.php",
    $_GET,
    HTTP_URL_STRIP_AUTH | HTTP_URL_JOIN_PATH | HTTP_URL_JOIN_QUERY 
);
?>

以实现完全合规性(有时Chrome无法仅使用位置:标题)


另一个选项是回显HTML标记:

<meta http-equiv="Refresh" content="1;url=http://www.othersite.com/<?php echo $_SERVER['REQUEST_URI']; ?>">

但是,这不会将GET参数传递给被调用的脚本。重新更新:如果远程服务器上的目录结构和页面名称实际上完全相同,直到页面名称,那么看起来很好吗?这听起来很难相信,如果你调用的是一个外部服务。实际上,我不得不使用标题而不是文件内容,因为我的url是https。因此,您的答案就是我使用的答案。
$\u服务器[“请求URI”]
已经包含URI路径和查询。
<meta http-equiv="Refresh" content="1;url=http://www.othersite.com/<?php echo $_SERVER['REQUEST_URI']; ?>">