Php 执行服务器端验证,然后发布到远程脚本

Php 执行服务器端验证,然后发布到远程脚本,php,validation,curl,Php,Validation,Curl,我原以为我会用卷发来做这个,但看起来我错了。我需要做的是捕获一篇文章,并为验证目的进行一些数据库查找,然后将验证后的数据发布到远程URL 我通过填充html表单并使用javascript提交表单来实现这一点,但这有明显的缺陷。我想构建一个帖子并发送浏览器,就像他们将表单发布到远程url一样 我是不是在卷曲文档中遗漏了什么?什么是好主意™ 如何做到这一点?您可以使用curl 但你可能还有其他问题要考虑。当浏览器实际发布到另一个url时,会设置cookie、会话等。从服务器发布时可能未设置这些。你还

我原以为我会用卷发来做这个,但看起来我错了。我需要做的是捕获一篇文章,并为验证目的进行一些数据库查找,然后将验证后的数据发布到远程URL

我通过填充html表单并使用javascript提交表单来实现这一点,但这有明显的缺陷。我想构建一个帖子并发送浏览器,就像他们将表单发布到远程url一样


我是不是在卷曲文档中遗漏了什么?什么是好主意™ 如何做到这一点?

您可以使用curl

但你可能还有其他问题要考虑。当浏览器实际发布到另一个url时,会设置cookie、会话等。从服务器发布时可能未设置这些。你还应该查看屏幕上的截屏问题,以便了解更多信息

假设不是这样,您应该能够使用curl获取post、验证字段和重新发布。有很多

编辑

  • 将表单发布到server.php
  • server.php中的处理/验证字段
  • 使用curl将已验证的参数后置到remote.service

您可以使用curl进行此操作

但你可能还有其他问题要考虑。当浏览器实际发布到另一个url时,会设置cookie、会话等。从服务器发布时可能未设置这些。你还应该查看屏幕上的截屏问题,以便了解更多信息

假设不是这样,您应该能够使用curl获取post、验证字段和重新发布。有很多

编辑

  • 将表单发布到server.php
  • server.php中的处理/验证字段
  • 使用curl将已验证的参数后置到remote.service

我还没有尝试过,但我要做的是将表单提交到它的最终目的地,并添加一个javascript onSubmit()函数,该函数向服务器发出ajax请求并返回true或false


也就是说,如果您可以依赖javascript…

我还没有尝试过,但我要做的是将表单提交到它的最终目的地,并添加一个javascript onSubmit()函数,该函数向您的服务器执行ajax请求并返回true或false


也就是说,如果您可以依赖javascript…

只需按如下方式执行请求/响应:

+---------+   request    +--------+   curl request   +--------+
|         | -----------> |        | ---------------> |        |
| browser |              | url #1 |                  | url #2 |
|         | <----------- |        | <--------------- |        |
+---------+   response   +--------+   curl response  +--------+
+-----------+请求+-----------+卷曲请求+--------+
|         | -----------> |        | ---------------> |        |
|浏览器| | url#1 | | url#2|

||让请求/响应如下:

+---------+   request    +--------+   curl request   +--------+
|         | -----------> |        | ---------------> |        |
| browser |              | url #1 |                  | url #2 |
|         | <----------- |        | <--------------- |        |
+---------+   response   +--------+   curl response  +--------+
+-----------+请求+-----------+卷曲请求+--------+
|         | -----------> |        | ---------------> |        |
|浏览器| | url#1 | | url#2|
||我发现发布“wget”比CURL更容易管理

$remoteContent = `wget -o - http://someremoteurl`;
除此之外,马特的回答是正确的。但是,如果您正在抓屏的远程站点的响应包含链接,您必须搜索并替换它们(如果您想自己处理它们)-此时您正在创建代理服务器

-CF

我发现发布“wget”比CURL更容易管理

$remoteContent = `wget -o - http://someremoteurl`;
除此之外,马特的回答是正确的。但是,如果您正在抓屏的远程站点的响应包含链接,您必须搜索并替换它们(如果您想自己处理它们)-此时您正在创建代理服务器


-CF

这是一种很好的方法,不需要任何服务器端资源。只要您不关心用户是否知道最终URL,让他们有机会将任何想要的数据发布到您的最终目的地,这是可以接受的。@Matt Huggins:非常正确。当然,如果您想避免这种情况,您可以让相同的ajax请求返回/设置最终目的地。这是一种很好的方法,不需要任何服务器端资源。只要您不关心用户是否知道最终URL,让他们有机会将他们想要的任何数据发布到您的最终目的地。@Matt Huggins:非常正确。当然,如果您想避免这种情况,您可以让相同的ajax请求返回/设置最终目的地。感谢您的响应,尤其是编辑!大卫·沃尔什的例子正是我所需要的。我在curl_setopt选项中迷失了方向。感谢您的回复,尤其是编辑!大卫·沃尔什的例子正是我所需要的。我迷失在旋度设置选项中。