下面为您介绍的是php开发中mysql表单提交防止重复刷新的实现方法,如果您之前遇到过类似的问题,不妨一看。
数据库为jokes,表为jokes,添加一个笑话为例 mysql表单提交页面:
<HTML><HEAD><TITLE>OurListofJokes</TITLE></HEAD><BODY><?phpsession_start();//启用session $timetime=time(); $key="sess_".$time;//根据时间生成一个随机的sessionkey $_SESSION[$key]=$time;//设置session的值 ?> <FORMACTION="input.php?tjid=1"METHOD=POST><P>Typeyourjokehere:<BR><TEXTAREANAME="joketext"ROWS=10COLS=40WRAP></TEXTAREA><BR>//通过隐藏表单将session的key传递到服务端处理 <inputtype="hidden"name="session_key"value="<?phpecho$key;?>"/><INPUTTYPE=SUBMITNAME="submitjoke"VALUE="SUBMIT"></FORM></BODY></HTML>处理页面: <HTML><HEAD><TITLE>OurListofJokes</TITLE></HEAD><BODY>//连接数据库: <?php$dbcnx=mysql_connect("localhost","root","******"); if(!$dbcnx){ echo("<P>Unabletoconnecttothe". "databaseserveratthistime.</P>"); exit(); } //Selectthejokesdatabase if(!@mysql_select_db("jokes")){ echo("<P>Unabletolocatethejoke". "databaseatthistime.</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"chucuola";//然后考虑是否要提示错误,或者转入另一个页面 exit();//终止页面代码执行 } //下面进行数据写操作 if("SUBMIT"==$_POST["submitjoke"]){ $sql="INSERTINTOJokes(joketext) VALUES('$_POST[joketext]') "; if(mysql_query($sql)){ echo("<P>Yourjokehasbeenadded.</P>"); }else{ echo("<P>Erroraddingsubmittedjoke:". mysql_error()."</P>"); } //数据操作完成后,删除session unset($_SESSION[$key]); } ?>//显示笑话内容: <P>Hereareallthejokesinourdatabase:</P><BLOCKQUOTE><?php$result=mysql_query( "SELECT*FROMJokes"); if(!$result){ echo("<P>Errorperformingquery:". mysql_error()."</P>"); exit(); } //Displaythetextofeachjokeinaparagraph while($row=mysql_fetch_array($result)){ echo("<P>".$row["JokeText"]."</P>"); } ?></BODY></HTML>
【编辑推荐】
MySQL大表备份的简单方法
MySQL分表处理的实现方法
MySQL授权表使用示例
MySQL内存表的弊端
MySQL独立表空间的优缺点