PHP表单与验证

一.Header()函数

标头 (header) 是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字符串,在标头与 HTML 文件之间尚需空一行分隔。

/*一.Header()函数  */
  1 重现导向一个URL
  可以跳转到你想要的页面
  在执行header();之前不能有任何浏览器输出
  header('Location:demo2.php');
  header('Location:http://www.baidu.com');

  2 用于设置字符编码
  header('Content-Type:text/html;charset=utf-8');
  echo '党兴明';

二.接受及验证数据

GETPOST

处理表单时,必须指定输入到表单的信息以何种方式传输到其目的地(method="")。对此,Web开发人员可以采用GETPOST。使用GET方法发送数据时,所有域都追加到浏览器的URL后面,并且为数据随URL地址发送。采用POST方法时,值会作为标准值发送。

PHP分别使用$_GET$_POST超全局变量来处理GETPOST变量。通过使用这两个超全局变量,可以准确地指定信息应当来自哪里,并以你希望的方式处理数据。

demo5.php

<form method='post' action='demo6.php'>
用户名:<input type='text' name='username' /><br />
密&#160码:<input type='password' name='password' /><br />
验证码:<input type='text' name='code' size='5' />1234<br />
邮&#160件:<input type='email' name='email' /><br />
简&#160介:<textarea rols='6' cols='20'></textarea><br />
<input type='submit' name='send' value='提交' />
</form>

demo6.php

//1 线验证是否是demo3.php提交过来的
  //只要是按钮点到我这里来的,那就说明,其它超级全局变量都应该存在
  if (!isset($_POST['send']) || $_POST['send']!='提交'){ //没有点击提交按钮或者点击的不是name='send'的按钮提交过来的就退出
      header('Location:demo6.php');  //跳回demo3.php页面
      exit;  //跳出,下面不需要执行了
  }
  
  //2 接受所有数据
  $username = $_POST['username'];
  $password = $_POST['password'];
  $code = $_POST['code'];
  $email = $_POST['email'];
  $content = htmlspecialchars(trim($_POST['content']));//过滤下文本中的html和两边的空白
  
  //用户名不能小于两位,不能大于10位
  if(strlen($username)<2 || strlen($username)>10){
      //使用js来跳转,有提示的
      echo "<script>alert('用户名不能小于两位或大于10位');history.back();</script>";
      exit;
  }
  
  //密码不能小于两位
  if (strlen($password) <6){
      echo "<script>alert('密码不能小于四位');history.back();</script>";
      exit;
  }
  
  //验证码必须是四位,必须是数字
  if (strlen($code) !=4 || !is_numeric($code)){
      echo "<script>alert('验证码必须是四位,必须是数字');history.back();</script>";
      exit;
  }
  
  //验证电子邮件
  if (!preg_match('/([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})/',$email)){
      echo "<script>alert('电子邮件不合法');history.back();</script>";
      exit;
  }
  echo $username.'<br />'.$code.'<br />'.$email.'<br />'.$content;

 get的实例:表单建议用post

<a href='demo2.php?a=5'>demo2</a>
<?php
  echo $_GET['a']; 
?>

 

posted @ 2016-12-09 12:33  党兴明  阅读(293)  评论(0编辑  收藏  举报