如何防止通过 url 直接访问 php 文件但重定向
How to prevent access to a php file directly through url but redirect
我希望我的访问者直接阻止页面 success.php 例如:www.site.com/paypal/success.php 但是当 paypal 付款完成后,它会重定向到该页面显示信息。但是在确认paypal付款之前不能直接到这个页面
这不是解决问题的正确方法。
您始终可以将人们发送到成功页面,可选择使用交易 ID。
您不能说的是付款是否成功。这取决于您的支付提供商。您可能需要等待他们的消息。如果是 PayPal,您可以使用 IPN.
所以不要依赖成功页面来确认交易,只依赖您的支付提供商。
会话或 cookie 也不应用于跟踪交易。如果我同时开始 2 笔交易会怎样?
而不是在 paypal 中将目标 URL 设置为
http://...../success.php
设置为
http://...../success.php?secret=something-random-here
然后您的 success.php
脚本将检查 $_GET['secret']
是否存在并等于您期望的值。
我不确定您的代码是什么样的,但我会在付款处理中使用会话,然后在 success.php 确认页面上需要它。
<?php // transcation.php page
// Should the payment be successfully authorized
session.start();
$_SESSION['successful_transaction'] = true;
?>
<?php //success.php
if (empty($_SESSION['successful_transaction'])) die("Sorry, access denied");
?>
我希望我的访问者直接阻止页面 success.php 例如:www.site.com/paypal/success.php 但是当 paypal 付款完成后,它会重定向到该页面显示信息。但是在确认paypal付款之前不能直接到这个页面
这不是解决问题的正确方法。
您始终可以将人们发送到成功页面,可选择使用交易 ID。
您不能说的是付款是否成功。这取决于您的支付提供商。您可能需要等待他们的消息。如果是 PayPal,您可以使用 IPN.
所以不要依赖成功页面来确认交易,只依赖您的支付提供商。
会话或 cookie 也不应用于跟踪交易。如果我同时开始 2 笔交易会怎样?
而不是在 paypal 中将目标 URL 设置为
http://...../success.php
设置为
http://...../success.php?secret=something-random-here
然后您的 success.php
脚本将检查 $_GET['secret']
是否存在并等于您期望的值。
我不确定您的代码是什么样的,但我会在付款处理中使用会话,然后在 success.php 确认页面上需要它。
<?php // transcation.php page
// Should the payment be successfully authorized
session.start();
$_SESSION['successful_transaction'] = true;
?>
<?php //success.php
if (empty($_SESSION['successful_transaction'])) die("Sorry, access denied");
?>