当前位置: 首页 > news >正文

网络安全练气篇——PHP编程语言基础

目录

PHP基础

一、PHP简介与环境搭建

什么是PHP?

PHP环境安装

代码编辑选择

二、基本语法

PHP基本语法操作

PHP变量与输出

啥是常量?

PHP注释

PHP单引号双引号声明

三、PHP表单

PHP表单

四、登录界面搭建与讲解

构建登陆页面

登陆页面端

服务器端


PHP基础

一、PHP简介与环境搭建

什么是PHP?

(外文名:PHP:Hypertext Preprocessor,中文名:“超文本预处理器”) 是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用) 文档中去执行,执行效率比完全生成HTML标记的CGI要高许多,PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。 ​ 目前PHP在全球网页市场、手机网页市场还有为手机提供API程序接口)排名第一。 ​ PHP入门简单,学习入门易入手。

PHP环境安装

集成环境 ·PHPStudy ·小皮面板 ·XAMPP 同时,WINDOWS/LINUX 上同样可直接安装环境//在这里,建议选用PHPstudy 作为环境安装,官网地址为小皮面板(phpstudy) - 让天下没有难配的服务器环境!

代码编辑选择

选择PHP代码的编辑器时,这里给出两点建议。拥有代码高亮功能 ·不会进行自动提示(建议新手使用) 推荐 phpstorm notepad++ vscode

###

二、基本语法

PHP基本语法操作

<!DOCTYPE html>
<html>
//这段代码为一个PHP文件实例,将该实例内容放置服务器端即可实现向浏览器输出"*刘华强*“的操作
<body>
<?php
echo“和我刘华强拼,你有这个实力吗”;?>
</body>
</htmI>

PHP变量与输出

<?php
$iphone13 = 5880; 
//变量首字母不能是数字,同时,变量区分大小写
$iphone12 = 6088; 
// 把变量命名的有意义一点,否则就会给读者挖坑
$shen = $iphone13 + $iphone12echo $shen; 
// echo 是在PHP里面最常用的一个输出、显示功能的命令
?>

$ 叫作美元符

PHP中的变量必须以美元符开始

啥是常量?

顾名思义,就是长久不变的量 在PHP中,用define来定义一个常量如下

<?phpdefine('MY_NAME','我是雪野白香里');
echo MY_NAME;
?>

PHP注释

PHP注释

// 表示单行注释
​
#号也表示单行注释,用的比较少。多行注释 (注释多行)
​
//afdasdfadsf  单行注释
​
/*
​
多行注释 这里是注释区域代码
​
*/

PHP单引号双引号声明

在PHP中,单引号双引号都可适用于字符串 更推荐使用单引号,双引号会解析其中的变量

两者具体的不同之处可以去查阅相关资料了解

<?php
$byball = '兄弟,这瓜多少钱一斤';
$sellball = "两块钱一斤";?>

三、PHP表单

PHP表单

该html文档够建立一个提交界面

我们利用post 提交方式向get_name.php

提交了名字以及性别资料,点击提交按钮进行提交

新建一个名为index.html的文件 放到PHPStudy网站根目录下

<html><head><meta charset="utf-8"><title>问卷调查</title></head><body><form action="whoami.php" method="post">你的名字:<input type="text" name="fname">多大:<input type="text" name="age"><input type="submit" value="提交"></form></body>
</html>

通过网页输入localhost,直接访问到index.html该页面

四、登录界面搭建与讲解

新建一个名为whoami.php的文件放到PHPStudy网站根目录下

<html><body>你叫<?php echo $_post["fname"];?>啊<br><?php echo $_POST["age"];?>有男朋友吗?</body>
</html>

构建登陆页面

利用input 表单就可以构建简单的登陆页面 <fieldset>标签: 框住标签内容

<legend>标签:为fieldset标签添加标题

<label>标签: 点击字体,会自动聚焦后面的控件 <li>标签:列表标签,上方的ul标签代表着下方i标签将内容无序显示,同时,ol标签则代表这有序显示

checkbox: 复选圆框表单元素

登陆页面端

<html><head><meta charset="UTF-8"></head><body><form action="login.php" method="post"><fieldset><legend>用户登录</legend><ul><li><label>用户名:</label><input type="text" name="username"></li><li><label>密码:</label><input type="password" name="userpassword"></li><li><label></label><input type="checkbox" name="remember" value="yes">7天之内自动登录</li><li><label></label><input type="submit" name="login" value="登录"></li></ul></fieldset>
</form></body>
</html>

服务器端

<?php
header('Content-type:text/html;charset=utf-8');   
//开启session
session_start();
//处理用户登录信息
if(isset($_POST['login'])){//接收用户的登录信息$username = trim($_POST['username']);$password = trim($_POST['password']);//判断提交的登录信息if(($username == '')||($password =='')){//若为空,视为未填写,提示错误,并3秒后返回登录界面header('refresh:3; url=login.html');echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;}elseif(($username != 'username') || ($password !='password')){#用户名或密码错误,同空的处理方式header('refresh:3; url=login.html');echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;}elseif(($username = 'username') && ($password = 'password')){#用户名和密码都正确,将用户信息存到Session中$_SESSION['username'] = $username;$_SESSION['islogin'] = 1;//若勾选7天内自动登录,则将其保存到Cookie并设置保留7天if($_POST['remember']  == "yes"){setcookie('username',$username,time()+7*24*60*60);
setcookie('code',md5($username.md5($password)),time()+7*24*60*60);}else{//没有勾选则删除Cookiesetcookie('username','',time()-999);setcookie('code','',time()-999);}//处理完附加项目后跳转到登录成功的首页header('location:index.php');}
}
?>

接下来

使用MySQL数据库实现交互

<?php
header('Content-type:text/html;charset=utf-8');   
//开启session
session_start();
//处理用户登录信息
if(isset($_POST['login'])){//接收用户的登录信息$username = trim($_POST['username']);$password = trim($_POST['password']);//判断提交的登录信息if(($username == '')||($password =='')){//若为空,视为未填写,提示错误,并3秒后返回登录界面header('refresh:3; url=login.html');echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;}//连接数据库//数据库用户名和密码是你自己的用户名和密码$con = mysqli_connect('localhost','root','123456');//验证数据库链接状态if(mysqli_errno($con)){echo "连接失败了,请重试".mysqli_error($con);exit;}//设置解码方式mysqli_set_charset($con,'utf8');//如果没有相对应的数据库,请记得打开数据库进行创建mysqli_select_db($con,'test');$sql = "select * from login where username = '$username' and password = '$password'";$result = mysqli_query($con,$sql);if(!$num){#用户名或密码错误,同空的处理方式header('refresh:3; url=login.html');echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";exit;}else{#用户名和密码都正确,将用户信息存到Session中$_SESSION['username'] = $username;$_SESSION['islogin'] = 1;//若勾选7天内自动登录,则将其保存到Cookie并设置保留7天if($_POST['remember']  == "yes"){setcookie('username',$username,time()+7*24*60*60);
setcookie('code',md5($username.md5($password)),time()+7*24*60*60);}else{//没有勾选则删除Cookiesetcookie('username','',time()-999);setcookie('code','',time()-999);}echo("登陆成功");mysqli_close($con); }}
?>

相关文章:

网络安全练气篇——PHP编程语言基础

目录 PHP基础 一、PHP简介与环境搭建 什么是PHP&#xff1f; PHP环境安装 代码编辑选择 二、基本语法 PHP基本语法操作 PHP变量与输出 啥是常量? PHP注释 PHP单引号双引号声明 三、PHP表单 PHP表单 四、登录界面搭建与讲解 构建登陆页面 登陆页面端 服务器端…...

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时&#xff0c;若发现程序运行时间越长&#xff0c;占用内存越大直至崩溃&#xff0c;通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因&#xff0c;包括数组和字符串处理、未释放的资源、循环中的对象创建等&#xff0c;并提供具体的解决方…...

JVM垃圾回收器介绍

Serial GC: 算法: 使用的是标记-清除算法。特点: 串行执行&#xff0c;适用于单CPU环境或较小的堆内存配置。在新生代和老年代的回收中都是单线程执行&#xff0c;因此在进行垃圾回收时会暂停所有应用线程&#xff08;Stop-The-World&#xff09;。 Parallel GC (也称为吞吐量优…...

subprocess隐藏cmd窗口

process subprocess.Popen(command, shellTrue, stdoutsubprocess.PIPE, stderrsubprocess.PIPE,creationflagssubprocess.CREATE_NO_WINDOW) 添加参数即可不显示cmd运行窗口 creationflagssubprocess.CREATE_NO_WINDOW...

编程前端看什么书比较好:深入解析与推荐

编程前端看什么书比较好&#xff1a;深入解析与推荐 在编程前端的学习道路上&#xff0c;书籍无疑是我们最宝贵的财富。一本好的书籍&#xff0c;不仅可以提供系统的知识体系&#xff0c;还能引导我们深入探索技术的奥秘。然而&#xff0c;面对市面上琳琅满目的前端书籍&#…...

HarmonyOS(36) DevEco Studio 配置debug和release

在android开发中可以在build.gradle来配置realease和debug,在HarmonyOS中可以通过build-profile.json5文件中通过buildModeSet配置&#xff1a; 在DevEco Studio 中可以通过下面来选择运行debug还是release&#xff1a; 我们可以通过BuildProfile.ets里面的静态变量获取当前…...

PHP CGI Windows平台远程代码执行漏洞(CVE-2024-4577)复现

PHP语言在设计时忽略了Windows对字符编码转换的 Best-Fit 特性&#xff0c;导致未授权的攻击者可以通过特定字符串绕过 CVE-2012-1823 补丁&#xff0c;执行任意PHP代码&#xff0c;导致服务器失陷。 1.漏洞级别 高危 2.漏洞搜索 fofa: app"XAMPP"3.影响范围 P…...

WHAT - React 学习系列(二)

目录 一、官方介绍二、框架具体对比1. Next.js(Pages Router)2. Remix3. Gatsby4. Expo&#xff08;用于原生应用&#xff09;5. Next.js(App Router)Next.js App Router主要特性与 Pages Router 的对比 具体使用示例创建 App Router 项目目录结构示例示例代码 总结 这一篇主要…...

Java 反射机制 -- Java 语言反射的概述、核心类与高级应用

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 010 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…...

【Python入门与进阶】Jupyter Notebook配置与优化

目录 1.Jupyter Notebook简介 2.Jupyter Notebook的安装 2.1 命令行安装 2.2 可视化界面安装 3.Jupyter Notebook的使用 3.1 启动 Jupyter Notebook 3.2 Jupyter Notebook 界面介绍 3.3 创建新的 Notebook 3.4 编写和运行代码单元 3.5 使用 Markdown 编写文档 3.6 保…...

DataCap 自定义 File 转换器

DataCap 支持自定义 File 转换器&#xff0c;使用者可以编写自己的文件转换器集成到 DataCap 中。该文档主要讲解如何快速集成一个文件转换器到 DataCap 系统中。 该模块我们主要使用到的是 file 模块内的代码&#xff0c;我们本文使用 json 来做示例。 模块基本配置 新建项目…...

ARM32开发--IIC原理

知不足而奋进 望远山而前行 目录 文章目录 前言 目标 内容 I2C通讯规则 I2C写操作 I2C读流程 通讯信号 开始 结束 发送数据 bit发送 Byte发送 等待响应 接收数据 bit接收 Byte接收 发送响应 总结 前言 在现代消费电子和工业电子领域&#xff0c;各种类型的…...

列表、集合、字典的相关练习

1、使用列表推导式&#xff0c;输出1~100的所有素数 输入下面代码 # 定义一个辅助函数用来判断是否是素数 def is_prime(num):if num < 1:return Falsefor i in range(2, int(num**0.5) 1): #int函数将结果转换为整数&#xff0c;向下取整if num % i 0:return Falsere…...

填报志愿选大学专业,文科生如何选专业?

读文科的同学接触的专业知识相对广泛&#xff0c;往往被认为是“万金油”&#xff0c;他们仿佛什么都能做&#xff0c;但是和专业技能类知识不同&#xff0c;缺乏技术支持&#xff0c;从而使得文科专业的就业方向和前景远远比不上理科专业那么明朗&#xff0c;对于众多文科生而…...

如何实现跨域

如何实现跨域 当浏览器执行JS脚本时&#xff0c;会检测脚本要访问的协议&#xff0c;域名&#xff0c;端口号是不是和当前网址一致&#xff0c;不一致就是跨域。 跨域是不允许的&#xff0c;这种限制叫做浏览器的同源策略&#xff0c;简单就是浏览器不允许一个源加载脚本与其…...

从零开始利用树莓派+扬声器,实现简单的蓝牙音箱,手机连接放歌

背景 树莓派4B自带蓝牙和Wifi, 无需外接 USB dongle; 蓝牙最常见的应用是近距离传输数据,比如蓝牙传文件,蓝牙音箱等。正好家里有个普通的usb供电的便携音箱; 本文用树莓派蓝牙+普通音箱,实现简单的蓝牙音箱。 大致分为三个部分: kernel/driver层的ALSA驱动框架蓝牙音…...

今年的就业环境不容乐观,你想好怎么应对了吗

今年的就业环境不容乐观&#xff0c;你想好怎么应对了吗 毕业生进入职场的历程往往充满挑战和未知&#xff0c;尤其是在当前经济环境下&#xff0c;失业问题愈发凸显。本文通过分享几位年轻人的真实经历&#xff0c;剖析大学生及职场人士面临的困境&#xff0c;并提供应对策略…...

测试 halcon measure_projection 算子

期望结果完全相同&#xff0c;但是下面的测试结果和halcon的差值如下: [0.132838, 0.231991, 0.265157, 0.296903, 0.0998573, 0.165907, 0.230686, 0.130266, 0.0977104, 0.197109, 0.198173, 0.197086, 0.190943, 0.177665, 0.163521, 0.146541, 0.161362, 0.166666, 0.2281…...

网络安全岗位必须知道到:高性能抓取,多线程,异步逆向分析(Js逆向破解/APP逆向破解)反爬原理和解决方法,不然你的Python会有Bug

JS逆向破解和APP逆向破解以及反爬技术是网络安全和数据保护领域的重要话题。 遵循安全开发的最佳实践&#xff0c;包括输入验证、数据加密、权限管理等&#xff0c;以减少安全漏洞的出现。 坚决维护网络安全及开发安全&#xff0c;杜绝一切被爬&#xff0c;非法爬取数据的行为…...

lua网站开发中如何制作自定义模块

自定义模块是FastWeb框架的重要拓展功能&#xff0c;用来扩展和增强服务的能力。通过自定义模块&#xff0c;开发者可以轻松添加特定的功能和特性&#xff0c;使得网站开发更加灵活和高效。本文将演示如何添加自己的模块作为FastWeb的拓展&#xff0c;为框架的壮大与支持提供重…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文通过代码驱动的方式&#xff0c;系统讲解PyTorch核心概念和实战技巧&#xff0c;涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...