2015-09-05 153 views
0

HI我有以下文件夹结构PHP文件返回的HTML 302错误代码

/app/start.php

/php/ProcessOrder.PHP

/php/Checkout.php

Checkout.php是一个测试API调用贝宝,当我把完整的网址在浏览器中它很好。

我的Index.html发布了ProcessOrder.php文件,该文件将数据保存到我的数据库,然后应该使用api将详细信息传递给paypal。

两个processorder和退房是在同一个文件夹中,两者具有相同要求的语句

require ("/../app/start.php"); 

为什么process.php返回HTML 302,但结账运行?我相信这是要求声明,因为当我将它从文件进程中除去,除了贝宝之外,我还在开始使用贝宝API之前获得了数据库的所有工作。

发现了它的最后一行

应该带我到PayPal的URL https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1PG60856DA4942405

行代码,

header("Location: {$approvalUrl}"); 

这条线是在processorder和checkout.php相同

+1

它不是*“html 302错误代码”*,它是[HTTP 302状态码](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3)。这不是一个错误,它是一个重定向。错误返回状态代码4xx(客户端错误)和5xx(服务器错误)。 – axiac

回答

0

由于你的文件中有一些奇怪的外壳(混合大写和小写),你的web服务器可能是config可以匹配混合大小写的扩展名并将客户端重定向到正确的名称。

最好的做法是只用小写扩展名来执行所有文件,并且只能在文件系统上的确切情况下引用它们。强制自己正确执行此操作的最佳方法是配置Web服务器,以便在案例不匹配时简单地生成404。因为DOS和Windows不是严格区分大小写的,但是HTTP(就像世界上其他大多数事物一样)是一种非常有用的方法。

+0

对不起,结帐是小写字母的开头。我已经改变了processorder.php到所有小写,但是这总是叫做ok。一切小写,仍然得到错误302 – user1633322

+0

其最后一行应该带我到PayPal的网址https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1PG60856DA49 42405代码是:header(“Location:{$ approvalUrl}”); – user1633322

+0

对不起,只是学习,我现在看到它是一个重定向,为什么一个文件重定向到贝宝,另一个文件返回一个重定向代码? – user1633322