PHP 基础编程 2

news2024/11/27 17:48:12

文章目录

  • 时间函数
    • date
    • getdate
    • time
  • 使用数组实现登录注册和修改密码
    • 简单数组
      • 增加元素方法
      • 修改元素方法
      • 删除元素方法
    • 具体实现方法
      • 数组序列化
      • 数组写入文件
      • 判断元素是否在关联数组中(登录功能实现)
      • 实现注册功能
      • 实现修改admin用户密码功能

时间函数

时区:中国 东8区
php.ini 时区设置为:date.timezone = Asia/Shanghai
分号为注释
H = 小时 i = 分钟 s = 秒钟
Ymd = 年月日

date

<?php

//date  格式化一个本地时间/日期

//getdate getdate 是一个数组,取数组中的值

//time  返回当前的unix时间戳

header("Content-Type: text/html; charset=utf-8");

$a = date ("H:i:s");

$b = date ("Ymd");

echo $b;

echo "<br>";

echo $a;

getdate

getdate 是一个数组

header("Content-Type: text/html; charset=utf-8");

$a = date ("H:i:s");

$b = date ("Ymd");

$c = getdate ();

echo $b;

echo "<br>";

echo $a;

echo "<br>";

var_dump($c);
array(11) { ["seconds"]=> int(17) ["minutes"]=> int(37) ["hours"]=> int(11) ["mday"]=> int(4) ["wday"]=> int(4) ["mon"]=> int(1) ["year"]=> int(2024) ["yday"]=> int(3) ["weekday"]=> string(8) "Thursday" ["month"]=> string(7) "January" [0]=> int(1704339437) }

取数组的时间戳 [0]=> int(1704339437) ,有了时间戳就可以将时间数组读取出来

header("Content-Type: text/html; charset=utf-8");

$a = date ("H:i:s");

$b = date ("Ymd");

$c = getdate ();

echo $b;

echo "<br>";

echo $a;

echo "<br>";

var_dump($c);

echo $c['0'];

有了时间戳就可以随意输出你想要的时间,具体代码如下

header("Content-Type: text/html; charset=utf-8");

$a = date ("Ymd H:i:s",1704349737);

//$b = date ("Ymd",1704349737);

$c = getdate (1704349737);

  

echo $a;

echo "<br>";

echo $a;

echo "<br>";

var_dump($c);

echo "<br>";

echo $c['0'];

echo '<br>';

echo $c["year"].$c["mon"].$c["mday"]." ".$c["hours"].":".$c["minutes"].":".$c["seconds"];

time

time()函数返回当前的uinx时间戳

header("Content-Type: text/html; charset=utf-8");

$a = date ("Ymd H:i:s",1704349737);

//$b = date ("Ymd",1704349737);

$c = getdate (1704349737);

  

echo $a;

echo "<br>";

echo $a;

echo "<br>";

var_dump($c);

echo "<br>";

echo $c['0'];

echo '<br>';

echo $c["year"].$c["mon"].$c["mday"]." ".$c["hours"].":".$c["minutes"].":".$c["seconds"];

echo '<br>';

echo time();

使用数组实现登录注册和修改密码

数组函数的用途:1、增加一个元素 2、修改元素 3、删除元素

简单数组

<?php

header("Content-Type: text/html; charset=utf-8");

$a = array('鼠','牛','虎','龙','蛇');  

var_dump($a);

?>

增加元素方法

<?php

header("Content-Type: text/html; charset=utf-8");

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//关联数组

var_dump( $user );

$user['administrator'] = 'admin';//往数组里增加一个元素

echo "<br>";

var_dump( $user );

?>

修改元素方法

<?php

header("Content-Type: text/html; charset=utf-8");

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');

var_dump( $user );

$user['administrator'] = 'admin';//往数组里增加一个元素

echo "<br>";

var_dump( $user );

$user['administrator'] = 'admin123456';//修改元素

echo "<br>";

var_dump( $user );
?>

删除元素方法

header("Content-Type: text/html; charset=utf-8");

//$a = array('鼠','牛','虎','龙','蛇');  

//var_dump($a);

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');

var_dump( $user );

$user['administrator'] = 'admin';//往数组里增加一个元素

echo "<br>";

var_dump( $user );

$user['administrator'] = 'admin123456';//修改administrator 元素

echo "<br>";

var_dump( $user );

unset($user["administrator"]);//删除administrator 元素

echo "<br>";

var_dump( $user );

具体实现方法

数组序列化

数组不是字符串想写到文件里面需要序列化
序列化之后会返回一个字符串

serialize() //序列化函数
header("Content-Type: text/html; charset=utf-8");

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//数组

$a=serialize($user);//序列化数组$user

file_put_contents('userpassword.txt',$a);//将$a的数据写到userpassword.txt

数组写入文件

$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串

$b=unserialize($a);//反序列化,将字符串转为数组的过程

var_dump($b);

判断元素是否在关联数组中(登录功能实现)

前端代码

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <title>登录页面</title>

</head>

<body>

<form action="shuzu.php" method="get">

    用户名:<input  type="text" name="username">

    密码:<input   type="text" name="password">

    <input  type="submit">

</form>

</body>

</html>

后端代码

//需求 1、登录  2、注册  3、修改密码

header("Content-Type: text/html; charset=utf-8");

$u = $_GET["username"];

$p = $_GET["password"];

/*

//$a = array('鼠','牛','虎','龙','蛇');  

//var_dump($a);

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');

var_dump( $user );

$user['administrator'] = 'admin';//往数组里增加一个元素

echo "<br>";

var_dump( $user );

$user['administrator'] = 'admin123456';//修改administrator 元素

echo "<br>";

var_dump( $user );

unset($user["administrator"]);//删除administrator 元素

echo "<br>";

var_dump( $user );

*/

/*

header("Content-Type: text/html; charset=utf-8");

$user=array('admin'=>'123456','test'=>'123','root'=>'789456');//数组

$a=serialize($user);//序列化数组$user,将变量转换为字符串

file_put_contents('userpassword.txt',$a);//将$a的数据写到userpassword.txt

*/

$i=1;

$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串

$b=unserialize($a);//反序列化,将字符串转为数组的过程

//var_dump($b);

foreach($b as $key=>$value){    //循坏遍历关联数组$b

    if($u == $key && $p == $value){   //$u = $key  $p = $value

        $i=0;   //匹配成功将$i 设置为0 输出 "登录成功"

        echo "登录成功";

        break;

    }

}

if($i == 1){

    echo "登录失败";

}    //未匹配成功$i=1 输出 登录失败

实现注册功能

前端页面

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <title>注册</title>

</head>

<body>

<form action="register.php" method="POST">

    用户名:<input  type="text" name="username">

    密码: <input   type="text" name="password">

    确认密码:<input type="text" name="password1">

    <input  type="submit">

</form>

</body>

</html>

后端页面

//需求 1、登录  2、注册  3、修改密码

header("Content-Type: text/html; charset=utf-8");

$u = $_POST["username"];

$p = $_POST["password"];

$p1 = $_POST ["password1"];

  

if ($p != $p1) {  //如果$p 不等于 $p1 则退出代码执行

    echo "两次密码不一致";

    exit;

}

  

$a=file_get_contents("userpassword.txt");//读序列化后的文件,内容为字符串

$b=unserialize($a);//反序列化,将字符串转为数组的过程

//var_dump($b);

foreach($b as $key=>$value){    //循坏遍历关联数组$b

    if($u == $key ){   //$u = $key  

        echo "用户已存在"; //查找用户是否存在

        exit; //退出,代码不再执行

    }

} 

$b[$u]=$p; //添加用户元素

$c=serialize($b); //序列化

file_put_contents("userpassword.txt",$c);//写入文件

echo"注册成功";

实现修改admin用户密码功能

前端代码

<!DOCTYPE html>

<html lang="zh-CN">

<head>

    <meta charset="UTF-8">

    <title>改密码</title>

</head>

<body>

<h1>admin 修改密码</h1>

<form action="changepassword.php?username=admin" method="post">

    旧密码:<input  type="password" name="password">

    新密码:<input  type="password" name="password1">

    <input  type="submit">

</form>

</body>

</html>

后端代码

//需求 1、登录  2、注册  3、修改密码

header("Content-Type: text/html; charset=utf-8");

$u = $_GET["username"];

$p = $_POST["password"];

$p1 = $_POST["password1"];

  

if ($p != $p1) {  //如果$p 不等于 $p1 则退出代码执行

    echo "两次密码不一致";

    exit;

}

$i=1;

$a = file_get_contents("..\userpassword.txt");

$b = unserialize($a);

foreach($b as $key=>$value){    //循坏遍历关联数组$b

    if($u == $key ){   //$u = $key  

        $b[$u]=$p;

        $c=serialize($b); //序列化

        file_put_contents("..\userpassword.txt",$c);//写入文件

        echo"密码修改成功";

        break;

    }else{

        $i=0;

    }

}

if($i=0){

    echo"用户不存在";

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1357123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据情况下如何保证企业数据交换安全

数据交换是指在网络或其他方式下&#xff0c;不同主体按照规定的规则和标准实现数据的共享、传输和处理的过程。大数据时代的到来使得数据交换的重要性更为凸显&#xff0c;大数据带来了海量、多样、高速、低价值密度等特点&#xff0c;也带来了更多的价值挖掘和应用场景。 保障…

Spring常用注解及模拟用户登录流程示例

注解 Resource注解实现自动注入 (反射)代码块xml配置文件 Autowired注解实现自动化注入代码块xml配置文件 扫描器-四个注解Dao层-RepositoryService层-ServiceController层-Controller测试任意类-Component 常用注解示例-模拟用户登录配置自动扫描的xml文件实体类Userdao层消息…

Java异常简单介绍

文章目录 1. 异常分类和关键字1.1 分类1.2 关键字 2. Error2.1 Error定义2.2 常见的Error2.2.1 VirtualMachineError2.2.2 ThreadDeath2.2.3 LinkageError2.2.4 AssertionError2.2.5 InternalError2.2.6 OutOfMemoryError2.2.6.1 OOM原因2.2.6.2 OutOfMemoryError会导致宕机吗 …

【React系列】Hook(一)基本使用

本文来自#React系列教程&#xff1a;https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg5MDAzNzkwNA&actiongetalbum&album_id1566025152667107329) 一. 认识hook 1.1. 为什么需要hook Hook 是 React 16.8 的新增特性&#xff0c;它可以让我们在不编写class的情况下…

Java多线程技术10——线程池ThreadPoolExecutor之Executor接口

1 概述 在开发服务器软件项目时&#xff0c;经常需要处理执行时间很短并且数据巨大的请求&#xff0c;如果为每一个请求创建一个新的线程&#xff0c;则会导致性能上的瓶颈。因为JVM需要频繁地处理线程对象的创建和销毁&#xff0c;如果请求的执行时间很短&#xff0c;则有可能…

【linux】日志管理和分析

一、概述 在Linux系统的管理和运维中&#xff0c;日志文件起到至关重要的作用。它们记录了系统运行过程中的各种事件&#xff0c;包括系统故障、性能数据和安全事件。 二、 日志的作用和分类 日志的作用 日志文件记载了系统的生命线&#xff0c;利用它们可以&#xff1a; 1…

Linux第7步_设置虚拟机的电源

设置ubuntu代码下载源和关闭“自动检查更新”后&#xff0c;就要学习设置“虚拟机的电源”了。 用处不大&#xff0c;主要是了解”螺丝刀和扳手形状的图标“在哪里。 1、打开虚拟机&#xff0c;点击最右边的“下拉按钮”&#xff0c;弹出对话框&#xff0c;得到下图&#xff…

【算法】算法设计与分析 期末复习总结

第一章 算法概述 时间复杂度比大小&#xff0c;用代入法&#xff0c;代入2即可。求渐进表达式&#xff0c;就是求极限&#xff0c;以极限为O的括号&#xff1b;O是指上界&#xff0c;Ω是指下界&#xff0c;θ是指上下界相等&#xff0c;在这里&#xff0c;可以这样理解&#…

覆盖与交换-第四十二天

目录 内存空间的扩充 覆盖技术 实例 交换技术 思考 本节思维导图 内存空间的扩充 历史背景&#xff1a;早期计算机内存很小&#xff0c;内存大小不够的情况解决办法&#xff1a;后来人们引入了覆盖技术&#xff0c;用来解决“程序大小超过物理内存总合”的问题 覆盖技术…

Elasticsearch:Serarch tutorial - 使用 Python 进行搜索 (二)

这个是继上一篇文章 “Elasticsearch&#xff1a;Serarch tutorial - 使用 Python 进行搜索 &#xff08;一&#xff09;” 的续篇。在今天的文章中&#xff0c;我们接着来完成如何进行分页及过滤。 分页 - pagination 应用程序处理大量结果通常是不切实际的。 因此&#xff0…

【QT 5 +Linux下+录屏软件使用+总结说明+使用录屏软件+简单软件使用+SimpleScreenRecorder+操作说明】

【【QT 5 Linux下录屏使用录屏软件简单软件使用SimpleScreenRecorder操作说明】】 1、前言2、实验环境3、录屏软件综述SimpleScreenRecorder&#xff1a;Kazam&#xff1a;OBS Studio (Open Broadcaster Software)&#xff1a;VokoscreenNG&#xff1a;RecordMyDesktop&#xf…

Spring 面试题学习笔记整理

Spring 面试题学习笔记整理 Spring的理解IOC读取 xml注入 配置过程解析注解注入过程 高频 &#xff1a;IOC 理解 及原理 底层实现IoC的底层实现高频&#xff1a;Bean的生命周期&#xff08;图解&#xff09;高频&#xff1a;Bean的生命周期&#xff08;文解&#xff09;扩展知识…

如何使用Cloudreve+Cpolar搭建个人PHP云盘系统并发布公网可访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

【自学笔记】01Java基础-08Java常用API:String、ArrayList集合

记录学习Java基础中有关应用程序接口&#xff08;API&#xff09;的基础知识&#xff0c;包括两个常用类String和ArrayList类的介绍。 什么是API&#xff1f; API是Application Programming Interface&#xff08;应用程序编程接口&#xff09;的缩写&#xff0c;它是一组预先…

陪诊系统|北京陪诊小程序提升陪诊服务效果

随着科技的不断发展&#xff0c;人们对于医疗服务的需求也越来越高。在过去&#xff0c;陪诊师和陪诊公司通常需要通过电话或传真等传统方式与医院进行沟通和安排。然而&#xff0c;现在有了陪诊小程序&#xff0c;这些问题得到了解决。本文将介绍陪诊小程序的开发流程和功能&a…

Python 简单爬虫程序及其工作原理

前言 网络中包含大量的数据&#xff0c;这些数据对于我们来说是非常有价值的&#xff0c;因此编写一个爬虫程序&#xff0c;自动从网页中获取所需的数据&#xff0c;对于信息收集和分析是非常有帮助的。Python 是一种高效而灵活的编程语言&#xff0c;它提供了强大的库和框架来…

SpringBoot学习(三)-整合JDBC、Druid、MyBatis

注&#xff1a;此为笔者学习狂神说SpringBoot的笔记&#xff0c;其中包含个人的笔记和理解&#xff0c;仅做学习笔记之用&#xff0c;更多详细资讯请出门左拐B站&#xff1a;狂神说!!! 一、整合JDBC使用&#xff08;理解&#xff09; 创建项目 勾选依赖启动器 查看依赖 …

vue3 插槽 slot 使用

vue3 插槽 slot 使用 在 Vue3 中&#xff0c;插槽&#xff08;slot&#xff09;是一种重要的组件复用和内容分发机制。通过使用插槽&#xff0c;可以让组件更加灵活和具有可复用性&#xff0c;在不同的地方渲染不同的内容&#xff0c;同时保证相同的样式。 插槽资料 官网介绍&…

【uniapp】多规格选择

效果图 VUE <template> <view><view class"wp-80 pd-tb-40 mg-auto"><button type"warn" click"showDrawer(showRight)">筛选</button></view><!-- 筛选-uni-drawer --><uni-drawer ref"s…

tolist()读取Excel列数据,(Excel列数据去重后,重新保存到新的Excel里)

从Excel列数据去重后&#xff0c;重新保存到新的Excel里 import pandas as pd# 读取Excel文件 file r"D:\\pythonXangmu\\quchong\\quchong.xlsx" # 使用原始字符串以避免转义字符 df pd.read_excel(file, sheet_namenameSheet)# 删除重复值 df2 df.drop_duplica…