Php 执行服务器端验证,然后发布到远程脚本
我原以为我会用卷发来做这个,但看起来我错了。我需要做的是捕获一篇文章,并为验证目的进行一些数据库查找,然后将验证后的数据发布到远程URL 我通过填充html表单并使用javascript提交表单来实现这一点,但这有明显的缺陷。我想构建一个帖子并发送浏览器,就像他们将表单发布到远程url一样Php 执行服务器端验证,然后发布到远程脚本,php,validation,curl,Php,Validation,Curl,我原以为我会用卷发来做这个,但看起来我错了。我需要做的是捕获一篇文章,并为验证目的进行一些数据库查找,然后将验证后的数据发布到远程URL 我通过填充html表单并使用javascript提交表单来实现这一点,但这有明显的缺陷。我想构建一个帖子并发送浏览器,就像他们将表单发布到远程url一样 我是不是在卷曲文档中遗漏了什么?什么是好主意™ 如何做到这一点?您可以使用curl 但你可能还有其他问题要考虑。当浏览器实际发布到另一个url时,会设置cookie、会话等。从服务器发布时可能未设置这些。你还
我是不是在卷曲文档中遗漏了什么?什么是好主意™ 如何做到这一点?您可以使用curl 但你可能还有其他问题要考虑。当浏览器实际发布到另一个url时,会设置cookie、会话等。从服务器发布时可能未设置这些。你还应该查看屏幕上的截屏问题,以便了解更多信息 假设不是这样,您应该能够使用curl获取post、验证字段和重新发布。有很多 编辑
- 将表单发布到server.php
- server.php中的处理/验证字段
- 使用curl将已验证的参数后置到remote.service
- 将表单发布到server.php
- server.php中的处理/验证字段
- 使用curl将已验证的参数后置到remote.service
也就是说,如果您可以依赖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选项中迷失了方向。感谢您的回复,尤其是编辑!大卫·沃尔什的例子正是我所需要的。我迷失在旋度设置选项中。