【发布时间】:2012-10-16 06:18:59
【问题描述】:
最近我开始为我的网站开发支付网关(进一步拼写为“PG”)流程。该过程包括将 Post 数据 以表单的形式发送到 PG 服务器,方法是重定向到他们的页面,并通过以下方式从 PG 接收有关交易的响应POST 数据通过将 URL 重定向到我们的服务器页面发送。
问题出现在这里,因为我的服务器无法检索从 PG 服务器发送的 POST 数据。
当我使用 PHP 编码时,我尝试使用 print_r($_POST); 打印来自 PG 的所有响应,甚至尝试使用 print_r($_REQUEST);。除了PHPSESSID 和其他一些数据数组,我没有找到任何数据打印。
至于确认,我检查了他们是否使用称为“TamperIE”的 IE 插件发送数据。它显示所有发送到其服务器的 POST 数据。但它根本不会出现在我们的服务器上。我在另一台服务器上尝试了这个过程:在那里我能够获得 POST 响应,但不能使用当前工作的服务器。
你能建议可能是什么问题吗?
【问题讨论】:
-
错误日志中是否有任何错误? PG 是否正在访问您的页面,而您只是没有收到任何数据或根本没有访问您的服务器?
-
您是否有任何 mod_rewrite 规则可以在 PG 服务器尝试访问该文件之前/期间应用于目标文件?
-
能否查看请求/responses的头部细节,看看数据是否可用?
-
亲爱的 Mahdi,这就是我的 .htaccess 文件内容。选项 +FollowSymLinks 选项 -RewriteRule 上的索引 RewriteEngine ^([a-zA-Z0-9_-]+)$ $1.php RewriteCond % {HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
ExpiresActive On ExpiresDefault A259200000 标头集 Expires "Thu, 15 Apr 2013 20:00:00 GMT" -
@user1749092 首先我会说用这些新信息更新您的问题,然后在您的重写规则顶部添加一个例外,例如
^pg_handler.php$,以确保您的重写规则不会影响您的回发机制。如果你们中的一个重写规则只是从 PG 网关重定向请求的页面,那么您将丢失所有 POST 数据,这似乎与您现在正在努力的类似...您应该小心这一行:^([a-zA-Z0-9_-]+)$ $1.php...我想你的问题在这里的某个地方......