博客列表 >PHP循环控制与表单的验证--PHP培训十期线上班

PHP循环控制与表单的验证--PHP培训十期线上班

Miss灬懒虫
Miss灬懒虫原创
2020年01月13日 10:16:42689浏览

PHP循环控制与表单的验证(补2020.1.8)

使用心得

因为对于html而言,所有的内容都是作为字符进行解析显示的,所以对于字符的控制和操作也就变得异常重要。而对字符的截取和删除也就更有利于显示的储存的规范性了;
其次,很多时候我们都将数据变成一个数组,便于进行比较和存储,因此对于数组指针的控制以及理解也就十分重要了,而且一定要记得用完的指针记得复位哦!

PHP循环控制

运行效果

代码

  1. <?php
  2. /*
  3. * 本例代码中将会使用到的常见函数
  4. * count(),计算数组中,元素的数量,或者对象中的存在属性的数量;
  5. * strlen(),获取字符串的长度;
  6. * trim(),去掉字符串 “首尾两端”的字符,默认为空白字符(空格符、制表符、换行符、回车符、空字节以及垂直制表符),也可以通过第二个参数指定;
  7. * rtrim(), ltrim(),与trim()功能一致,不同的是 “明确了”针对的方向,也就是删除左侧还是右侧;
  8. * mt_rand(min, max): 产生指定范围的随机数,min最小值,max最大值;
  9. * */
  10. //示例公用变量;
  11. $array_type = ['html', 'css', 'js', 'php', 'laravel'];
  12. $trim_str=' AntSports ';
  13. //常见函数,count() 示例
  14. echo 'Array_type 变量的元素数量是:'.count($array_type).'个'.'<br><br>';
  15. //常见函数,strlen() 示例
  16. echo 'trim_str 变量的字符长度是:'.strlen($trim_str).'<br><br>';
  17. //常见函数,trim() 示例
  18. $str_all=trim($trim_str);
  19. echo '截取后的trim_str : '.$str_all.',他的字符长度是:'.strlen($str_all).'<br><br>';
  20. //常见函数,ltrim() 示例
  21. $str_left=ltrim($trim_str);
  22. echo '截取后的trim_str : '.$str_left.',他的字符长度是:'.strlen($str_left).'<br><br>';
  23. //常见函数,rtrim() 示例
  24. $str_right=rtrim($trim_str);
  25. echo '截取后的trim_str : '.$str_right.',他的字符长度是:'.strlen($str_right).'<br><br>';
  26. //常见函数,rtrim() ,使用其第二个参数,去掉 ‘s’示例
  27. $str_right2=rtrim($str_all,'s');
  28. echo '截取后的trim_str : '.$str_right2.',他的字符长度是:'.strlen($str_right2).'<br><br>';
  29. //常见函数,mt_rand(min, max) 示例
  30. function rand_discount(){
  31. return(mt_rand(68,95)/100)*10;
  32. }
  33. $discount=rand_discount();
  34. echo "当前抽取的折扣是: {$discount} 折<br><br>";
  35. echo '-----<br>';
  36. /*
  37. * for循环,也成之为计数式
  38. * for(循环变量的初始化; 循环条件; 更新循环条件) {...}
  39. * 使用内置函数,key(), current(): 分别返回当前数组元素的键和值;
  40. * 使用内置函数 next(): 将指针指向数组当前元素的下一个元素的位置;
  41. * 使用内置函数 prev(): 将指针指向数组当前元素的上一个元素的位置;
  42. * 使用内置函数 reset():将指针复位到数组的第一个元素;
  43. * 使用内置函数 end():将指针移动到数组的最后一个元素,并且返回他的值;
  44. **/
  45. for ($i=0;$i<5;$i++){
  46. $discounts=rand_discount();
  47. //将函数返回的折扣之存储在数组中;
  48. if ($i<4){
  49. $array_discounts[$i]=$discounts;
  50. next($array_discounts);
  51. }else{
  52. $array_discounts[$i]=$discounts;
  53. reset($array_discounts);
  54. }
  55. }
  56. //使用array_search()函数,获取抽取折扣中最大的折扣率,所对应的键值;
  57. $discount_key = array_search(min($array_discounts), $array_discounts);
  58. //foreach()遍历折扣数组中的值;
  59. foreach ($array_discounts as $value){
  60. echo '本次活动抽取的折扣有:'.$value.'折,'.'<br>';
  61. }
  62. //将键值对应的值取出来;
  63. $max_discount= $array_discounts[$discount_key];
  64. echo '在5次随机折扣抽取中,您获得的最大折扣为:'.$max_discount.'折!<br><br>';
  65. /*
  66. * while循环,是根据条件判断是否符合,若符合则进入循环体内,也被成为 “当循环”;
  67. * while循环的变量必须写在 while 的前面;
  68. * 根据判断条件的位置,while循环又分为 “ while循环--入口判断”和 “do while--出口判断”
  69. * */
  70. //while 循环--入口判断;
  71. $w=0;
  72. while ($w<count($array_type)){
  73. echo $array_type[$w].',<br>';
  74. $w++;
  75. }
  76. echo '-----<br>';
  77. //do while---出口判断,若条件不满足也至少执行一次;
  78. $w=0;
  79. do{
  80. echo $array_type[$w].',<br>';
  81. $w++;
  82. }
  83. while ($w>count($array_type));

PHP表单验证

运行效果

代码-页面部分

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. }
  11. body{
  12. width: 100%;
  13. height: 100%;
  14. display: flex;
  15. flex-flow: column nowrap;
  16. align-items: center;
  17. }
  18. .register{
  19. width: 380px;
  20. height: 300px;
  21. background-color: lightblue;
  22. border-radius: 5px;
  23. margin-top: 80px;
  24. display: grid;
  25. grid-template-rows: 65px 200px 35px ;
  26. grid-template-columns: 80px 1fr 80px ;
  27. place-items: center;
  28. }
  29. .register>h2{
  30. grid-row: 1/2;
  31. grid-column: 1/4;
  32. }
  33. .register>form{
  34. width: 100%;
  35. height: 100%;
  36. grid-row: 2/4;
  37. grid-column: 2/3;
  38. display: flex;
  39. flex-flow: column nowrap;
  40. }
  41. .register>form>.item{
  42. height: 26px;
  43. margin: 5px 0;
  44. display: flex;
  45. flex-flow: row nowrap;
  46. justify-content: space-between;
  47. }
  48. .register>form>.item:last-of-type{
  49. margin-top: 5px;
  50. justify-content: center;
  51. }
  52. .register>form>.item:last-of-type>button{
  53. width: 80px;
  54. height: 28px;
  55. color: white;
  56. background-color: forestgreen;
  57. border: none;
  58. border-radius: 4px;
  59. }
  60. .register>form>.item:last-of-type>button:hover{
  61. cursor: pointer;
  62. box-shadow: 0 0 10px #ccc;
  63. }
  64. </style>
  65. </head>
  66. <body>
  67. <div class="register">
  68. <h2>用户注册</h2>
  69. <form action="formpost.php" method="post">
  70. <div class="item">
  71. <label for="username">用户名:</label>
  72. <input type="text" id="username" name="username" placeholder="不超过20个字符" required>
  73. </div>
  74. <div class="item">
  75. <label for="password1">密码:</label>
  76. <input type="password" id="password1" name="password1" placeholder="不能为空" required>
  77. </div>
  78. <div class="item">
  79. <label for="password2">重复密码:</label>
  80. <input type="password" id="password2" name="password2" placeholder="必须与上面一致" required>
  81. </div>
  82. <div class="item">
  83. <label for="email">邮箱:</label>
  84. <input type="text" id="email" name="email" placeholder="不能为空" required>
  85. </div>
  86. <div class="item">
  87. <label for="phone">电话:</label>
  88. <input type="text" id="phone" name="phone" placeholder="不能为空" required>
  89. </div>
  90. <div class="item">
  91. <button>提交注册</button>
  92. </div>
  93. </form>
  94. </div>
  95. </body>
  96. </html>

代码-验证部分

  1. <?php
  2. /*
  3. * $_REQUEST 用于接收表单数据的 “超全局变量”,包含get , post , cookie
  4. * $_SERVER['REQUEST_METHOD'],获取表单提交模式;
  5. * isset(),检查变量是否存在,并且其值不能为 “NULL”;
  6. * empty(),检查一个变量是否为空,若要返回“假”,则变量必须存在,且其值不能为以下内容:
  7. * "" (空字符串)/
  8. * 0 (作为整数的0)
  9. * 0.0 (作为浮点数的0)
  10. * "0" (作为字符串的0)
  11. * NULL
  12. * FALSE
  13. * array() (一个空数组)
  14. * $var; (一个声明了,但是没有值的变量)
  15. * ======
  16. * 使用 三元运算符(格式: 条件 ? true : false ),将判断简化;
  17. * ======
  18. * md5():生成字符串的,32位MD5随机字符串;
  19. * sha1():生成字符串的,40位随机字符串;
  20. * */
  21. //输出用户提交的信息
  22. echo '<pre>'.print_r($_REQUEST,true).'</pre><br>';
  23. echo '邮箱地址:'.$_POST['email'].'<br>';
  24. //判断用户的请求类型
  25. if ($_SERVER['REQUEST_METHOD']=='POST'){
  26. echo '<h3>请求类型正确!</h3><br><br>';
  27. //empty()
  28. if(!empty($_POST['username'])){
  29. echo '有值';
  30. }else{
  31. echo '无值';
  32. }
  33. echo '<br>';
  34. //三元运算符,简化双分支
  35. (!empty($_POST['username']))==true ? $status= '有值': $status='无值';
  36. echo $status.'<br>';
  37. if (!empty($_POST['username'])) $username = $_POST['username'];
  38. if (!empty($_POST['password1'])) $password1 = $_POST['password1'];
  39. if (!empty($_POST['password2'])) $password2 = $_POST['password2'];
  40. if (!empty($_POST['email'])) $email = $_POST['email'];
  41. if (!empty($_POST['phone'])) $phone = $_POST['phone'];
  42. //判断二次的密码是否一致,并且进行md5加密
  43. if ($password1 === $password2) {
  44. // md5():32位随机字符串, sha1():40位随机字符串
  45. $password = md5(sha1($password1));
  46. } else {
  47. exit('<script>alert("二次密码不一致");history.back();</script>');
  48. }
  49. $data = compact('username', 'password', 'email', 'phone');
  50. echo '<pre>' . print_r($data, true) . '</pre>';
  51. }else{
  52. exit('<h3>请求类型错误!</h3>');
  53. }

手抄写

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议