加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP会阻止在刷新时再次发生操作

发布时间:2020-12-13 17:48:22 所属栏目:PHP教程 来源:网络整理
导读:基本上我创建了一个页面来发送邮件来恢复你的密码.问题是,在您填写所有信息并且已发送邮件后,每次刷新页面时它都会继续发送电子邮件.我能想到的唯一解决方案是打开一个不同的页面 header("Location: index.php"); 或者其他什么会好的我猜,但还有其他解决方案
基本上我创建了一个页面来发送邮件来恢复你的密码.问题是,在您填写所有信息并且已发送邮件后,每次刷新页面时它都会继续发送电子邮件.我能想到的唯一解决方案是打开一个不同的页面

header("Location: index.php");

或者其他什么会好的我猜,但还有其他解决方案吗?我发现了一些关于取消所有变量的事情,但我真的不知道它有多可行

解决方法

Crecket,我们可以看看你的代码吗?因为我很害怕你将PHP代码添加到你的网页中.当您将操作放入HTML文件时,每次页面重新加载时,都会重新执行PHP代码.

要防止重新执行PHP代码,必须将其与HTML文件分开.这样,无论用户刷新页面多少次,除非用户按下提交按钮,否则PHP代码将不会执行.我会举例说明这种分离:

send.php

<?php
session_start();
?>
<html>
  <head>
    <title>Session</title>
  </head>
  <body>
<?php
if ( IsSet( $_SESSION[ "message_sent" ] ) )
   { echo "Your message was sent.";
     unset( $_SESSION[ "message_sent" ] );
   }
?>
    <form method="post" action="email.php">
      Enter message
      <input type="text" name="anything" />
      <input type="submit" value="Send email" />
    </form>
  </body>
</html>

email.php

<?php
session_start();
// SEND MESSAGE HERE.
$_SESSION[ "message_sent" ] = "message sent";
header( "Location: send.php" );
?>

将以前的代码复制并粘贴到具有给定名称的两个文件中,然后从浏览器运行send.php.发送一条消息.然后根据需要多次刷新页面,您将看到,PHP代码将不会重新执行,因此不会重新发送电子邮件.

希望这对你有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读