防止 PHP 中的多个表单提交:综合指南
多个表单提交可能会成为 Web 应用程序中的问题,从而导致意想不到的后果。本文将提供详细的解决方案,以防止 PHP 中的多次提交。
使用令牌的解决方案
PHP 提供了一个强大的解决方案,使用可以生成并存储在会议。实现方法如下:
代码示例:
<?php session_start(); function getToken(){ $token = sha1(mt_rand()); $_SESSION['tokens'][$token] = 1; return $token; } function isTokenValid($token){ if(!empty($_SESSION['tokens'][$token])){ unset($_SESSION['tokens'][$token]); return true; } return false; } $postedToken = filter_input(INPUT_POST, 'token'); if(!empty($postedToken) && isTokenValid($postedToken)){ // Process Form } $token = getToken(); ?> <form method="post"> <input type="hidden" name="token" value="<?php echo $token; ?>"/> <!-- Form Content --> </form>
重定向和向后兼容性
维护正确的向后和向前导航,建议实现 POST/redirect/GET 模式。这涉及:
按照以下步骤,可以有效防止多次表单提交,保证表单的完整性您的网络应用程序。
以上是如何防止 PHP 中的多重表单提交:综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!