Php 如何从.NET脚本接收POST数据

Php 如何从.NET脚本接收POST数据,php,.net,post,Php,.net,Post,我与一家公司合作,该公司制作了一个脚本,将POST数据发送到我的PHP脚本(所有设置和端口正确转发等) 问题是,他们说我的脚本没有设置为处理POST请求 这是他们的剧本: 试一试 这是我的: <?PHP $website = $_POST['web'] ; $name = $_POST['name'] ; $tel = $_POST['tel'] ; $town = $_POST['town'] ; foreach($_POST as $key => $thisOne){ $ou

我与一家公司合作,该公司制作了一个脚本,将POST数据发送到我的PHP脚本(所有设置和端口正确转发等)

问题是,他们说我的脚本没有设置为处理POST请求

这是他们的剧本:

试一试

这是我的:

<?PHP

$website = $_POST['web'] ;
$name = $_POST['name'] ;
$tel = $_POST['tel'] ;
$town = $_POST['town'] ;

foreach($_POST as $key => $thisOne){
$out .= $key . ': ' . $thisOne ;
}
if($out)
mail('test@test.com', 'Test', $out) ;
?>

他传递给web请求的URI似乎无效(异常显示为空)。这是此处显示的堆栈跟踪图像最后一行中的
strpsturl
参数

告诉他在呼叫SalesForcePost.fncPost时使用正确的URL,一切都会好起来

这绝不是你的错,也和你没有正确处理邮件无关。这是他的错。告诉他,如果他不相信你,就让他来给我们看一些密码

编辑
至于新的错误:这里也一样。他没有传递有效的URI字符串。这可能是因为他通过了一些类似于“htt://sometest.com“order”http:/sometest.com。除非您发布所有必要的代码,以查看如何调用
fncPost
方法以及
fncPost
方法的大部分代码,至少是他创建web请求的部分,否则我们无法进一步帮助您


您发布的代码不是他的真实代码,否则他将不会得到“URI scheme not valid”异常。

Http POST是Http POST,无论如何在客户机上生成—curl、asp.net、java、python。因此,在接收PHP端使用通常使用的方法。正如Kris所说,接收的数据应该没有区别,最终都是HTTP。我建议尝试使用类似fiddler的方法来分析发送的请求,以检查发送的内容是否正确,以及您是否正在寻找正确的变量名,然后设置一个php测试页面,将相同的数据提交给您的端点,以查看您是否能够成功地完成此操作。在这两种调试技术之间,我认为您应该能够看到问题的确切位置。在脚本的开头执行var_dump($_POST),从.NET接收POST并粘贴到这里-可能vBasic正在以某种方式“重命名”POST参数(我不会感到惊讶).如果他遇到了这样的错误,那么故障全是他的-不知何故,他没有传递正确的URI格式
HttpWebRequest
对象。正如错误所说,URI确实是空的——因此他应该输入有效的URI以便VB脚本正常运行……作为对您最近编辑的回复:这真的是他的错。他甚至还没来得及向你的脚本发送数据,就出现了一个异常!一个自称为.NET开发人员的人应该真正能够阅读和理解异常……这就是。他无法创建
objRequest
,因此也无法发送任何
POST
数据。行:Dim objRequest As HttpWebRequest=WebRequest.create(strpsturl)不是这样做的吗?(我对.NET btw几乎一无所知)是的,但他在
strpsturl
参数中传递了一些无效的URL(可能是空字符串)。所以他得到了一个例外,因为web请求“不知道发送到哪里”。异常的最早点是您引用的行,最晚点是获取请求流并写入请求流时。然而,异常消息非常清楚正在发生什么,任何合适的.NET开发人员都知道如何调试它。
<?PHP

$website = $_POST['web'] ;
$name = $_POST['name'] ;
$tel = $_POST['tel'] ;
$town = $_POST['town'] ;

foreach($_POST as $key => $thisOne){
$out .= $key . ': ' . $thisOne ;
}
if($out)
mail('test@test.com', 'Test', $out) ;
?>
Try
strPost = "name=lf&town=london&country=uk&web=www.lf.com&tel=0123456789&keywords=sales&pages=5&multivisit=multihitdt=2012/04/30%2014:31referrer=google&landing=home"

        strPost = strPost.Trim.Replace(" ", "%20")



        Dim objRequest As HttpWebRequest = WebRequest.Create("http://mysite.dyndns-remote.com/myscript.php")

        objRequest.Method = "POST"

        objRequest.ContentLength = strPost.Length

        objRequest.ContentType = "application/x-www-form-urlencoded"



        Try

            myWriter = New StreamWriter(objRequest.GetRequestStream())

            myWriter.Write("name=lf&town=london&country=uk&web=www.lf.com&tel=0123456789&keywords=sales&pages=5&multivisit=multihitdt=2012/04/30%2014:31referrer=google&landing=home")

        Catch eg As Exception



        Finally

            myWriter.Close()

        End Try



        Dim objResponse As HttpWebResponse = objRequest.GetResponse()

        Dim sr As StreamReader

        sr = New StreamReader(objResponse.GetResponseStream())

        success = sr.ReadToEnd()

        sr.Close()



        success = "Post Successful"



    Catch ex As Exception

        success = ex.ToString

    End Try