PHP-简单项目引起的大麻烦--【白嫖项目】

强撸项目系列总目录在000集

PHP要怎么学–【思维导图知识范围】

文章目录

    • 本系列校训
    • 本项目使用技术
  • 首页
    • 小插曲
    • 小插曲完了么?
    • 必要的项目知识
      • PHP
      • ThinkPHP
      • ThinkPHP的MVC
      • ThinkTemplate
      • ThinkPHP 6和ThinkPHP 5
  • phpStudy 设置
  • 导数据库
  • 展示页面
  • 数据库表结构
  • 项目目录如图:
  • 代码部分:
    • 连数据库
  • 参考
  • 配套资源
  • 作业:

本系列校训

用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干!
别人项目要白嫖,网上就找范德彪!IT之路千千万,成功之法只一条!
----------白嫖别人都有理,那是洒家看得起,要是项目不咋地,天津包子狗不理!

本项目使用技术

PHP无类PHP类写法ThinkPHP框架其它框架
*

环境

PHP版本mysql版本运行工具编辑工具
5.5.38+Apache5.5(phpstudy自带)phpstudy2018phpStorm 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相比,有以下几个主要的变化和改进:

  1. 更好的性能:ThinkPHP 6采用了更加高效的底层框架,具有更好的性能和更高的并发能力。同时,ThinkPHP 6还采用了协程技术,可以更加高效地处理大量的请求。
  2. 更加简洁的代码:ThinkPHP 6引入了更加简洁的语法,可以让开发者更加轻松地编写代码。同时,ThinkPHP 6还支持更加优雅的链式操作,可以让代码更加简洁易读。
  3. 更加灵活的路由:ThinkPHP 6的路由系统更加灵活,可以支持更加丰富的路由规则和参数配置。同时,ThinkPHP 6还支持自动路由,可以让开发者更加方便地进行路由配置。
  4. 更加方便的模板引擎:ThinkPHP 6采用了更加方便的模板引擎,可以让开发者更加轻松地编写模板。同时,ThinkPHP 6还支持模板布局和模板继承,可以让开发者更加方便地进行模板设计。
  5. 更加完善的文档: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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#FFFFFF"><font color="#FFFFFF">&nbsp;&nbsp;&nbsp;</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#FFFFFF">&nbsp;&nbsp;&nbsp;&nbsp;码: </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"> &nbsp;&nbsp; <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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#FFFFFF">用&nbsp;户&nbsp;名:</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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color="#FFFFFF">密&nbsp;&nbsp;&nbsp;&nbsp;码: </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"> &nbsp;&nbsp; <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就是要任性,随心所欲。
只有魔法才能打败魔法!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java on Azure Tooling 6月更新|标准消费和专用计划及本地存储账户(Azurite)支持

作者&#xff1a;Jialuo Gan - Program Manager, Developer Division at Microsoft 排版&#xff1a;Alan Wang 大家好&#xff0c;欢迎阅读 Java on Azure 工具的六月更新。在本次更新中&#xff0c;我们将介绍 Azure Spring Apps 标准消费和专用计划支持以及本地存储账户&…

后端进阶之路——万字总结Spring Security与数据库集成实践(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ 解决算法&#xff0c;一个专栏就够了★ ★ 架…

【Excel】记录Match和Index函数的用法

最近一直用到的两个处理EXCEL表格数据的函数向大家介绍一下&#xff0c;写这篇博文的目的也是为了记录免得自己忘记了&#xff0c;嘻嘻。 先上百度的链接 Match函数的用法介绍&#xff1a;https://jingyan.baidu.com/article/2fb0ba40b4933941f3ec5f71.html 小结&#xff1a;…

Sql server 2005 卸载之后重新安装

Sql server 2005 卸载之后重新安装 Sql sercer 2005在重新安装之前先要进行卸载操作&#xff0c;由于Sql sercer 2005组件都是分散的&#xff0c;所以卸载时要找到对应的位置一个一个卸载&#xff0c;不卸载干净的情况下再次安装时会出现很多问题&#xff0c;导致安装失败。这…

【前瞻】视频技术的发展趋势讨论以及应用场景

视频技术的发展可以追溯到19世纪初期的早期实验。到20世纪初期&#xff0c;电视技术的发明和普及促进了视频技术的进一步发展。 1&#xff09;数字化&#xff1a;数字化技术的发明和发展使得视频技术更加先进。数字电视信号具有更高的清晰度和更大的带宽&#xff0c;可以更快地…

Qt--动态链接库的创建和使用

写在前面 在Qt的实际开发中&#xff0c;免不了使用和创建动态链接库&#xff0c;因此熟悉Qt中动态链接库的创建和使用对后续的库开发或使用是非常用必要的。 在之前的文章https://blog.csdn.net/SNAKEpc12138/article/details/126189926?spm1001.2014.3001.5501中已经对导入…

【有趣的设计模式】23 种设计模式详解和场景分析

前言 七大设计原则 1、单一原则&#xff1a;一个类只负责一个职责 2、开闭原则&#xff1a;对修改关闭&#xff0c;对扩展开放 3、里氏替换原则&#xff1a;不要破坏继承关系 4、接口隔离原则&#xff1a;暴露最小接口&#xff0c;避免接口过于臃肿 5、依赖倒置原则&#xff1…

高级web前端开发工程师的职责说明(合集)

高级web前端开发工程师的职责说明1 职责&#xff1a; 1、根据需求文档&#xff0c;完成PC端、移动端页面及交互的开发&#xff0c;并保证兼容性和确保产品具有优质的用户体验; 2、熟练使用 HTML 、 CSS 、 JS 、 Ajax 等技术&#xff0c;能解决各种浏览器兼容性问题&#xff…

[回馈]ASP.NET Core MVC开发实战之商城系统(五)

经过一段时间的准备&#xff0c;新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始&#xff0c;在之前的文章中&#xff0c;讲解了商城系统的整体功能设计&#xff0c;页面布局设计&#xff0c;环境搭建&#xff0c;系统配置&#xff0c;及首页【商品类型&#xff0c;ba…

orangepi 4lts ubuntu安装RabbitMQ

4lts的emmc 系统安装选文件系统格式 ext4 需先安装erlang&#xff1a; sudo apt install erlang 安装RabbitMQ: sudo apt install rabbitmq-server - 添加用户以便远程访问&#xff1a; - 账号密码都是admin: sudo rabbitmqctl add_user admin admin -sudo rabbitmqct…

使用爬虫代理IP速度慢是什么原因?

你们有没有遇到过使用爬虫代理IP速度慢的问题呢&#xff1f;相信很多使用爬虫抓取的人都曾经陷入过这个烦恼&#xff0c;今天我们就来聊聊这个话题。 首先&#xff0c;我们得明白为什么爬虫代理IP速度会变得慢。其实&#xff0c;原因有很多&#xff0c;比如代理服务器过多的连接…

auto-changelog的简单使用

auto-changelog的简单使用 自动化生成Git提交记录&#xff0c;CHANGELOG.md文件 github&#xff1a;https://github.com/cookpete/auto-changelog 安装 npm install -g auto-changelog配置脚本 package.json文件下 "scripts": {"changelog": "aut…

【Jmeter】配置不同业务请求比例,应对综合场景压测

目录 前言 Jmeter5.0新特性 核心改进 其他变化 资料获取方法 前言 Jmeter 5.0这次的核心改进是在许多地方改进了对 Rest 的支持&#xff0c;此外还有调试功能、录制功能的增强、报告的改进等。 我也是因为迁移到了Mac&#xff0c;准备在Mac上安装Jmeter的时候发现它已经…

blender 毛发粒子

新建平面&#xff0c;点击右侧粒子系统&#xff0c;选择毛发&#xff0c;调整毛发长度&#xff0c;数量&#xff08;Number&#xff09;&#xff0c;调整数量是为了避免电脑卡顿&#xff1b; 上面设置的每一根柱子都可以变成一个物体&#xff0c;点击渲染&#xff0c;渲染为选择…

EdgeBox_tx1_A200 PyTorch v1.9.0 环境部署

大家好&#xff0c;我是虎哥&#xff0c;今天远程帮助几个小伙伴在A200 控制器上安装PyTorch v1.9.0 torchvision v0.10.0&#xff0c;中间也是经历了很多波折&#xff0c;当然&#xff0c;大部分是网络问题和版本适配问题&#xff0c;所以完事后&#xff0c;将自己完整可用的过…

论文阅读 - Few-shot Network Anomaly Detection via Cross-network Meta-learning

论文链接&#xff1a;https://arxiv.org/pdf/2102.11165.pdf 目录 摘要&#xff1a; 引言 问题定义 方法 Graph Deviation Networks Cross-network Meta-learning 摘要&#xff1a; 网络异常检测旨在找到与绝大多数行为显着不同的网络元素&#xff08;例如节点、边、子图…

JNI之Java实现蓝牙交互

蓝牙概述 蓝牙&#xff0c;是一种支持设备短距离通信&#xff08;一般10m内&#xff09;的无线电技术&#xff0c;能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间&#xff0c;通过蓝牙设备之间的无线通信实现数据传输&#xff0c;实现数据传输&#xf…

【汇总】解决Ajax请求后端接口,返回ModelAndView页面不跳转

【汇总】解决Ajax请求后端接口&#xff0c;返回ModelAndView不跳转 问题发现问题解决方法一&#xff1a;直接跳转到指定URL&#xff08;推荐&#xff09;方法二&#xff1a;将返回的html内容&#xff0c;插入到页面某个元素中方法三&#xff1a;操作文档流方法四&#xff1a;使…

docker更换数据存储路径

1. 先停掉docker服务 sudo systemctl stop docker 可能会出现的问题&#xff1a; 这样会导致docker关闭失败,解决办法&#xff1a;systemctl stop docker.socket 确保docker关闭: 2.备份现在的 Docker 数据存储目录 /var/lib/docker(默认路径) mv /var/lib/docker /var/lib/…

在IDEA同一个窗口中同时打开多个独立项目

文章说明 本文主要说明如何在Intellij Idea中同时打开多个独立的Maven项目。 我在使用idea的时候&#xff0c;由于自己负责了很多项目&#xff0c;经常要在不通的代码之间切换来切换去。然后搜索代码的时候也只能搜到当前打开的这个项目。因为这个原因&#xff0c;一些小项目…