Blogger Information
Blog 22
fans 1
comment 1
visits 22281
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP循环控制与表单的验证--PHP培训十期线上班
Miss灬懒虫
Original
699 people have browsed it

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. }

手抄写

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:用着php中文网的鼠标垫, 上着php中文网的课程, 还写着咱们的作业, 沉浸式学习体验
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post