PHP入門教學之表單與驗證實例詳解

怪我咯
發布: 2023-03-10 19:16:01
原創
1167 人瀏覽過

這篇文章主要介紹了PHP入門教程之表單與驗證技巧,結合實例形式分析了php表單提交與資料驗證的基本技巧與相關注意事項,需要的朋友可以參考下

本文實例講述了PHP表單與驗證。分享給大家參考,如下:

Demo1.php

<?php
  ob_start();
  //重新导向一个 URL
  //header()
  //header(&#39;Location:Demo2.php&#39;);
  //上面这句话可以自动跳转到你所想要的页面。
  //header(&#39;Location:http://www.baidu.com&#39;);
  //上面这句话自动跳转到百度上面去。
  echo &#39;baidu.com&#39;;
  header(&#39;Location:http://www.baidu.com&#39;);
  //在执行 header() 函数,必须注意,之前不能有任何浏览器输出
?>
登入後複製

Demo2.php

<?php
  ob_start();
  echo &#39;1232&#39;;
  //字符编码
  header(&#39;Content-Type:text/html;charset=GBK&#39;); //设置页面编码
  echo &#39;我是中文&#39;;
?>
登入後複製

Demo3.php

<form method="post" action="Demo4.php">
  姓名:<input type="text" name="username" /><br />
  <input type="submit" value="提交" />
</form>
登入後複製

Demo4.php

<?php
  //第一步,接收前面表单中的值。
  //一个,username
  //接收 $_POST[&#39;username&#39;]
  //echo $_POST[&#39;username&#39;];
  //你需要明白一个道理,空字符串也是数据,也可以赋值给 $_POST[&#39;username&#39;];
  //使用 isset() 验证是否正常提交是很准确的
  //目前所说的非法提交,是你没有经过表单提交,没有生成全局变量,而不是 username
  //这个字段为空
// if(isset($_POST[&#39;username&#39;])){
//   echo &#39;正常提交&#39;;
// }else{
//   echo &#39;非法提交&#39;;
// }
  //!empty($_POST[&#39;username&#39;]) 和 == &#39;&#39;基本一样,但是,并不能说,人家是非法的
  //只能说人家没有填而已。
// if(!empty($_POST[&#39;username&#39;])){
//   echo &#39;正常提交&#39;;
// }else{
//   echo &#39;非法提交&#39;;
// }
  //建议使用
  if(isset($_POST[&#39;username&#39;])){
    echo &#39;正常提交&#39;;
    //在输出之前,为了页面安全性
    //echo $_POST[&#39;username&#39;];
    $username = $_POST[&#39;username&#39;];
    $username = trim($username);
    $username = htmlspecialchars($username);
    if(strlen($username) < 2) {
      echo &#39;用户名不能小于两位&#39;;
      exit();
    }
    if(!is_numeric($username)) {
      echo &#39;用户名必须是纯数字&#39;;
      exit();
    }
    echo $username; //<strong>阅谁问君诵</strong>
  }else{
    echo &#39;非法提交&#39;;
  }
?>
登入後複製

Demo5.php

<form method="post" action="Demo6.php">
  用户名:<input type="text" name="username" /><br />
  密  码:<input type="text" name="password" /><br />
  验证码:<input type="text" name="code" size="5" />1234<br />
  邮  箱:<input type="text" name="email" /><br />
  介  绍:<textarea rows="6" cols="25" name="content"></textarea><br />
  <input type="submit" value="提交" name="send" />
</form>
登入後複製

Demo6.php

<?php
  //第一步,先验证是否是 Demo5.php 提交过来
  //只要是按钮点到我这里来的,那么就说明,其他超级变局变量都应该存在
  //如果 send 是存在的,那么就说是点过来,否则,跳回
  if(!isset($_POST[&#39;send&#39;]) || $_POST[&#39;send&#39;] != &#39;提交&#39;){
    header(&#39;Location:Demo5.php&#39;);
    exit; //跳回去了,下面就不需要执行了,那么就 exit;
  }
  //第二步,接收所有数据
  $username = trim($_POST[&#39;username&#39;]);
  $password = $_POST[&#39;password&#39;];
  $code = trim($_POST[&#39;code&#39;]);
  $email = trim($_POST[&#39;email&#39;]);
  $content = htmlspecialchars(trim($_POST[&#39;content&#39;]));
  //用户名不能小于 2 位,不能大于 10 位
  if(strlen($username)<2||strlen($username)>10){
    echo "<script>alert(&#39;用户名不能小于两位或者大于10&#39;);history.back();</script>";
    exit;
  }
  //密码不能小于六位
  if(strlen($password) <6){
    echo "<script>alert(&#39;密码不能小于6位&#39;);history.back();</script>";
    exit;
  }
  //验证码必须是 4 位,必须是数字
  if(strlen($code)!=4 || !is_numeric($code)){
    echo "<script>alert(&#39;验证码必须是 4 位并且是纯数字&#39;);history.back();</script>";
    exit;
  }
  //验证电子邮件
  if(!preg_match(&#39;/^([\w\.]{2,255})@([\w\-]{1,255}).([a-z]{2,4})$/&#39;,$email)){
    echo "<script>alert(&#39;电子邮箱不合法&#39;);history.back();</script>";
    exit;
  }
  echo &#39;用户名:&#39;.$username.&#39;<br/>&#39;;
  echo &#39;电子邮件:&#39;.$email.&#39;<br/>&#39;;
  echo &#39;个人介绍:&#39;.$content;
?>
登入後複製


#

以上是PHP入門教學之表單與驗證實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板