下面为您介绍的是php开发中mysql表单提交防止重复刷新的实现方法,如果您之前遇到过类似的问题,不妨一看。
数据库为jokes,表为jokes,添加一个笑话为例
mysql表单提交页面:
Our List of Jokes - session_start(); // 启用session
- $timetime = time();
- $key ="sess_" . $time; // 根据时间生成一个随机的session key
- $_SESSION[$key] = $time; // 设置session的值
- ?>
Type your joke here:
- //通过隐藏表单将 session 的 key传递到服务端处理
- " />
- 处理页面:
Our List of Jokes - //连接数据库:
- $dbcnx =mysql_connect("localhost","root","******");
- if (!$dbcnx) {
- echo( "
Unable to connect to the " .
- "database server at this time." );
- exit();
- }
- // Select the jokes database
- if (! @mysql_select_db("jokes") ) {
- echo( "
Unable to locate the joke " .
- "database at this time." );
- exit();
- }
- //启动session:
- session_start();
- $key = $_POST['session_key'];
- if(!$key || $_SESSION[$key] != substr($key, 5)){
- // 如果没有传 session_key 参数
- // 或者 session_key 参数值截断 sess_后的数字 与 session参数值不匹配
- unset($_SESSION[$key]); // 删除 session 值
- echo "chu cuo la";// 然后考虑是否要提示错误,或者转入另一个页面
- exit(); // 终止页面代码执行
- }
- // 下面进行数据写操作
- if ("SUBMIT" ==$_POST["submitjoke"] ) {
- $sql="INSERT INTO Jokes (joketext)
- VALUES ('$_POST[joketext]')
- ";
- if (mysql_query($sql)) {
- echo("
Your joke has been added.
");- } else {
- echo("
Error adding submitted joke: " .
- mysql_error() . "");
- }
- // 数据操作完成后,删除session
- unset($_SESSION[$key]);
- }
- ?>
- //显示笑话内容:
Here are all the jokes in our database:
- $result = mysql_query(
- "SELECT * FROM Jokes");
- if (!$result) {
- echo("
Error performing query: " .
- mysql_error() . "");
- exit();
- }
- // Display the text of each joke in a paragraph
- while ( $row = mysql_fetch_array($result) ) {
- echo("
" . $row["JokeText"] . "
");- }
- ?>
【编辑推荐】
MySQL大表备份的简单方法
MySQL分表处理的实现方法
MySQL授权表使用示例
MySQL内存表的弊端
MySQL独立表空间的优缺点