我有以下文件夹结构
/app/start.php
/php/ProcessOrder.PHP
/php/Checkout.php
Checkout.php是对paypal的测试api调用,当我将完整的URL放入浏览器时,它运行良好。
我的Index.html向ProcessOrder.php发帖,将数据保存到我的数据库,然后应该使用api将详细信息传递给paypal。
处理器和结帐都在同一个文件夹中,并且都具有相同的require语句
require ("/../app/start.php");
为什么process.php返回html 302,但是checkout运行?我相信这是require语句,因为当我将文件进程重新除了paypal之外我还得到了数据库所有工作,然后才开始使用paypal API。
发现了它的最后一行
应该把我带到Paypal网址 https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-1PG60856DA4942405
行代码是,
header("Location: {$approvalUrl}");
这一行在processorder和checkout.php中是相同的
答案 0 :(得分:0)
由于您的文件中有一些奇怪的大小写(混合大小写),您的Web服务器可能配置为匹配大小写混合大小写并将客户端重定向到正确的大小。
最佳做法是仅在小写扩展名中执行所有文件,并且仅在它们在文件系统上的确切情况下引用它们。强迫自己正确执行此操作的最佳方法是配置您的Web服务器,以便在案例不匹配时简单地生成404。
这是一种非常MS-DOS
的方法,因为DOS和Windows不是严格区分大小写的,但HTTP(与世界上大多数其他东西一样;))是。