防止刷新浏览器后重新提交提交

2024-04-07

下面的代码一切都很好。在名为submit.php 的文件中,用户可以通过表单输入提交内容。该表单转到submit2.php,其中一些代码将提交内容插入MySQL 数据库。到目前为止,一切都很好。

问题是这样的:一旦用户登陆submit2.php,如果用户刷新浏览器,就会出现“确认表单重新提交”弹出框。然后,如果用户在该弹出窗口中点击“继续”,则提交内容将重新提交到 MySQL 数据库。

如何让它在submit2.php上执行以下操作:

  1. 如果刷新浏览器,则不会出现弹出窗口。

  2. 提交的内容不会重新提交至数据库。

提前致谢,

John

在submit.php上:

echo '<form action="http://www.domain.com/sample/submit2.php" method="post"> 
    <input type="hidden" value="'.$_SESSION['loginid'].'" name="uid">  

    <div class="submissiontitle"><label for="title">Story Title:</label></div> 
    <div class="submissionfield"><input name="title" type="title" id="title" maxlength="1000"></div>  

    <div class="urltitle"><label for="url">Link:</label></div> 
    <div class="urlfield"><input name="url" type="text" id="url" maxlength="500"></div>

    <div class="submissionbutton"><input name="submit" type="submit" value="Submit"></div> 
</form>
';

在submit2.php上:

if (isLoggedIn() == true)
{

$remove_array = array('http://www.', 'http://', 'https://', 'https://www.', 'www.');
$cleanurl = str_replace($remove_array, "", $_POST['url']);
$cleanurl = strtolower($cleanurl);
$cleanurl = preg_replace('/\/$/','',$cleanurl);
$cleanurl = stripslashes($cleanurl);

$title = $_POST['title'];
$uid = $_POST['uid'];
$title = mysql_real_escape_string($title);
$title = stripslashes($title);
$slug = str_replace(' ', '-', $title);

echo '-'.$site1.'-';

$cleanurl = mysql_real_escape_string(trim($cleanurl));

$site1 = 'http://' . $cleanurl;

$displayurl = parse_url($site1, PHP_URL_HOST);

function isURL($url1 = NULL) {
        if($url1==NULL) return false;

        $protocol = '(http://|https://)';
        $allowed = '[-a-z0-9]{1,63}';

        $regex = "^". $protocol . // must include the protocol
                         '(' . $allowed . '\.)'. // 1 or several sub domains with a max of 63 chars
                         '[a-z]' . '{2,6}'; // followed by a TLD
        if(eregi($regex, $url1)==true) return true;
        else return false;
}



if(isURL($site1)==true)
    mysql_query("INSERT INTO submission VALUES (NULL, '$uid', '$title', '$slug', '$cleanurl', '$displayurl', NULL)");
else
    echo "<p class=\"topicu\">Not a valid URL.</p>\n";

} else {
    // user is not loggedin
    show_loginform();
}

用户发布/重定向/获取 http://en.wikipedia.org/wiki/Post/Redirect/Get model.

http://www.andypemberton.com/engineering/the-post-redirect-get-pattern/ http://www.andypemberton.com/engineering/the-post-redirect-get-pattern/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止刷新浏览器后重新提交提交 的相关文章

  • MySQL 存储浮点数

    我正在尝试保存这么长的浮点数 13 00386644742523 它基本上是 Lat 和 Lng 值 当我将它保存在数据库中时 它被存储为 13 0039 您应该明确使用精度并且类型应该是DECIMAL NOT FLOAT因为小数点后的每一
  • 更改数组键而不更改顺序

    You can 更改 数组元素的键 https stackoverflow com questions 240660 in php how do you change the key of an array element只需设置新密钥并删
  • 颠倒句子中的“英语”单词

    我有一个字符串 其中可能使用多种语言 例如 and this is in English this is going to be continued 我只想反转英语单词 所以结果应该是这样的 English in is this and c
  • PHP Web 应用程序中的 Ace 编辑器

    我正在制作一个小型网络应用程序 允许用户通过以下方式提交 html css 和 javascript 内容王牌编辑器 http ace ajax org 在此编辑器中 将存储的内容回显到编辑器中就足够了 但是无论如何我找不到将用户输入提交到
  • 如何在 laravel eloquent 中保存布尔值

    我在 Laravel 中进行了以下迁移
  • PHP Microsoft Excel 文件生成/导出类

    我一直在寻找一个好的 Excel 文件生成类 但还没有找到 我的首要问题是 虽然我可以在 Excel 中打开导出的文件 运行 2007 年 但我总是收到一条警告 文件的格式与文件扩展名不同 我注意到 phpMyAdmin 中的 Excel
  • HTML 实体到 PHP 中的普通字符串

    我有一个 PHP 中包含 HTML 实体的字符串 在 html 源中我可以看到 html 实体 但在输出中我的字符串没有 html 实体 like HTML 源代码 a href google com Me nbsp You a 我该如何更
  • Laravel 5.1 用户、角色和操作

    我正在使用 Laravel 5 1 创建一个应用程序users roles and actions 表设置如下 user id name 1 John Smith 2 Fred Smith role id name 1 Administra
  • 地理位置邻近搜索

    应用程序中有一个要求 要求在谷歌地图中找出与特定国家和 或城市绑定的所有对象 我们使用谷歌地图 API 预先计算了具有各自纬度和经度的对象并将其存储在数据库中 有时 这些对象在它们可以提供服务的特定服务范围 半径内提供服务 例如现在的情况就
  • 为什么使用 mysql_real_escape_string,addslashes 不会阻止一切?

    我正在查看文档并偶然发现了 mysql real escape string 我不明白为什么当您可以只使用addslashes 时它很有用 有人可以向我展示一个场景来说明它为什么有用吗 我也很好奇为什么它需要数据库连接 这似乎是一个很大的开
  • CodeIgniter 3 - 在控制器中支持 API 和 Web 请求?

    我目前正在使用 CodeIgniter3 应用程序 并为标准的类似博客系统奠定了基础 该结构是标准 CI 用户请求页面 页面加载控制器方法 控制器方法从其模型调用任何相关的数据库函数 然后加载视图 不过 我还希望能够通过 API 访问此视图
  • 将mysql数据导入kubernetes pod

    有谁知道如何将我的 dump sql 文件中的数据导入到 kubernetes pod 中 直接 与处理 docker 容器的方式相同 docker exec i container name mysql uroot password se
  • 使用WordPress get_results()数据库函数是否可以防止sql注入

    似乎找不到答案 但想知道以下对数据库的查询是否容易受到 SQL 注入的攻击 searchPostResults wpdb gt get results querySearchVals OBJECT 这是使用的查询 global wpdb o
  • 如何在 Zend 中使用 cookie?

    如何使用 Zend Http Cookie 来设置和读取 cookie 我尝试像这样设置cookie cookie new Zend Http Cookie TestCookie TestValue localhost com 但没有生成c
  • PHP清晰度卷积矩阵

    我正在使用一个卷积矩阵 http www php net manual en function imageconvolution php为了锐度PHP GD我想改变清晰度 level 我会去哪里做出改变如果我想做到的话或多或少尖锐 imag
  • Mysql 更快的 INSERT

    好的 我有大约 175k 个 INSERT 语句 相当大的 INSERT 语句 例如 INSERT INTO gast ID Identiteitskaartnummer Naam Voornaam Adres Postcode Stad
  • 在 Codeigniter 中显示来自连接的数据

    我正在使用简单的联接从两个数据库中提取数据 这是模型中的连接 function com control this gt db gt select this gt db gt from comments this gt db gt join
  • 两边带有感叹号的正则表达式 ('!\d!')

    我见过正则表达式 d PHP 内部preg match功能 这到底是什么 来自PHP PCRE 文档 http php net manual en regexp reference delimiters php 使用 PCRE 函数时 要求
  • 参考指南:这个符号在PHP中是什么意思? (PHP 语法)

    这是什么 这是关于 PHP 语法时不时出现的问题的集合 这也是一个社区 Wiki 因此邀请每个人参与维护此列表 为什么是这样 过去很难找到有关运算符和其他语法标记的问题 主要思想是提供 Stack Overflow 上现有问题的链接 这样我
  • 无法通过 ssh 访问服务器下载 Composer - 1and1

    我可以通过 SSH 访问我的 1and1 服务器 我正在尝试下载作曲家 遵循来自的指示http getcomposer org download http getcomposer org download 尝试1 user gt curl

随机推荐

  • 在 Eclipse 中找不到 run as junit test

    我在 Eclipse 中创建了一个这样的测试类 RunWith SpringJUnit4ClassRunner class ContextConfiguration locations classpath applicationContex
  • 初学者:Scala 2.10 中的 Scala 类型别名?

    为什么此代码无法编译并出现错误 未找到 值矩阵 从文档和一些 可能已经过时的 代码示例来看 这应该可行吗 object TestMatrix extends App type Row List Int type Matrix List Ro
  • 模板参数推导:哪个编译器在这里?

    考虑以下代码 template
  • 为什么 helm 不使用部署模板中定义的名称?

    即来自name Chart Name Values module5678 name pod below deployment yaml apiVersion apps v1 kind Deployment metadata labels a
  • 在启动时注册多个 DbContext 实例以在通用存储库中使用

    我正在尝试创建一个通用存储库 它接受 2 个通用类型 例如 public class EfRepository
  • 在 Azure 上部署 MEAN+Webpack

    如何部署 MEAN STACK WEBPAC 应用程序 我有一个 MEAN Stack Webpac 应用程序和 nodejs 服务器 提供其余api 我使用 webpack 开发服务器运行 Angular 应用程序 构建 webpack
  • QMessageBox::ritic 不显示标题文本

    我需要显示简单的错误消息 QMessageBox critical nullptr My Title Text 但出现的对话框的标题为空 我做错了什么 PS 操作系统 MacOS 10 9 1 你没有做错什么 从QMessageBox se
  • Silverlight 应用程序中的跨线程访问无效

    我正在使用 Hammock 框架从 Silverlight 应用程序到 Rest 服务进行异步服务调用 在 完成 回调中 我正在更新绑定到视图上组合框的 ObservableCollection OnPropertyChanged 事件处理
  • Spring AMQP RabbitMQ 如何直接发送到Queue而不需要Exchange

    我正在使用 Spring AMQP 和 Rabbitmq 模板 如何直接将消息发送到队列而不使用Exchange 我该怎么做 我该怎么做 你不能 发布者不知道队列 只是交换和路由密钥 但是 所有队列都绑定到默认交换器 以队列名称作为其路由键
  • 将列名称文本包装在 R 中的 ggpairs 中

    我正在使用 ggpairs 在绘制矩阵时 我收到一个矩阵 如下所示 正如您所看到的 某些文本长度很大 因此文本看不完整 无论如何 我可以将文本换行 使其完全可见吗 Code ggpairs df 我希望文本换行 以便可以看到类似这样的内容
  • 如何在 Angular 6 中设置日期格式?

    我有一个功能 可以显示用户输入的实时日期 现在当用户输入输入时 我在前端显示 日期 28 10 2018 10 09 我希望更改日期 如果是过去几天 过去一周 过去一年等 因此 如果昨天输入了输入 我想显示如下内容 1d意思是一天前 一年也
  • 使用heroku上传文件

    据我所理解heroku http heroku com不允许存储单个 Rails 应用程序的上传文件 在他们的文档中 他们提到文件可以上传到亚马逊S3 http aws amazon com s3 实例 我目前没有 S3 帐户 因此假设我只
  • 使用 CLI 通过 docker-compose 部署到 Azure 时,访问代理页面时超时

    I have docker compose file version 3 services app2 image kamilwit dockerdocker app2 container name app2 build context ap
  • 设置标题和 v7 抽屉切换之间的间距

    我现在正在使用 v7 支持库的 ActionBarDrawerToggle 但抽屉图标直接位于标题字体处 因为我禁用了 showHomeEnabled 如何在标题和切换开关之间设置更多可用空间 Thanks 事实上 遗憾的是这并不能真正实现
  • Java中的并发排序

    我目前正在开发一个同时对字符串进行排序的程序 我的程序接收一个文件 将文件的每一行读入一个数组 并将字符串数组拆分为更小的字符串数组 然后 程序为每个较小的数组启动一个线程 并对它们进行快速排序 一旦每个线程完成对其数组的排序 主线程就会从
  • C# 和 WCF 中具有存储库模式的 Web 服务?

    任何人都可以确认将存储库模式与 Web 服务集成的最佳方法吗 实际上我的存储库模式现在在 C 中工作 我有 3 个项目 DataAccess Services 和我的表示层 问题是我的表示层有很多东西 我有一个 ASP NET MVC 站点
  • Nginx 上传进度模块与 Rails 和 Passenger

    我一直在尝试使用 Rails 和 Passenger 在 WebFaction 上运行 Nginx 上传进度模块 使用 Paperclip 上传到 S3 到目前为止 我得出的最好结果是它报告开始和结束 但没有报告中间的情况 对 progre
  • 使用正则表达式提取 URL

    我已经搜索了至少 2 小时 但找不到任何使用正则表达式提取以下 URL 的模式 我采用了很多文章中描述的太多模式 但我找不到有用的东西 例如 URL 类似于以下模式 http google com http www google com h
  • JavaScript 中的对象如何实现 Event 接口

    In this MDN 中的 addEventListener https developer mozilla org en US docs Web API EventTarget addEventListener listener 当指定
  • 防止刷新浏览器后重新提交提交

    下面的代码一切都很好 在名为submit php 的文件中 用户可以通过表单输入提交内容 该表单转到submit2 php 其中一些代码将提交内容插入MySQL 数据库 到目前为止 一切都很好 问题是这样的 一旦用户登陆submit2 ph