Blogger Information
Blog 22
fans 1
comment 0
visits 17756
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
第十期PHP流程控制循环控制和表单验证操作(2020-01-08)
齐齐
Original
891 people have browsed it

1.PHP流程控制循环控制

1.1流程控制循环之for循环

案例实现功能:给1~50之间的偶数,并加上随机rgb颜色

  1. // 循环输出1到50的偶数,并加入随机颜色打印
  2. //
  3. ()生成1~50的数组
  4. $num=range(1,50);
  5. // mt_rand()生成0~255数字,作为rgb红绿栏对应的值
  6. $randcolor='rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')';
  7. for($i = 1;$i <= count($num);$i++){
  8. if($i % 2 == 0){
  9. // 对随机生成的偶数加入字体大小和随机颜色
  10. echo '<span style="font-size:20px;color:'.$randcolor.'">'.$i.'</span>' .'<br>';
  11. }
  12. }

运行效果

1.2流程控制循环之while循环

案例实现功能:用while改写给1~50之间的偶数,并加上随机rgb颜色案例效果

  1. // while改写1~50之间的偶数,并加上随机rgb颜色案例效果
  2. // 1.入口判断
  3. // 循环输出1到50的偶数,并加入随机颜色打印
  4. // range()生成1~50的数组
  5. $num=range(1,50);
  6. // mt_rand()生成0~255数字,作为rgb红绿栏对应的值
  7. $randcolor='rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')';
  8. // 给while循环变量定义初始值为1
  9. $i=1;
  10. // while($i<=count($num)){
  11. // if($i % 2 == 0){
  12. // // 对随机生成的偶数加入字体大小和随机颜色
  13. // echo '<span style="font-size:20px;color:'.$randcolor.'">'.$i.'</span>' .'<br>';
  14. // }
  15. // $i++;
  16. // }
  17. // 2.出口判断
  18. do{
  19. if($i % 2 == 0){
  20. // 对随机生成的偶数加入字体大小和随机颜色
  21. echo '<span style="font-size:20px;color:'.$randcolor.'">'.$i.'</span>' .'<br>';
  22. }
  23. $i++;
  24. }while($i<=count($num));

运行效果

2.表单验证操作

2.1 表单验证html代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>表单验证操作</title>
  6. <style>
  7. .checking {
  8. width: 300px;
  9. /*将容器设为flex容器*/
  10. display: flex;
  11. /*设置主轴方向为列*/
  12. flex-direction: column;
  13. /*容器水平居中,上下20px*/
  14. margin: 20px auto;
  15. font-size: 14px;
  16. color: #fff;
  17. }
  18. .checking>h3 {
  19. line-height: 30px;
  20. color: #f60;
  21. /*字体水平居中*/
  22. text-align: center;
  23. }
  24. .checking>form {
  25. /*设置内边距*/
  26. padding: 20px;
  27. /*重置盒子大小*/
  28. box-sizing: border-box;
  29. /*将容器设为flex容器*/
  30. display: flex;
  31. /*设置主轴方向为列*/
  32. flex-direction: column;
  33. background: #ff6600;
  34. /*设置圆角*/
  35. border-radius: 5px;
  36. }
  37. .checking>form>span {
  38. /*将容器设为flex容器*/
  39. display: flex;
  40. /*水平对齐方式为两端对齐*/
  41. justify-content: space-between;
  42. margin: 10px 0;
  43. }
  44. .checking>form>span>input {
  45. width: 70%;
  46. /* 去掉边框 */
  47. border: none;
  48. /*设置圆角*/
  49. border-radius: 2px;
  50. }
  51. .checking>form>span>input:hover{
  52. background: wheat;
  53. }
  54. .checking>form>span>button {
  55. /*修改鼠标状态*/
  56. cursor: pointer;
  57. margin: auto;
  58. /*去掉边框线*/
  59. border: none;
  60. color: #ff6600;
  61. background: white;
  62. width: 50%;
  63. line-height: 30px;
  64. padding: 3px 5px;
  65. }
  66. .checking>form>span>button:hover {
  67. /*鼠标放上去修改背景和前景色*/
  68. background: #3a87ad;
  69. color: white;
  70. }
  71. </style>
  72. </head>
  73. <body>
  74. <!-- 注册表单验证 -->
  75. <div class="checking">
  76. <h3>注册表单验证</h3>
  77. <!-- method默认请求方式为get -->
  78. <form action="demo3.php" method="post">
  79. <span><label for="name">用户名:</label> <input type="text" name="name" id="name" placeholder="不能超过20个字符" required autofocus></span>
  80. <span><label for="password1">密码:</label> <input type="password" name="password1" id="password1" placeholder="必须超过6个字符" required></span>
  81. <span> <label for="password1">重复密码:</label> <input type="password" name="password2" id="password2" placeholder="密码必须和上面一致" required></span>
  82. <span><label for="email">邮箱:</label> <input type="email" name="email" id="email" placeholder="邮箱必须真实" required></span>
  83. <span><label for="girl">性别:</label>
  84. <span>
  85. <input type="radio" name="gender" id="boy" value="boy"><label for="boy"></label>
  86. <input type="radio" name="gender" id="girl" value="girl"><label for="girl"></label>
  87. <input type="radio" name="gender" id="secrecy" value="secrecy" checked><label for="secrecy">保密</label>
  88. </span>
  89. </span>
  90. <span><label for="ymq">爱好:</label>
  91. <span>
  92. <input type="checkbox" name="loves[]" id="ppq" value="ppq"><label for="ppq">乒乓球</label>
  93. <input type="checkbox" name="loves[]" id="ymq" value="ymq" checked><label for="ymq">羽毛球</label>
  94. <input type="checkbox" name="loves[]" id="gef" value="gef" checked><label for="gef">高尔夫球</label>
  95. </span>
  96. </span>
  97. <span>
  98. <button>提交注册</button>
  99. </span>
  100. </form>
  101. </div>
  102. </body>
  103. </html>

前端运行效果

2.2 php表单验证

  1. // 获取提交所有值
  2. // echo "<pre>".print_r($_REQUEST,true)."</pre>";
  3. echo "<pre>".print_r($_POST,true)."</pre>";
  4. // Array
  5. // (
  6. // [name] => 1
  7. // [password1] => 1
  8. // [password2] => 1
  9. // [email] => 4@qq.com
  10. // [gender] => secrecy
  11. // [loves] => Array
  12. // (
  13. // [0] => ymq
  14. // [1] => gef
  15. // )
  16. // )
  17. // 1.判断提交请求是否合法
  18. // if($_SERVER['REQUEST_METHOD']==="POST")
  19. // {
  20. // echo "<h3 style='color:#f60;'>合法</h3>";
  21. // }else{
  22. // exit("<h3 style='color:red;'>不合法</h3>");
  23. // }
  24. if($_SERVER['REQUEST_METHOD']==="POST")
  25. {
  26. // 2.检查请求的变量是否有值
  27. if(!empty($_POST['name']))$name=$_POST['name'];
  28. if(!empty($_POST['password1']))$password1=$_POST['password1'];
  29. if(!empty($_POST['password2']))$password2=$_POST['password2'];
  30. if(!empty($_POST['email']))$email=$_POST['email'];
  31. if(!empty($_POST['gender']))$gender=$_POST['gender'];
  32. if(!empty($_POST['loves']))$loves=$_POST['loves'];
  33. // 3.判断密码是否一致
  34. if($password1===$password2)
  35. {
  36. // 对密码先md5加密,保险再加一层shal()
  37. $password=sha1(md5($password1));
  38. }else{
  39. // exit加入js语句,当密码不一致弹出提示并返回上一页
  40. exit("<script>alert('两次密码不一致');history.back();</script>");
  41. }
  42. // 没有问题,将信息存入到一个关联数组中,并弹出注册成功提示
  43. $success=compact('name','password','email','gender','loves');
  44. echo "<script>alert('注册成功,请登陆');</script>";
  45. echo "<pre>".print_r($success,true)."</pre>";
  46. }else{
  47. exit("<h3 style='color:red;'>不合法</h3>");
  48. }

运行效果
当密码两次输入不一样

输入信息正确后,显示注册成功

3.循环语句相关知识手抄版本

4.总结

4.1 for(),while()虽然都能遍历索引数组、关联数组。但是最适合的是foreach(),语法简洁使用方便。

4.2 while()循环的初始化变量值要放在语句之前,循环条件更新放在while语句内。根据判断条件的位置分为入口判断型和出口判断型。出口while后面需要加上分号

4.3 mt_rand(),只需给出最小值和最大值的,可生成一个两值之间的随机数。range()给出开始值和结束值,在不设置第三个值的情况下,按每次增长1生成一个索引数组。

4.4 $_REQUEST超全局变量能获取到getpostcookie的值。在知道请求类型,选择对应的请求变量效率会更高。在form表单中,在不method情况下,默认的请求方式为get,以浏览器地址栏键值对的方式将数据发送。

4.5 判断请求类型用$_SERVER['REQUEST_METHOD'],判断值是否设置用empty(),字符串加密md5()形成32位随机字符串, sha1()。形成40位随机字符串。

4.6 将独立的几个变量转为关联数组,用compact()里面的值是对应的键名值,每个值用引号包裹,用逗号分开。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:完成的很好, 希望以现在的作业为主, 与课程进度一致
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