在 PHP 中如何使用两个标头位置

Posted

技术标签:

【中文标题】在 PHP 中如何使用两个标头位置【英文标题】:In PHP how to use two headers Location 【发布时间】:2017-04-04 10:57:42 【问题描述】:
<?php 
header("Location:http://www.perfectbulksms.in/Sendsmsapi.aspx
USERID=namePASSWORD=pass&SENDERID=id&TO=$phn&MESSAGE=$sms");
header("Location:password.php?msg=new");
?>

我想通过 php 代码发送短信。它工作正常,但问题是我必须使用两个标题,一个用于短信,另一个用于将我的页面重定向到我想要的位置。但只有第二个在工作。而且我还想在标签中的 url 时隐藏我的短信代码的详细信息。并想同时使用短信和重定向。请帮忙??????

【问题讨论】:

检查if条件的使用 - php.net/manual/en/control-structures.if.php 更好用cURL 同意上面的R andom,如果你想做对的话。 【参考方案1】:

header("Location: ..."); 用于将用户重定向到另一个页面。从逻辑上思考如何同时在 2 个页面上重定向用户。

正如我所见,您想对 perfectbulksms.in 进行 API 调用以发送短信 我强烈建议使用 CURL 这样做,然后使用 header

    $ch = curl_init("http://www.perfectbulksms.in/Sendsmsapi.aspxUSERID=namePASSWORD=pass&SENDERID=id&TO=$phn&MESSAGE=$sms");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    $result = curl_exec($ch);
    curl_close($ch);
header("Location:password.php?msg=new");

这是一个基本示例,阅读更多关于 CURL http://php.net/manual/en/book.curl.php

【讨论】:

不,它不工作..它转到下一个标题,但短信不去..如何处理这个 $result 变量 @YogeshArya 你纠正了 URL 中的错误吗? $result 变量包含来自 perfectbulksms.in 的响应(如果有),尝试评论 //header("Location:password.php?msg=new"); 并回显结果以调试问题所在。 @dass 你在谈论用户名密码和 id 吗?是的,我更正了。如果有其他错误请告诉我 错误请求 HTTP 错误 400。请求格式错误。当我使用 echo 选项时会出现这种情况......是否需要关闭 curl?它给了我 echo 的密码【参考方案2】:

如果您只是想发送一些东西,您可以这样做:

<?php
file_get_contents("http://www.perfectbulksms.in/Sendsmsapi.aspx?USERID=name&PASSWORD=pass&SENDERID=id&TO=$phn&MESSAGE=$sms");
header("Location:password.php?msg=new");
?>

不漂亮,但它会在紧要关头。

当然应该使用 curl() 来完成这项工作。

【讨论】:

您需要修复 URL,它缺少参数分隔符。我在上面的示例中修复了它。【参考方案3】:
<?php 
$pre = 'Dear%20Parents,YourPasswordis%20';
header("Location:http://www.perfectbulksms.in/Sendsmsapi.aspx
USERID=namePASSWORD=pass&SENDERID=id&TO=$phn&MESSAGE=$sms");
header("Location:password.php?msg=new");
?>

非常感谢我使用空间而不是 %20 这就是为什么它不起作用感谢@arun @chris @dass 告诉 curl 选项

【讨论】:

以上是关于在 PHP 中如何使用两个标头位置的主要内容,如果未能解决你的问题,请参考以下文章

PHP 位置标头 - 变量

如何使用 Apache 在代理设置中重写位置响应标头?

PHP 标头位置在 HTML 中间工作

标头重定向的安全性如何?可以绕过吗?

在powershell中使用Invoke-WebRequest重定向URL时如何获取位置标头

php - 标头位置重定向:https 到 https,http 到 http