下面为您介绍的是php开发中mysql表单提交防止重复刷新的实现方法,如果您之前遇到过类似的问题,不妨一看。
数据库为jokes,表为jokes,添加一个笑话为例
mysql表单提交页面:
- <HTML>
- <HEAD>
- <TITLE> Our List of Jokes </TITLE>
- </HEAD>
- <BODY>
- <?php
- session_start(); // 启用session
- $timetime = time();
- $key ="sess_" . $time; // 根据时间生成一个随机的session key
- $_SESSION[$key] = $time; // 设置session的值
- ?>
- <FORM ACTION="input.php?tjid=1" METHOD=POST>
- <P>Type your joke here:<BR>
- <TEXTAREA NAME="joketext" ROWS=10 COLS=40 WRAP></TEXTAREA><BR>
- //通过隐藏表单将 session 的 key传递到服务端处理
- <input type="hidden" name="session_key" value="<?php echo $key;?>" />
- <INPUT TYPE=SUBMIT NAME="submitjoke" VALUE="SUBMIT">
- </FORM>
- </BODY>
- </HTML>
- 处理页面:
- <HTML>
- <HEAD>
- <TITLE> Our List of Jokes </TITLE>
- </HEAD>
- <BODY>
- //连接数据库:
- <?php
- $dbcnx =mysql_connect("localhost","root","******");
- if (!$dbcnx) {
- echo( "<P>Unable to connect to the " .
- "database server at this time.</P>" );
- exit();
- }
- // Select the jokes database
- if (! @mysql_select_db("jokes") ) {
- echo( "<P>Unable to locate the joke " .
- "database at this time.</P>" );
- 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("<P>Your joke has been added.</P>");
- } else {
- echo("<P>Error adding submitted joke: " .
- mysql_error() . "</P>");
- }
- // 数据操作完成后,删除session
- unset($_SESSION[$key]);
- }
- ?>
- //显示笑话内容:
- <P> Here are all the jokes in our database: </P>
- <BLOCKQUOTE>
- <?php
- $result = mysql_query(
- "SELECT * FROM Jokes");
- if (!$result) {
- echo("<P>Error performing query: " .
- mysql_error() . "</P>");
- exit();
- }
- // Display the text of each joke in a paragraph
- while ( $row = mysql_fetch_array($result) ) {
- echo("<P>" . $row["JokeText"] . "</P>");
- }
- ?>
- </BODY>
- </HTML>
【编辑推荐】