网安之PHP基础作业(5)

2023-09-17 14:30:20

目录

目录

前言

系列文章列表

                     IJ中PHP环境的搭建和使用教程

思维导图

1,简答题

1.1.题目部分

1.2,题目分析 

2,页面一实现

2.1,题解

2.2,页面效果展示 

3,页面二的实现

3.1,题解

3.2,题目结果展示

3.2.1,结果1

3.2.2,结果2

3.2.3,结果3

4,总结


前言

本博文,主要是对自己在学校PHP基础第5节课后,对作业题目的题解,学习和使用php其实这对于后续漏洞挖掘与发现利用很大的帮助,现在在很多网站都还在使用php在做网站搭建的一部分.所以学习和利用还是很有用必要的.

系列文章列表


                     IJ中PHP环境的搭建和使用教程

思维导图

1,简答题

1.1.题目部分

简答题: 作业: 完成注册功能:

页面一: 提供账号(type="text")、密码(type="password")、性别(type="radio")、城市(type="select")、爱好(type="checkbox")、自我介绍控件(textarea) 使用表单方式提交,提交方式选择post 页面二: 接收账号、密码、性别、城市、爱好、自我介绍信息, 账号判断是否为"admin",密码判断是否为"123",输入错误打印 <账号或密码错误>. 其他控件值判断是否不为空,全部ok输出 注册成功! 否则输出 <请将注册信息填写完整>.

1.2,题目分析 

我们在进行做一道复杂的题目时,我们需要对其进行分析,和制作程序的流程类似,我们在进行时,分析是必不可少的一部分,所以我们要记得"磨刀不误砍柴工"这句话.

         题目要求实现一个注册功能,包括两个页面。下面对每个页面和功能进行分析:

页面一:

  • 提供账号输入框(type=“text”)、密码输入框(type=“password”)、性别单选框(type=“radio”)、城市下拉框(type=“select”)、爱好复选框(type=“checkbox”)、自我介绍文本域(textarea)。
  • 提交按钮使用表单方式提交(post方式)。

页面二:

  • 接收账号、密码、性别、城市、爱好、自我介绍信息。
  • 判断账号是否为"admin",密码是否为"123",如果不符合,则输出提示信息"<账号或密码错误>"。
  • 对其他控件的值进行判断,如果有任何一个为空,则输出提示信息"<请将注册信息填写完整>"。
  • 如果所有信息都填写完整且账号密码匹配,则输出提示信息"注册成功!"。

2,页面一实现

2.1,题解

其中页面一,主要是使用的html代码的部分,我们需要对代码中一些重要知识点进行补充.

补充知识如入下:

<!--<form> 是用于创建用户交互的表单元素。它可以包含一组用于接收用户输入的控件,例如文本输入框、下拉框、单选框、复选框等等。-->
<!--<form> 元素的常用属性包括:-->
<!--    action:指定表单数据提交到的处理程序 URL。-->
<!--    method:指定表单数据的提交方法,常用的有 GET 和 POST。-->
<!--    name:指定表单的名称。-->
<!--    id:指定表单的唯一标识符。-->
<!--    target:指定表单提交后响应的目标窗口或框架。-->
<!--    enctype:指定表单数据的编码类型,用于在上传文件时指定编码方式。-->

<!--action="register.php":指定表单数据提交到的处理程序文件为 register.php。-->
<!--label for="account":用于关联账号输入框和标签显示,for 属性的值应与对应的输入框的 id 属性相同。-->
<!--input type="text" id="account" name="account" required:创建一个文本输入框,其中:-->
<!--type="text":指定输入框的类型为文本。-->
<!--id="account":为输入框指定一个唯一的标识符。-->
<!--name="account":指定输入框的名称,用于在提交表单时标识该字段。-->
<!--required:指定该输入框为必填项,即必须输入内容才可提交表单。-->

 其中主要是使用<form>标签进行包裹,然后进行代码的编写

下面是一些在代码中常用的一些标签:

<label></label>  用于将信息绑定到一些输入框

<br><br>            主要用于将信息分隔,使页面更加美观

<imput>              进行信息的输入    

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
</head>
<body>

    <form action="register.php" method="post">
        <!--账号密码部分 -->
        <label for="account">账号:</label>
        <input type="text" id="account" name="account" required>
        <br><br> <!--增加垂直距离-->
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
        <br><br>
        <!--性别部分-->
        <label>性别:</label>
<!--value="male":指定单选框的值。当单选框被选中时,它的值会被提交到服务器。在这个例子中,如果用户选择了这个单选框,它的值会被设置为"male"。-->
        <input type="radio" id="male" name="gender" value="male" required>
        <label for="male">男</label>
        <input type="radio" id="female" name="gender" value="female" required>
        <label for="female">女</label>
        <br><br>

<!--        创建了三个下拉菜单(select)输入控件-->
<!--       <option value="beijing">北京</option>定义了一个下拉菜单的选项。-->
<!--        value="beijing":指定了选项的值。当该选项被选择时,这个值会被提交到服务器。-->
<!--        北京:显示在下拉菜单中的文本,供用户选择。-->

        <!--城市选择部分-->
        <label for="city">城市</label>
        <select id="city" name="city" required>
            <option value="beijing">北京</option>
            <option value="shanghai">上海</option>
            <option value="xian">西安</option>
        </select>
        <br><br>
        <!--爱好部分-->
        <label>爱好:</label>
        <input type="checkbox" id="hobby1" name="hobbies[]" value="hobby1">
        <label for="hobby1">听音乐</label>
        <input type="checkbox" id="hobby2" name="hobbies[]" value="hobby2">
        <label for="hobby2">看书</label>
        <input type="checkbox" id="hobby3" name="hobbies[]" value="hobby3">
        <label for="hobby3">爬山</label>
        <br><br>
        <!--自我介绍部分-->
        <label for="introduction">自我介绍:</label>
        <textarea id="introduction" name="introduction" rows="4" cols="50" required></textarea>
        <br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

2.2,页面效果展示 

 

3,页面二的实现

3.1,题解

其中在php代码中,所有代码都是在<?php  这个标签后进行编写

1.其中$account  代表一个变量  ,与其他编程语言不一样,不需要进行定义

2.$_POST['account'] 代表使用post方式进行提交 []里面代表存储着从表单传入的值

3.echo在php中是打印的字符

4.!empty代表判断的值是否为非空

<?php
# 接受信息页面
$account = $_POST['account']; # 保存账号字段的值。
$password = $_POST['password']; # 保存密码字段的值
$gender = $_POST['gender']; # 保存性别字段的值
$city = $_POST['city']; # 保存城市字段的值
$hobbies = $_POST['hobbies']; # 保存爱好字段的值。由于爱好字段是一个复选框,所以它的值将作为一个数组存储。
$introduction = $_POST['introduction']; # 保存自我介绍字段的值

# 判断账号密码是否为admin和123
# !empty($变量名) 检查变量的值是否为非空
if($account == "admin" && $password =="123"){
    if(!empty($account) && !empty($password) && !empty($gender) && !empty($city) && !empty($hobbies) && !empty($introduction))
    {
        echo "注册成功!";
    }else{
        echo "请将注册信息填写完整.";
    }
}
else {
        echo "账号或密码错误.";
}

3.2,题目结果展示

3.2.1,结果1

3.2.2,结果2

3.2.3,结果3

4,总结

在进行题目练习的过程中,发现自己对于学习过的html知识点,开始出现了遗忘,然后进行自己查询资料,并一点一点进行题目的完成,自己也有很多的收获,在做完后,给了自己很多的继续学习下去的动力,发现php是一门很有趣的编程语言.

每日一言

当你真正想做成一件事情的时候,就连天地万物都会帮你。

  如果我的学习笔记对你有用,不妨点赞收藏一下,感谢你的支持,当然也欢迎大佬给我一下建议或是对笔记中的不足进行补充,对我学习大有帮助,谢谢。  

更多推荐

黑马JVM总结(十七)

(1)G1_简介下面介绍一种Grabageone的垃圾回收器,在jdk9的时候称为默认的回收器,废除了之前的CMS垃圾回收器,它的内部也是并发的垃圾回收器我们可以想到堆内存过大,肯定会导致回收速度变慢,因为要涉及到对象的复制、标记,内存过大,对速度会产生影响,划分为小的区域进行管理,可以进行一些优化,标记和复制的速度在

GaussDB之应用无损透明(ALT)

1.背景GaussDB作为一款企业级分布式数据库,提供了“同城跨AZ双活、两地三中心、双集群强一致”等极致的高可用容灾能力。当某个数据库节点由于故障无法对外提供服务时,为了继续保证数据库服务的可用性,JDBC驱动会将业务后续的数据库连接请求发送到其它可用节点上。但故障发生后,已经与故障节点建立会话的连接无法自动切换到可

手撕排序之堆排序

一、概念:什么是逻辑结构、物理结构?逻辑结构:是我们自己想象出来的,就像内存中不存在一个真正的树物理结构(存储结构):实际上在内存中存储的形式。堆的逻辑结构是一颗完全二叉树堆的物理结构是一个数组之前讲过二叉树可以用两种结构进行表示。第一种就是链式结构,将一个一个结点进行链接。第二种就是用数组表示。数组表示意味着我们就是

Godot配置C#语言编写脚本(使用VSCode作为外部编辑器)

文章目录Godot部分查看VSCode的所在位置配置外部编辑器配置VSCode编写脚本中文注释其他文章字符编码Godot部分打开编辑器-编辑器设置;查看VSCode的所在位置右键单击你的VScode快捷方式,选择属性。这里的目标就是你的VSCode所在的位置。配置外部编辑器在编辑器设置里找到.NET-编辑器-Exter

全国职业技能大赛云计算--高职组赛题卷②(容器云)

全国职业技能大赛云计算--高职组赛题卷②(容器云)第二场次题目:容器云平台部署与运维任务1DockerCE及私有仓库安装任务(5分)任务2基于容器的web应用系统部署任务(15分)任务3基于容器的持续集成部署任务(15分)任务4Kubernetes容器云平台部署与运维(15分,本任务只公布考试范围,不公布赛题)需要环境

全国职业技能大赛云计算--高职组赛题卷⑤(私有云)

全国职业技能大赛云计算--高职组赛题卷⑤(私有云)第一场次题目:OpenStack平台部署与运维任务1基础运维任务(5分)任务2OpenStack搭建任务(15分)任务3OpenStack云平台运维(15分)任务4OpenStack云平台运维开发(15分,本任务只公布考试范围,不公布赛题)需要环境私信博主!!!第一场次

人工智能是否有风险

批判性思考人工智能这一挑战经常由人工智能的支持者提出:如果一个机器人足够聪明,与自然人完全没有区别,那么它拥有公民权利难道不是道德和正确的吗?“杀死”这样的生物岂不是有错?我的回答是,这样的生物不能被赋予公民权利,并且消除它本身并没有错。回答通常是这样的:“这难道不是人类自我在说话吗?这就是基于基质的歧视,不是吗?”不

虹科案例 | Zuellig Pharma和ELPRO通过符合GDP标准的温度监测和高效的温度数据管理为未来发展奠定基础

在本案例研究中,您将了解ZuelligPharma实施了温度监测解决方案,以一致的数据结构获取各国和各种运输方式的数据;通过将温度数据上传到其数据库管理系统,显著提高了其效率;并建立了为未来管理决策提供数据增值使用的基础。项目合作伙伴ZuelligPharma是亚洲最大的医疗保健服务集团之一。该公司提供世界级的分销、数

【入门篇】ClickHouse最优秀的开源列式存储数据库

文章目录一、什么是ClickHouse?OLAP场景的关键特征列式数据库更适合OLAP场景的原因输入/输出CPU1.1ClickHouse的定义与发展历程1.2ClickHouse的版本介绍二、ClickHouse的主要特性2.1高性能的列式存储2.2实时的分析查询2.3高度可扩展性2.4数据压缩2.5SQL支持2.6

[npm] npx 介绍与使用说明

[npm]npx介绍与使用说明npm的由来npx是什么?npx特点npx的特点项目安装包的使用全局安装包的避免指定工具包版本--no-install参数和--ignore-existing参数使用不同版本的node-p参数-c参数实战应用执行GitHub源码npm的由来说到npm就离不开社区文化,那什么是社区文化?社区

【C++】构造函数初始化列表 ⑤ ( 匿名对象 生命周期 | 构造函数 中 不能调用 构造函数 )

文章目录一、匿名对象生命周期1、匿名对象生命周期说明2、代码示例-匿名对象生命周期二、构造函数中调用构造函数1、构造函数中不能调用构造函数2、代码示例-构造函数中调用构造函数构造函数初始化列表总结:初始化列表可以为类的成员变量提供初始值;初始化列表可以调用类的成员变量类型的构造函数进行成员变量初始化操作;初始化列表可以

热文推荐