博客列表 >第十期PHP流程控制循环控制和表单验证操作(2020-01-08)

第十期PHP流程控制循环控制和表单验证操作(2020-01-08)

齐齐
齐齐原创
2020年02月16日 21:07:30896浏览

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()里面的值是对应的键名值,每个值用引号包裹,用逗号分开。

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