PHP-简单项目引起的大麻烦--【白嫖项目】
强撸项目系列总目录在000集
PHP要怎么学–【思维导图知识范围】
文章目录
- 本系列校训
- 本项目使用技术
- 首页
- 小插曲
- 小插曲完了么?
- 必要的项目知识
- PHP
- ThinkPHP
- ThinkPHP的MVC
- ThinkTemplate
- ThinkPHP 6和ThinkPHP 5
- phpStudy 设置
- 导数据库
- 展示页面
- 数据库表结构
- 项目目录如图:
- 代码部分:
- 连数据库
- 参考
- 配套资源
- 作业:
本系列校训
用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干!
别人项目要白嫖,网上就找范德彪!IT之路千千万,成功之法只一条!
----------白嫖别人都有理,那是洒家看得起,要是项目不咋地,天津包子狗不理!
本项目使用技术
| PHP无类 | PHP类写法 | ThinkPHP框架 | 其它框架 |
|---|---|---|---|
| * |
环境
| PHP版本 | mysql版本 | 运行工具 | 编辑工具 |
|---|---|---|---|
| 5.5.38+Apache | 5.5(phpstudy自带) | phpstudy2018 | phpStorm 2018 |
首页

注意:
如果上面出现警告代码的话,
直接修改php.ini 文件配置
php.ini
warning关闭的方法:首先找到并打开php.ini配置文件;然后修改内容为“display_errors=Off”;最后保存修改即可。
修改了代码,就没有烦人的警告信息了。
小插曲
昨天拿到一个PHP的项目,他的数据库是这样的。


这种方式是什么样的呢?说起来也不难。
就是把这个文件夹直接放到mysql 的data目录下,然后重新启动mysql 就可以了!!!!
真的可以?
这里就涉及到一个mysql 版本的兼容的问题,一个数据库大家都会遵循sql92 的这样一个标准。但是文件格式这种问题能不能兼容就不好说了。
然后,我就自以为自己是无敌的。

安装了老版的mysql 服务的嘛。
然后,事情就杯具了。应该说也确实是导进了导来的数据库,但是弄着弄着,两边的数据库都不能访问,具体的现象就是。
老的mysql 有服务,navicat 也能访问。(重置了root密码)
但是PHP访问不了。(这说明了新版的PHP不一定无条件连接老的不知版本的mysql )
然后,把phpstudy 的mysql 改个端口 启动吧?
启动不了了。
很显然。两个mysql 冲突了。找到一个mysql 的卸载的文章
超详细卸载mysql教程(按照步骤可完全卸载) 更新时间:2023年03月23日 09:45:40 作者:码云铁粉
这mysql和vmware一样不卸载干净问题是真的多,搞得有些朋友都想重装系统了,没事我来说一下mysql如何卸载干净,下面这篇文章主要给大家介绍了关于超详细卸载mysql的教程,只要按照步骤可完全卸载,需要的朋友可以参考下
右击【计算机】,选择【管理】,打开“计算机管理”界面
选择【服务和应用程序】中的【服务】,在右侧找到【mysql】,右键,选择【停止】
步骤2:卸载mysql软件
可以在控制面板中卸载,把mysql相关的全部卸载掉,mysql安装包也卸载掉,一会安装的时候重新下载安装包就行
1、卸载过后删除C:\Program Files (x86)\MySQL该目录下剩余了所有文件,把mysql文件夹也删了
2、删除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL文件夹,如果没有可以不用删除了。
3、删除C盘下的C:\ProgramData\MySQL 所有文件,如果删除不了则用360粉碎掉即可,该programData文件是隐藏的默认,设置显示后即可见
4、关键!!!!删除C:\Documents and Settings\All Users\Application Data\MySQL下的文件夹,一定要删,你可以直接复制粘贴,就会看到这个文件夹
5注:这步是最繁琐的也是最为关键的,很多人就是因为在这步骤中没有清理干净注册表信息,从而不能重新安装成功。
1、windows+R运行“regedit”文件,打开注册表
2、删除注册表:HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL文件夹,按照这个路径一个一个打开
这样就可以重新安装MySQL软件了! 篇二:
彻底删除mysql方法
1、首先,先在服务(开始——>控制面板——>管理工具——>服务)里停掉MySQL的服务。打开控制面板-添加删除程序,找到MySQL,卸载。或者用360安全卫士来卸载也行。也可以用mysql的那个安装程序删除
2、把安装好的MYSQL卸载了,但这对于卸载MySQL来说这只是一半,还有重要的另一半是要清理注册表。我们要进入注册表在开始-运行里面输入regedit,打开注册表
3、 找到关于MYSQL的项把他们都删除,要一个项一个项的查找把他们都删除,这样在安装的时候就可以了。其实注册表里MySQL的项就是这三项:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL
4、还有就是C:/WINDOWS 下的my.ini文件也删除!
这样,把上面的四项删除了之后,MySQL就基本卸载完全了。如果你还不放心的话,可以在C盘查找mysql,把相关的项都删除。
SQL92标准概述
SQL(Structured Query Language)结构化查询语言是用于管理关系型数据库的语言,它包含了数据定义、数据操纵和数据查询三个方面。SQL92是美国国家标准协会(ANSI)和国际标准化组织(ISO)于1992年制定的SQL标准,是SQL语言第二代标准。SQL92标准已经成为了关系型数据库的通用标准,几乎所有主要的关系型数据库都实现了该标准。
SQL92标准中定义了一系列的规范,包括数据类型、运算符、函数、存储过程、触发器、视图等各种方面。SQL92标准的主要目的是定义一个基本的SQL操作语言,它大大简化了对于应用程序开发人员查询和编写SQL的难度。
二、SQL92标准的主要特性
SQL92标准包含了许多重要的特性,以下是其中的一些:
1、支持基于关系模型的数据存储和查询
SQL92标准支持基于关系模型的数据存储和查询,这种数据模型是由独立的表和表之间的关系组成的。应用程序可以通过SQL语句添加、删除、修改和查询表中的数据。
2、标准化的SQL语法
SQL92标准定义了一种标准化的SQL语法,这使得不同数据库管理系统之间的SQL查询语句具有通用性,大大增强了数据的可移植性。在SQL92标准中,任何符合标准的SQL查询语句都可以在任何符合标准的数据库管理系统上执行。
3、支持事务处理
SQL92标准支持事务处理,事务是指一组关联的数据库操作,这些操作要么全部成功,要么全部失败。通过事务处理,可以确保数据库在执行任何关键操作时保持一致性、可靠性和安全性。
4、支持数据完整性约束
SQL92标准支持数据完整性约束,它们可以强制执行在某些条件下对数据库的更改,从而保证数据库的完整性和准确性。这些约束可以定义在特定的列、表、数据库或者整个数据库上,例如唯一性、非空性、外键等。
小插曲完了么?
当我把这些折腾完了,又重安了phpstudy2008的尝试之后,我就想,为什么mysql 没有一个自己删掉自己的服务的程序?按理说不应该呀


然后,感觉脸上真的阵阵发烧,以前的工具写的这么的贴心。

而phpstudy2018 的广告说的那么有利于初学者,但是,运行模式。启动不了的时候,什么错都不会报,更加不会的帮我把之前的mysql 注册表的垃圾清掉。同样的就是上面的这几个注册表项,就windows下的my.ini 。做的贴不贴心。真的是…
必要的项目知识
PHP
PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 [1-2]PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
PHP是一个拥有众多开发者的开源软件项目,最开始是Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。PHP是在1994年由Rasmus Lerdorf创建的 [30],最初只是一个简单的用Perl语言编写的统计他自己网站访问者数量的程序。后来重新用C语言编写,同时可以访问数据库,1995年,PHP(Personal Home Page Tools)对外发表第一个版本PHP1。此后,越来越多的网站开始使用PHP,并且强烈要求增加一些特性,如循环语句和数组变量等,1995年发布的PHP2加入了对mySQL的支持。
PHP语言作为一种高级语言,其特点是开源, 在设计体系上属于C语言体系,它可以让很多接受过高等教育的初学者能很快接受并完成入门学习,简单好上手容易找工作自然粉丝多。如果数据量大及访问压力大,可以集成redis、mysql分表分区分库、elasticsearch搜索引擎、消息队列写保护和php系统分布式集群部署等技术方案,缓解数据存储、服务访问和数据检索带来的巨大压力。
无论是大中小型项目,PHP都是一个十分适合的高级编程语言,是否适合就看项目研发团队的对它的掌握程度。 但是对于较大的和更为复杂的项目,最常见的php-fpm编程模式就显出它的薄弱了。针对PHP-fpm暴露出的一系列缺点问题,最简单靠谱的方案就是及时升级兼容PHP的高版本,PHP7.0.0 [14]对比PHP5.6性能提升了2倍,另外PHP7.4提供的Preloading预加载机制 [11]实现了部分程序常驻内存,获取了不错的性能提升,在PHP8又提供了高效的JIT (Just-In-Time即时编译) [12]运算支持。另外水平更高的开发者可以转向难度更高的php-cli编程,它能解决大部分的系统性能问题,无论是PHP7和PHP8都支持这种模式的编程。
性能提升
PHP版本越高它的整体性能越高,根据官方介绍,PHP7.0.0
[14]对比PHP5.6性能就提升了2倍,PHP7.4已经比PHP7.0快了约30%,PHP8.0在性能上又相对PHP7.4大约改进了10%。PHP
8.0 引入了 JIT编译器特性,同时加入多种新的语言功能,例如命名参数、联合类型、注解、Constructor Property Promotion、match 表达式、nullsafe
运算符以及对类型系统、错误处理和一致性的改进。PHP拥有自己的核心开发团队,保持5年发布一个大版本、1个月发布2个小版本的频率,最新的版本是PHP8.08
[15]。PHP 7.0.0 [16]发布于2015-12-03,此版本下最新版本是PHP 7.4.21
[18](发布日期:2021-07-01),PHP 8.0.0 [17]发布于2020-11-26,此版本下最新版本是PHP
8.0.8(发布日期:2021-07-01)。
ThinkPHP
ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
前面略
2015年12月11日,ThinkPHP 5.0 Beta 发布;
2017年02月27日,Thinkphp5.0.5完整版正式发布 [3] ;
2018年05月02日,Thinkphp5.1.0RC版本发布; [4]
2019年04月22日,Thinkphp6.0RC2版本发布 [5] ;
2019年08月16日,Thinkphp6.0RC4版本发布 [6] ;
2019年12月24日,Thinkphp6.0.1版本发布 [7] ;
ThinkPHP的MVC
简单易用
模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。
ThinkTemplate
ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:
1)支持XML标签库和普通标签的混合定义;
2)编译一次,下次直接运行而无需重新编译;
3)模板文件更新后,自动更新模板缓存;
4)自动加载当前操作的模板缓存文件,无需指定模板文件名称;
5)支持编码转换和Content-Type更换;
6)模板变量输出前缀支持,避免变量名称冲突;
7)模板常量替换,无需设置模板变量;
8)支持变量组合调节器和格式化功能;
9)支持替换其它模板引擎插件使用;
10)支持获取模板页面内容。
ThinkPHP 6和ThinkPHP 5
ThinkPHP 6和ThinkPHP 5相比,有以下几个主要的变化和改进:
- 更好的性能:ThinkPHP 6采用了更加高效的底层框架,具有更好的性能和更高的并发能力。同时,ThinkPHP 6还采用了协程技术,可以更加高效地处理大量的请求。
- 更加简洁的代码:ThinkPHP 6引入了更加简洁的语法,可以让开发者更加轻松地编写代码。同时,ThinkPHP 6还支持更加优雅的链式操作,可以让代码更加简洁易读。
- 更加灵活的路由:ThinkPHP 6的路由系统更加灵活,可以支持更加丰富的路由规则和参数配置。同时,ThinkPHP 6还支持自动路由,可以让开发者更加方便地进行路由配置。
- 更加方便的模板引擎:ThinkPHP 6采用了更加方便的模板引擎,可以让开发者更加轻松地编写模板。同时,ThinkPHP 6还支持模板布局和模板继承,可以让开发者更加方便地进行模板设计。
- 更加完善的文档:ThinkPHP 6的文档更加完善,包含了更加详细的API文档和使用说明,可以让开发者更加容易上手和使用。
总之,ThinkPHP 6相比ThinkPHP 5有了很多的改进和优化,可以让开发者更加高效地进行开发。同时,ThinkPHP 6还保持了ThinkPHP 5的优点,如优秀的扩展性和丰富的功能模块,可以满足各种不同的业务需求。

对比一下springBoot
MVC (SpringMVC)OM (mybatis)前面页面框架(Thymeleaf)

点击右上角登陆 注册帐号:可以使用用户: user1/密码:123456
phpStudy 设置
网站目录,不能有中文或空格,就乖乖的用C语言能识别的变量名

导数据库
打开mysql-front 或navicat
注意:数据库名:stu_score 超级用户:root 密码:123456
运行本例附件即可。最后导入数据库成功的截图如下:

因为我把原来的库转换了,所以当然还是像以前的一样简单了。
展示页面
页面太简单了。本来想加个相册一类的软件加工一下,然后发现电脑上没有。来个美图秀秀好了,原来的太丑了。不过好象是学生的作业都有这种趋势。


数据库表结构

项目目录如图:

代码部分:
连数据库
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_jc = "localhost";
$database_jc = "stu_score";
$username_jc = "root";
$password_jc = "123456";
$jc = mysql_pconnect($hostname_jc, $username_jc, $password_jc) or trigger_error(mysql_error(),E_USER_ERROR);
?>
这里有一个进入前面的
<?php require_once('Connections/jc.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);switch ($theType) {case "text":$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";break; case "long":case "int":$theValue = ($theValue != "") ? intval($theValue) : "NULL";break;case "double":$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";break;case "date":$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";break;case "defined":$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;break;}return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {session_start();
}$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}if (isset($_POST['username'])) {$loginUsername=$_POST['username'];$password=$_POST['password'];$MM_fldUserAuthorization = "";$MM_redirectLoginSuccess = "xueshen.php";$MM_redirectLoginFailed = "index.php";$MM_redirecttoReferrer = false;mysql_select_db($database_jc, $jc);$LoginRS__query=sprintf("SELECT xuehao, password FROM xuesheng WHERE xuehao=%s AND password=%s",GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); $LoginRS = mysql_query($LoginRS__query, $jc) or die(mysql_error());$loginFoundUser = mysql_num_rows($LoginRS);if ($loginFoundUser) {$loginStrGroup = "";//declare two session variables and assign them$_SESSION['MM_Username'] = $loginUsername;$_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) {$MM_redirectLoginSuccess = $_SESSION['PrevUrl']; }header("Location: " . $MM_redirectLoginSuccess );}else {header("Location: ". $MM_redirectLoginFailed );}
}
?>
<html><head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/style.css" rel="stylesheet">
<title>PHP学生成绩查询系统</title>
<script language="JavaScript">
<!--function Juge(theForm)
{if (theForm.username.value == ""){alert("请输入您的注册名!");theForm.username.focus();return (false);}if (theForm.password.value == ""){alert("请输入您的密码!");theForm.password.focus();return (false);}
}function MM_jumpMenu(targ,selObj,restore){ //v3.0eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head><body bgcolor=#21415a><p> </p>
<p> </p>
<p align="center">
<img border="0" src="img/index.jpg" width="568" height="252"></p>
<form action="<?php echo $loginFormAction; ?>" name="theform" method="POST" onSubmit="return Juge(this)">
<div align="center"><center>
<table border="0" width="568" bgcolor=#21415a style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0"><tr><td width="100%" style="font-size: 12px"><p style="margin-top: 0; margin-bottom: 0" align="center"><font color="#FFFFFF">身份登陆:</font><select name="select" id="select" onChange="MM_jumpMenu('parent',this,0)"><option value="index.php" selected>学生</option><option value="gindex.php">管理员</option></select></p><p style="margin-top: 0; margin-bottom: 0" align="center"></p><table border="0" width="333" bgcolor=#21415a align=center height="72"><tr><TD width="125" style="font-size: 12px" height="17"> <font color="#FFFFFF"> 学 <font color="#FFFFFF"> 号</font>:</font> </TD> <TD width="194" style="font-size: 12px" height="17"> <input type="text" name="username" size="17" class="text" onBlur="this.className='text'" onFocus="this.className='textedit';this.select()"> </TD> </tr> <tr> <TD width="125" style="font-size: 12px" height="13"> <font color="#FFFFFF">密 码: </font> </TD> <TD width="194" style="font-size: 12px" height="13"> <INPUT type=password maxLength=20 name=password size="17" class="text" onBlur="this.className='text'" onFocus="this.className='textedit';this.select()"> </TD> </tr> <tr> <TD align=middle colSpan=2 width="325" style="font-size: 12px" height="30"> <p align="center" style="margin-top: 0; margin-bottom: 0"> </p> <p align="center" style="margin-top: 0; margin-bottom: 0"> <INPUT type=submit value=" 登 录 " name=login class="buttonface"> <INPUT type=reset value=" 清 除 " name=qingchu class="buttonface"> </p> </TD> </tr> </table> </td> </tr>
</table> </center>
</div>
</form>
</body></html>
主页
<?php require_once('Connections/jc.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);switch ($theType) {case "text":$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";break; case "long":case "int":$theValue = ($theValue != "") ? intval($theValue) : "NULL";break;case "double":$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";break;case "date":$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";break;case "defined":$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;break;}return $theValue;
}
}
?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {session_start();
}$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}if (isset($_POST['username'])) {$loginUsername=$_POST['username'];$password=$_POST['password'];$MM_fldUserAuthorization = "";$MM_redirectLoginSuccess = "admin.php";$MM_redirectLoginFailed = "gindex.php";$MM_redirecttoReferrer = false;mysql_select_db($database_jc, $jc);$LoginRS__query=sprintf("SELECT username, password FROM `admin` WHERE username=%s AND password=%s",GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); $LoginRS = mysql_query($LoginRS__query, $jc) or die(mysql_error());$loginFoundUser = mysql_num_rows($LoginRS);if ($loginFoundUser) {$loginStrGroup = "";//declare two session variables and assign them$_SESSION['MM_Username'] = $loginUsername;$_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) {$MM_redirectLoginSuccess = $_SESSION['PrevUrl']; }header("Location: " . $MM_redirectLoginSuccess );}else {header("Location: ". $MM_redirectLoginFailed );}
}
?>
<html><head>
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="css/style.css" rel="stylesheet">
<title>PHP学生成绩查询系统</title>
<script language="JavaScript">
// <!--
// <!--
//
// function Juge(theForm)
// {
// if (theForm.username.value == "")
// {
// alert("请输入您的注册名!");
// theForm.username.focus();
// return (false);
// }
// if (theForm.password.value == "")
// {
// alert("请输入您的密码!");
// theForm.password.focus();
// return (false);
// }
// }
//
// function MM_jumpMenu(targ,selObj,restore){ //v3.0
// eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
// if (restore) selObj.selectedIndex=0;
// }
// //-->
</script>
</head><body bgcolor=#21415a><p> </p>
<p> </p>
<p align="center">
<img border="0" src="img/index.jpg" width="568" height="252"></p>
<form action="<?php echo $loginFormAction; ?>" name="theform" method="POST" onSubmit="return Juge(this)">
<div align="center"><center>
<table border="0" width="568" bgcolor=#21415a style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0"><tr><td width="100%" style="font-size: 12px"><p style="margin-top: 0; margin-bottom: 0" align="center"><font color="#FFFFFF">身份登陆:</font><select name="select" id="select" onChange="MM_jumpMenu('parent',this,0)"><option value="index.php">学生</option><option value="gindex.php" selected>管理员</option></select></p><p style="margin-top: 0; margin-bottom: 0" align="center"></p><table border="0" width="333" bgcolor=#21415a align=center height="72"><tr><TD width="125" style="font-size: 12px" height="17"> <font color="#FFFFFF">用 户 名:</font> </TD> <TD width="194" style="font-size: 12px" height="17"> <input type="text" name="username" size="17" class="text" onBlur="this.className='text'" onFocus="this.className='textedit';this.select()"> </TD> </tr> <tr> <TD width="125" style="font-size: 12px" height="13"> <font color="#FFFFFF">密 码: </font> </TD> <TD width="194" style="font-size: 12px" height="13"> <INPUT type=password maxLength=20 name=password size="17" class="text" onBlur="this.className='text'" onFocus="this.className='textedit';this.select()"> </TD> </tr> <tr> <TD align=middle colSpan=2 width="325" style="font-size: 12px" height="30"> <p align="center" style="margin-top: 0; margin-bottom: 0"> </p> <p align="center" style="margin-top: 0; margin-bottom: 0"> <INPUT type=submit value=" 登 录 " name=login class="buttonface"> <INPUT type=reset value=" 清 除 " name=qingchu class="buttonface"> </p> </TD> </tr> </table> </td> </tr>
</table> </center>
</div>
</form>
</body></html>
其它的页面自己下载资源包好了
参考
基于jsp的塞北村镇旅游网站的设计与实现–【毕业论文】
https://blog.csdn.net/dearmite/article/details/131962993
配套资源
PHP-简单项目引起的大麻烦–【白嫖项目】
https://download.csdn.net/download/dearmite/88157505
作业:
把项目搭建起来,完成其它自己想到的功能。学PHP就是要任性,随心所欲。
只有魔法才能打败魔法!

相关文章:
PHP-简单项目引起的大麻烦--【白嫖项目】
强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页小插曲小插曲完了么?必要的项目知识PHPThinkPHPThinkPHP的MVCThinkTemplateThinkPHP 6和ThinkPHP 5 phpStudy 设置导数据库展示页面数据库表结构项目目录如图…...
Excel如何把两列互换
第一步:选择一列 打开excel,选中一列后将鼠标放在列后,让箭头变成十字方向。 第二步:选择Shift键 按住键盘上的Shift键,将列往后移动变成图示样。 第三步:选择互换 完成上述操作后,松开鼠标两…...
Java基础面试题2
Java基础面试题 一、IO和多线程专题 1.介绍下进程和线程的关系 进程:一个独立的正在执行的程序 线程:一个进程的最基本的执行单位,执行路径 多进程:在操作系统中,同时运行多个程序 多进程的好处:可以充…...
Typescript 第八章 异步编程,并行和并发(JavaScript事件循环,异步流,多线程类型安全)
Typescript第八章 异步编程,并发和并行 异步API,比如说回调,promise和流。 JavaScript引擎在一个线路中多路复用任务,而其他任务则处于空闲状态。这种事件循环是JavaScript引擎的标准线程模型。 多路复用是指在一个线程中同时处…...
c++ 打印当前时间(精确到毫秒)
打印时间精确到毫秒好实现,但是那种对用户可读性不好,更适合开头记一次结尾记一次,打印中间减出来的程序运行时间。 但是因为一些情况,我开多线程开的不方便打印结束时间,同事跟我说那你把开始时间打印一下࿰…...
mapstruct 错误 java.lang.NoSuchMethodError: Ljava/lang/Double 错误
问题描述 在使用 mapstruct 的过程中遇到错误 java.lang.NoSuchMethodError: Ljava/lang/Double 错误 问题解决 maven clean, 然后 maven install Build -> Rebuild Project 执行 maven install 时, 如果报错 找不到 xxx 类, 但 ctrl鼠标左键 发现可以点进去这个类, 那…...
SpringBoot+AOP+Redission实战分布式锁
文章目录 前言一、Redission是什么?二、使用场景三、代码实战1.项目结构2.类图3.maven依赖4.yml5.config6.annotation7.aop8.model9.service 四、单元测试总结 前言 在集群环境下非单体应用存在的问题:JVM锁只能控制本地资源的访问,无法控制…...
Linux系统---进程概念
文章目录 冯诺依曼体系结构操作系统(OS)进程的理解 进程状态 进程优先级 环境变量 进程地址空间 Linux2.6内核进程调度队列 一、冯诺依曼体系结构 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 如图…...
ELK常用语法和线上问题排查
ELK常用语法及线上问题排查 速查问题 1.全文搜索 在搜索栏输入目标值,查询所有字段中包含该值的文档 案例:用户反馈了一串id或者其他同事给了一个jobid,还没有头绪怎么查的时候,直接全局搜索 jobid 2.字段 限定字段全文搜索…...
session-cookies 三个缓存 localStorage、sessionStorage、Cookies。
session-cookies session-cookies This plugin is used to summarize the browser’s three caches localStorage, sessionStorage, Cookies.The plugin is designed to be quick and easy to use. Below is a summary of some apis. session-cookies 这个插件是用来汇总浏览…...
LA@行列式性质
文章目录 行列式性质🎈转置不变性质交换性质多重交换移动(抽出插入)👺 因子提取性质拆和性质倍加性质 手算行列式的主要方法原理:任何行列式都可以化为三角行列式 行列式性质🎈 设行列式 ∣ A ∣ d e t ( a i j ) |A|\mathrm{det}(a_{ij}) …...
【java安全】原生反序列化利用链JDK7u21
文章目录 【java安全】原生反序列化利用链JDK7u21前言原理equalsImpl()如何调用equalsImpl()?HashSet通过反序列化间接执行equals()方法如何使hash相等? 思路整理POCGadget为什么在HashSet#add()前要将HashMap的value设为其他值? 【java安全】…...
[SQL智慧航行者] - SQL刷题规划
前言: 不知不觉, 慢慢的把一些基础知识整理到了现在. SQL挖掘机系列可能就要到此结束了. 目前是规划把这部分SQL练习部分放到SQL刷题的专栏, 就不放到SQL专栏了. 因为后续如果接触更多的知识点和题目也好分类. 请大家如果关注的话, 想看SQL知识点 --> SQL专栏; 想看SQL刷…...
概率论与数理统计:第一章:随机事件及其概率
文章目录 概率论Ch1. 随机事件及其概率1.基本概念(1)随机试验、随机事件、样本空间(2)事件的关系和运算①定义:互斥(互不相容)、对立②运算法则:德摩根率 (3)概率的定义(4)概率的性质(5)概率计算排列组合 2.等可能概型1.古典概型 (离散)2.几何概型 (连续…...
elementUi重置Select选择器样式、option、deep、vue3、plus
文章目录 前言select选框样式(element-plus)option选项面板样式(element-plus) 前言 样式标签属性为<style scoped lang"scss"></style> select选框样式(element-plus) // 设置选择框的背景样式 ::v-deep .el-input__wrapper {background: transparent;b…...
jar命令的安装与使用
场景: 项目中经常遇到使用WinR软件替换jar包中的文件,有时候存在WinRAR解压替换时提示没有权限,此时winRAR不能用还有有什么方法替换jar包中的文件。 方法: 使用jar命令进行修改替换 问题: 执行jar命令报错jar 不…...
windows系统多线程多进程下应用函数CloseHandle的一些细节
Windows CloseHandle()函数调用之后,对应的内核对象的句柄计数器减去1。如果此内核对象的句柄的计数器计数变为0,系统会回收此内核对象。所以,如果创建了内核对象(例如可调用了CreateThread创建一个线程内核对象。此对象创建成功后此线程内核…...
微服务——elasticsearch
初识ES——什么是elasticsearch elasticsearch的发展 初识ES——正向索引和倒排索引 初识ES——es与mysql的概念对比 类比到mysql中是表结构约束 概念对比 初始ES——安装es和kibana 1.部署单点es 1.1创建网络 要安装es容器和kibana容器并让他们之间相连,这里…...
paddlenlp:社交网络中多模态虚假媒体内容核查
初赛之环境配置篇 一、背景二、任务三、数据集1、初赛阶段2、评分标准 四、环境操作五、写在最后 一、背景 随着新媒体时代信息媒介的多元化发展,各种内容大量活跃在媒体内中,与此同时各类虚假信息也充斥着社交媒体,影响着公众的判断和决策。…...
Centos系统有哪些特点呢
CentOS 是一个基于 Red Hat Enterprise Linux (RHEL) 的免费的开源操作系统,由 CentOS 项目维护。CentOS 项目是一个社区驱动的项目,旨在为用户提供一个稳定的、可扩展的 Linux 发行版。 CentOS 系统具有以下特点: 稳定性:CentOS 系统非常稳定,即使是在高负载的环境下也是如此…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...


