PHP之粘性表单

在做数据校验时,不能只做前台JS校验,因为要防止恶意用户绕过JS校验。所以,服务器端校验绝对是一个WEB系统的最后防线。

然而,在做服务器端校验时,由于表单是提交到服务器再显示输出,所以为了防止出错时让用户重复填写数据,所以就有粘性表单的概念,即在出错返回的表单中保留有用户填写过的数据。

这样就需要用到几个东西:

1.action中填入:<?php echo $_SERVER['PHP_SELF']?>

2.在value中赋值,赋予$_POST["***"]值

具体代码如下:

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title></title>
 </head>
 <body>
   <?php
    $output = FALSE;
    if(isset($_POST["submit"])){
     
     if(empty($_POST["first_name"])||empty($_POST["second_name"])){
      
      echo '请将信息填全.<br/>';
      if(!empty($_POST["first_name"])){
       
       $first_name = $_POST["first_name"];
      }else{
       
       $first_name ="";
      }
      if(!empty($_POST["second_name"])){
       
       $second_name = $_POST["second_name"];
      }else{
       
       $second_name ="";
      }
      $output=TRUE;
     }else{
      
      $first_name = $_POST["first_name"];
      $second_name = $_POST["second_name"];
      
      $conn = mysqli_connect("localhost","root","root","test") or die("连接数据库失败!");
      $sql = "insert into alien_abuction values('{$first_name}','{$second_name}')";
      $result = mysqli_query($conn,$sql) or die("保存失败!");
      echo '保存成功<br/>';
      mysqli_close($conn);
     }
    }else{
     
     //如果从未提交过,那么需要显示表单
     $first_name = "";
     $second_name = "";
     $output = TRUE;
    }
   ?>
   <?php if($output){?>
   <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
   first_name:<input type="text" name="first_name" value="<?php echo $first_name;?>"/>
   second_name:<input type="text" name="second_name" value="<?php echo $second_name;?>"/>
   <input type="submit" value="提交" name="submit"/>
   </form>
   <?php }?>
 </body>
</html>
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值