php中html if判断_PHP与Web表单

37196bc79b3507d4d87b223be1a4ae62.png

昨晚,云安全有一个小伙伴请我吃饭,说他要来态势感知,给我当小弟。一番寒暄得知,他最近过得不好,不喜欢Java太多的框架,不喜欢SDN控制器。其实,他是个很聪明的小伙子,高考满分750,他考了600多分,可以上末流985大学。英语单词,过目不忘,诗词歌赋,随手拈来。大家都开玩笑,为啥想不开要做程序员啊~

今天看到一个有趣的段子值得分享,他说电影院里中间有一个人站起来了,后面的人只好跟着站起来,但是看的电影并没有改变;有一个人使用抢票软件加速买票,后来大家都使用抢票软件了,但是票的数量并没有改变;有一个人上补习班成绩好了,后来大家都上补习班,但是高校录取的人数并没有改变~

一、PHP的全局变量

元素例子说明
$_SERVER['QUERY_STRING']name=ailx10&skill=php,javaURL中问号之后的内容
$_SERVER['PHP_SELF']/ailx10/info.phpURL完整路径名
$_SERVER['REQUEST_METHOD']POST/GET请求的方法
$SERVER['SERVER_NAME']domain网站的域名
.........

二、访问表单参数

  • 注意,表单中的name=hack[]
  • 这里需要有[] ,表示是一个数组
<form method="POST" action="test7.2.php">
    <select name="hack[]" multiple>
        <option value="ailx10"> ailx10 </option>
        <option value="ailx11"> ailx11 </option>
        <option value="ailx12"> ailx12 </option>
        <option value="ailx13"> ailx13 </option>
    </select>
    <input type="submit" name="submit">
</form>
你的选择黑客是:
<br/>
<?php
if(isset($_POST['hack'])){
    foreach ($_POST['hack'] as $selected){
        print "$selected <br/>";
    }
}

e677ba602cc23f31b18e9eb815dcf7ba.png

三、使用函数处理表单

  • 多使用函数,脑子会变得更加灵活~
  • 多使用函数,写代码就像写故事~
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if(validata_form()){
        process_form();
    }else{
        show_form();
    }
}else{
    show_form();
}

function show_form(){
    print <<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
黑客姓名:<input type="text" name="name"><br>
通行密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
_HTML_;
}

function process_form(){
    print "欢迎主人:". $_POST['name'];
}

function validata_form(){
    if(strlen($_POST['password']) <6){
        return false;
    }else{
        return true;
    }
}

7e56a7fac326574ecadcf71caac4ba79.png

四、验证数据

1、将错误信息输出,这里密码长度要求为6

cf1ec2954757978c6567333484a885a4.png

2、必填的元素,判断用户名的长度是否为0

2fc105fee678e2ed39d9ceba81123202.png
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if($form_errors = validata_form()){
        show_form($form_errors);
    }else{
        process_form();
    }
}else{
    show_form();
}


function show_form($errors=""){
    if($errors){
        print "错误信息如下:<ul><li>";
        print implode("</li><li>",$errors);
        print "</li></ul>";
    }

    print <<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
黑客姓名:<input type="text" name="name"><br>
通行密码:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
_HTML_;
}

function process_form(){
    print "欢迎主人:". $_POST['name'];
}

function validata_form(){
    $errors = array();
    if(strlen($_POST['name']) == 0)
    {
        $errors[] = "用户名是必填项~";
        $errors[] = "你忘记了输入用户名";
    }

    if(strlen($_POST['password']) <6) {
        $errors[] = "你输入的密码不正确~";
        $errors[] = "密码长度为:" . strlen($_POST['password']);
    }
    return $errors;
}

3、数值验证

  • 这里比较输入的年龄,是不是整数
  • 如果不是整数,那么会提示年龄输入错误
  • 这里使用的是PHP恒等运算符 ===

09f2fbe525d6f5d6974d378d4aac7bb8.png
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if($form_errors = validata_form()){
        show_form($form_errors);
    }else{
        process_form();
    }
}else{
    show_form();
}


function show_form($errors=""){
    if($errors){
        print "错误信息如下:<ul><li>";
        print implode("</li><li>",$errors);
        print "</li></ul>";
    }

    print <<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
黑客姓名:<input type="text" name="name"><br>
黑客年龄:<input type="text" name="age"><br>
黑客邮箱:<input type="text" name="mail"><br>
<input type="submit" value="提交">
</form>
_HTML_;
}

function process_form(){
    print "注册成功:". $_POST['name'];
}

function validata_form(){
    $errors = array();
    if(strlen($_POST['name']) == 0)
    {
        $errors[] = "用户名是必填项~";
        $errors[] = "你忘记了输入用户名";
    }
    $ok = filter_input(INPUT_POST,'age',FILTER_VALIDATE_INT);
    if(is_null($ok) || ($ok === false))
    {
        $errors[] = "年龄是整数哦~";
        $errors[] = "仔细检查一下年龄是不是输错了";
    }

    return $errors;
}

4、数字范围

  • 年龄太小不要学习黑客~
  • 年龄太大不要学习黑客~

3972db46cbe79a90ff40cca91839c59f.png
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if($form_errors = validata_form()){
        show_form($form_errors);
    }else{
        process_form();
    }
}else{
    show_form();
}


function show_form($errors=""){
    if($errors){
        print "错误信息如下:<ul><li>";
        print implode("</li><li>",$errors);
        print "</li></ul>";
    }

    print <<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
黑客姓名:<input type="text" name="name"><br>
黑客年龄:<input type="text" name="age"><br>
黑客邮箱:<input type="text" name="mail"><br>
<input type="submit" value="提交">
</form>
_HTML_;
}

function process_form(){
    print "注册成功:". $_POST['name'];
}

function validata_form(){
    $errors = array();
    if(strlen($_POST['name']) == 0)
    {
        $errors[] = "用户名是必填项~";
        $errors[] = "你忘记了输入用户名";
    }
    $age_valid = filter_input(INPUT_POST,'age',FILTER_VALIDATE_INT,
        array('options'=>array('min_range'=>18,
            'max_range'=>65)));
    if(is_null($age_valid) || ($age_valid === false))
    {
        $errors[] = "未成年人不要注册~";
        $errors[] = "退休的大爷不要瞎闹~";
        $errors[] = "仔细检查一下年龄是不是输错了";
    }
    
    return $errors;
}

5、字符串验证

  • 用户输入的字符串,需要去掉前后的空格
  • trim函数可以去除首尾的空白~

1cc85301c704d3a8dfff491688b535a8.png

6、电子邮件地址

  • PHP这块做的非常友善~
  • 电子邮件格式什么的都是自带了校验方法~
  • filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)

3baf8e910c0190ca19f40b1b60745320.png
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if($form_errors = validata_form()){
        show_form($form_errors);
    }else{
        process_form();
    }
}else{
    show_form();
}


function show_form($errors=""){
    if($errors){
        print "错误信息如下:<ul><li>";
        print implode("</li><li>",$errors);
        print "</li></ul>";
    }

    print <<<_HTML_
<form method="POST" action="$_SERVER[PHP_SELF]">
黑客姓名:<input type="text" name="name"><br>
黑客年龄:<input type="text" name="age"><br>
黑客邮箱:<input type="text" name="email"><br>
<input type="submit" value="提交">
</form>
_HTML_;
}

function process_form(){
    print "注册成功:". $_POST['name'];
}

function validata_form(){
    $errors = array();
    if(strlen(trim($_POST['name'])) == 0)
    {
        $errors[] = "用户名是必填项~";
        $errors[] = "你忘记了输入用户名";
    }
    $age_valid = filter_input(INPUT_POST,'age',FILTER_VALIDATE_INT,
        array('options'=>array('min_range'=>18,
            'max_range'=>65)));
    if(is_null($age_valid) || ($age_valid === false))
    {
        $errors[] = "未成年人不要注册~";
        $errors[] = "退休的大爷不要瞎闹~";
        $errors[] = "仔细检查一下年龄是不是输错了";
    }

    $email_valid = filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL);
    if(! $email_valid){
        $errors[] = "你输入的邮箱格式不对呀~";
        $errors[] = "不要瞎搞哦~";
    }

    return $errors;
}

本篇完,谢谢大家~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值