第一课 Web基础知识
第二章 第一节 HTML
一、HTML结构和语法
html是由head 和body组成的
例如p标签:
<p> </p>
代表一个段落
元素中也会有其他的属性
标签属性:name,id,class,…
事件属性:onload,onerror,onclick,…
<p class="editor-note">My cat is very grumpy</p>
HTML文档:由html元素组成
HTML元素:<开始标签>、</闭合标签>、内容、属性
①注释
<!--这里是注释信息,不会页面显示-->
HTML不区分大小写
②图像
<img src="图片的url" width="500" height="100"/>
③链接
<a href="链接的url">点我访问<a/>
链接写在href属性中,用来进入其他的页面。
④表单
经常用于浏览器的表单提交
<form>
username:
<input type="text" name="username"/>
password:
<input type="password" name="password"/>
<input type="Submit" name="Submit"/>
</form>
⑤内联框架
<iframe src="url地址" frameborder="0" width="480" height="240"></iframe>
在网页上会出现一个框
二、HTML DOM树形结构
DOM是将HTML转化成DOM树,可以更直观了解页面元素,通过JavaScript,可以对HTML进行任意操作。
第二节JavaScript
一 、概述
*在哪些地方可以运行JavaScript?
答:
①HTML的<script></script>
之间
②HTML的事件属性中 如onclick
例如
<body>
<p id="intro">hello world!</p>
<script>
function changetext(id)
{
id.innerHTML="谢谢";
}
</script>
<h1 onclick="changetext(this)">请点击改文本</h1>
</body>
③在浏览器中的console控制台
*JavaScript语法是否很复杂?
答:
很容易掌握,比较简单。
*除了页面动态效果JavaScript还可以用来干什么呢?
二、JavaScript DOM
*HTML源代码已经完成,如果想在页面操作HTML怎么办?
用到JavaScript HTML DOM操作HTML中的数据
①如何获取一个HTML元素内容?
例如获取下面p标签的hello world内容
代码:
<html>
<head>
<title>网易web安全微专业</title>
</head>
<body>
<p id="intro">Hello World!</p>
<script>
x=document.getElemntById("intro");
alert('id为intro元素的文本是:'+x.innerHTML);
</script>
</body>
</html>
答:
第一步,获取元素
grtElementById():通过id获取元素
第二步,获取元素内容
.innerHTML:获取元素内容
注:alert();弹出一个警示框,展示信息。
演示:
打开浏览器,F12点击console,敲如
alert(1)会显示在页面上
选中网页中的form表单,找到form的id,去console执行js。
document.getElementById(“form表单的id”).innerHTML
获取元素内内容
输入:alert(document.getElementById(“form表单的id”).innerHTML)
页面弹出在浏览器中
②如何修改一个HTML元素内容?
源码:
<html>
<head>
<title>网易web安全微专业</title>
</head>
<body>
<p id="intro">Hello World!</p>
<script>
x=document.getElemntById("intro");
x.innerHTML="Javascript改变HTML内容!";
</script>
</body>
</html>
答:第一步,获取元素
getElementById():通过id获取元素
第二步,获取元素内容
.innerHTML:通过ID获取元素
演示:
打开https://dun.163.com
通过id设置html内容:
登录框架设置为iframe
第一步,选定登录框元素,找到id
第二步,获取Id的元素内容,并修改为一个html的iframe框架(使用console)
在console控制台中
输入:document.getElementById("id内容").innerHTML="<iframe=src="url地址"></iframe>"
回车
面都是修改一些数据,如果想创建一些动态效果,列如获取当前时间。
③如何创建动态的HTML元素内容?
源码:
<html>
<head>
<title>网易web安全微专业</title>
</head>
<body>
<p id="intro">Hello World!</p>
<script>
x=document.getElemntById("intro");
document.write(Data());
</script>
答:
使用document.write()函数
可以直接写入到html页面中
data()函数是输出系统的时间。
演示:
使用浏览器打开https://dun.163.com
展示通过document.write方法动态写入HTML:
写入当前时间
写入iframe
在console中输入:
document.write(Data())
写入当前时间,回车
输入:
document.write("<iframe src="url链接"></iframe>")
写入iframe,页面上相应的页面出现。
刚才所讲的都是针对元素内容的修改,那么
④如何让页面增加点互动?
源码:
<html>
<head>
<title>网易web安全微专业</title>
</head>
<body>
<p id="intro">Hello World!</p>
<script>
function changetext(id)
{
id.innerHTML="谢谢!";
}
</script>
<h1 onclick="changetext(this)">请点击该文本</h1>
</body>
</html>
网页上显示的是请点击该文本,
当我问点击时,页面内容改变 点击事件 :onclick
演示:
浏览器打开dun.163.com
展示登录onclick事件:
为了展示效果,修改为alert(1)
选中元素登录,看到源码中有一个onclick属性,我们直接在elements中修改成
οnclick=“alert(1)”
再次点击登录就会显示一个框
*以上使用javaScript访问和操作HTML就是avaScript DOM的操作
DOM本质是连接web页面和编程语言的桥梁
javaScript+DOM是访问和操作HTML文档的标准方法。
三、JavaScript BOM
①我们如果想获取浏览器 信息,操作浏览器行为怎么办?
BOM是用来操作浏览器行为的
②如何让浏览器来警告用户?
答:
警告弹框alert()
确认弹框confirm()
提示弹框prompt()
这几个函数常用于简单的调试和信息展示
如XSS漏洞的测试
③如何从浏览器获取用户Cookie?
cookie:通常是服务器发放给用户客户端的一小段文本信息
常见场景:用户输入用户名和密码成功登陆网站后,网站会生成一个cookie给用户,当做用户凭证。
这个凭证cookie就相当于我们的钥匙,我们每次访问网站的时候浏览器都会带上钥匙(cookie)
在控制台的Application中
答:以dun.163.com为例
获取cookie
document.cokie
console控制台中输入:document.cokie
写入cookie
document.cokie=“写入值”
console中输入:
document.cokie=“cookie=test”
再去获取cookie
输入:document.cokie
那么④问题:alert(document.cokie)是什么意思?
演示:
使用浏览器打开https://dun.163.com
通过chrome开发者扩展展示cookie信息;
通过javascript获取和设置cookie;
document.cookie查看和设置cookie;
alert(document.cookie);
操作:
在network中选中一个请求也可以看到cookie请求
通过console控制台
输入:document.cookie
输入:document.cokie=“webSrc=hhhhhh”
输入:document.cokie
修改成功
输入:alert(document.cokie)
弹出一个cookie的框
⑤还有其他浏览器获取和操作行为?
1)获取浏览器屏幕信息
(window.)screen
console中输入:screen
2)获取/控制用户页面URL
(window.)location
在console控制台输入:window.location.href
当前页面的URL
输入:window.location
输入:window.location.href=“当前页面刷新后的页面url”
3)获取访问者浏览器信息
(window.)navigator
在console控制台中输入:window.navigator.userAgent 获取本机的浏览器信息
输入:
window.navigator
4)操作浏览器窗口:window open,close
console中输入:window.open(“http://aq.163.com”) 重新打开指定的页面
*以上使用javascript获取浏览器信息和操作浏览器就是javascript BOM
BOM就是对浏览器的操作,对比DOM又称作浏览器的对象模型。本质是连接浏览器和编程语言,注:DOM连接web页面和编程语言。
javascript课程回顾:
1.我们在哪几个地方可以运行javascript?
2.javascript如何获取元素和元素内容?
3.javascript如何获取浏览器cookie?
4.javascript 由那三部分组成?
第三节Web服务端环境
01web服务端概述
02web服务端搭建
什么是web服务端?
像餐厅的后厨做饭
web服务端经历了哪些变化?
web经历了1.0,2.0的时代
期初是web静态页面面时期,无交互只能浏览,
常见的静态页面有,htm/html后缀的,
当我们请求web页面时,浏览器会发送请求,服务器找到文件并响应。
web的动态页面时期,由脚本驱动,php文件是一种脚本语言,php经过语言解释器变成html文件。
php代码是在服务器端执行的。
网络中的数据量很大,数据库用来支持网站,Php解析执行会向数据库调取数据,一起组装成html文件。
脚本文件通过配置文件连接到数据库
web服务端架构由三个:web服务器,语言解释器,数据库
目前流行的架构有哪些?
操作系统+web服务+解释执行环境+数据库服务=web服务端
.NET :IIS+ASP(.NET)+SQLServer
LAMP
J2EE
如何搭建一个web服务端?
使用windows操作系统
windows+Apache+php+MySql
下载安装集成软件 phpStudy
选择软件安装目录,防火墙允许访问
安装完成
MySql服务
数据库服务,其他菜单->MySql
mysql命令行
输入默认密码 root
默认账户密码root/root
演示:安装phpstudy
phpmyadmin
上述的网站是怎么样工作的?
url组成:协议+服务器名称+路径
localhost本地主机
Apache服务
localhost=本地主机=127.0.0.=本机Ip=域名=DNS服务器,HOSTS文件
设置host,打开hosts文件。c:\windows\System32\drivers\etc\HOSTS
自定义域名 本机Ip 域名(可以随便输入)
例如 198.15.0.1 web.163.com
保存关闭
重启浏览器
l.php文件在哪里呢?
网站根目录,可以看到l.php
创建我们自己的网页:
html 源代码放到www文件中
访问文件可以显示
php动态网页
演示
如何设置host,如何创建我们的网页
设置host,以管理员身份运行记事本,打开刚才host目录,
如何新建网页,找到根目录
第四节 后端开发基础
SQL
01 SQL概述 02 SQL语法
sql
“仓库”,提供数据管理的软件
网站中的数据从数据库中提取
sql语言
是一门ANSI的标准计算机语言
用来访问和操作数据库
数据库
SQL server
MySql
Oracle
数据库软件兼容一些主要的SQL关键词操作
SQL语言的私有扩展
如何搭建我们的数据库?
了解数据库:软件+服务接口+用户
数据库+数据表+数据
安装软件 创建数据库 创建表 插入数据
搭建仓库----环境准备:
MySql命令行(phpstudy)
软件 --MySql
服务接口–端口/本地
用户–root等 具有数据库管理员权限
或者使用phpMyAdmin可视化
搭建仓库----数据库操作:
创建数据库
CREATE DATABASE websecurity;
查看数据库
show database;
切换数据库
USE websecurity;
删除数据库
DROP DATABASE websecurity;
不区分大小写,分号作为语句的结束。
搭建仓库----数据表介绍:
第一行:表头
某一列:某一类的集合(非1)
某一行:值(非1)
第一列:键,不会重复
搭建仓库----数据表操作
创建数据表
CREATE TABLE teacher(
id int(4) not null primary key auto_increment,
name char(20) not null,
sex char(10) not null,
addr char(20) not null
);
可以看见创建了4列 id,name,sex,addr
第一列id为例
int(4)四字节整型,not null不能为空的值,primary key键值,auto_increment自增长,这句话的意思是:id为键值4字节自增长
建立完成,查看数据表
show tables;
插入数据
INSER INTO teacher(name,sex,addr) VALUES(‘Leo’,‘Male’,‘hangzhou’);
查询数据表
SELECT * FROM teacher
演示
演示内容:
新建websecurity数据库
新建teacher数据表,进行操作:
插入、查询、更新、删除
操作:
打开mysql命令行 输入密码root
创建数据库
CREATE DATABASE websecurity;
显示数据库
SHOW database;
切换数据库
use websecurity;
新建一张表
CREATE TABLE teacher(
id int(4) not null primary key auto_increment,
name char(20) not null,
sex char(10) not null,
addr char(20) not null
);
四列都是不能为空
查看数据表
SHOW tables;
查看数据表中的数据
SELECT * FROM teacher;
*代表所有数据
看到数据表数据为空
插入数据
INSERT INTO teacher(name,sex,addr) VALUES(‘Leo’,‘Male’,‘hangzhou’);
查询数据表
SELECT * FROM teacher;
同样的方式再插入三条数据表
INSERT INTO teacher(name,sex,addr) VALUES(‘Able’,‘Male’,‘beijing’);
INSERT INTO teacher(name,sex,addr) VALUES(‘John’,‘Male’,‘beijing’);
INSERT INTO teacher(name,sex,addr) VALUES(‘Mary’,‘Female’,‘hangzhou’);
再来查看一下数据表
SELECT * FROM teacher;
看到表中多了四行内容,
如果想要更新id=1的这一行的名字
UPDATA teacher SET name=‘ivan’ WHERE id=1;
SELECT * FROM teacher;
发现更新成功
删除某一行
DELETE FROM teacher WHERE name=‘ivan’;
或者
DELETE FROM teacher WHERE id=1;
查询一下
SELECT * FROM teacher;
为了保证后续实验的进行将刚才删除的粘贴进来
INSERT INTO teacher(name,sex,addr) VALUES(‘Leo’,‘Male’,‘hangzhou’);
刚才我们使用where 句子查找某个人,修改某个数据,删除某个数据
SQL语法
where句子
select 你要的信息 from 数据表(或多个) where 满足的条件(条件判断)
例如:
我想在teacher表中找出杭州的男性:
select * from teacher where addr=‘hangzhou’ and sex=‘Male’;
显示整个表
或者
select name from teacher where addr=‘hangzhou’ and sex=‘Male’;
显示name列
TIPS:“*”号代表所有符合数据;where也可以用于updata或者delete中。
order by 句子
select 你要的信息 from 数据表(或多个) order by 字段 ASC/DESC(升序/降序)
我想对姓名进行排序:
select * from teacher order by name;
默认正序可以不写这个词ASC
或者
select * from teacher order by 2;
2表示第二列
TIPS:可以使用oeder by “数字”,判断数据表的字段长度。这种用法在SQL注入中经常用到
UNION句子
select 你要的信息 from 数据表1 union select 你要的信息 from 数据表2
如果有teacher 和student两张表
想合并两张表中的"name"
select name from teacher union select name from student;
所有的名称都会显示到列表中,不显示重复的数据
TIPS:重复的姓名也要显示怎么办?使用union all
MySql注释
#…
例如:select 1+1;#这个注释直到该行结束
– …双横杠空格
例如:select 1+1;-- 这个注释直到该行结束
/…/
例如:select /这是一个在行中间的注释/1+1;
在进行sql注入时可以绕过注入。
演示
演示内容:导入student表格,从teacher 和student里找出全部的男性的‘name’,并默认排序。
操作
mysql命令行
切换数据库
use websecurity;
查看现在的表格
show tables;
导入sql格式文件(不用手动添加)
source 文件具体路径多加一个反斜杠;
mysql在插入数据时会自动去除转义符。
show tables;
查看表中内容
select * from students;
对比表中的name
select * from teachers;
将使用union去查询所有的男性并打印出来
select name from teacher where sex=‘Male’ union all
select name from student where sex=‘Male’;
下面对它进行一个排序
在刚才操作语句的基础上
select name from teacher where sex=‘Male’ union all select name from student where sex=‘Male’ order by 1;
可以看到姓名按照字母排序
Mysql是否也有内置函数?
database() 当前数据库名称
select database();
current_user 当前用户
select current_user;
load_file()返回一个文件的内容
select load_file(‘文件具体路径多加反斜杠’);
TIPS:
version() 数据库版本
into+outfile 写入文件
对于后续利用sql注入漏洞有很大的帮助
课程回顾
SQL语言:指结构化查询语言
是一种ANSI(没过国家标准化组织)标准的计算机语言
可以访问和处理数据库
也学习了:创建库、操作库,创建表、操作表
最重要的是:使用sql语言进行数据的增删改查
sql内置函数
1.如何才能创建一个数据库、数据表。
2.如何对表中的数据进行增删改查。
3.Mysql的常见内置函数有哪些?
第五节 后端开发基础 PHP
01PHP概述 02PHP实例
php文件 php代码在服务器上进行执行 结果以html形式返回给浏览器
①php文件是什么呢?
扩展名是:php,在服务端进行解析
php文件除了包含php代码还可以包含Html 和js代码
php全称:Hypertext Preprocessor
超文本预处理器
一种使用广泛的开源脚本语言,常用于网页开发。
php脚本在服务器上执行
②php语言的基本组成有哪些呢?
php脚本可以放在文档的任意位置
脚本范围:<?php ?>
注释://、#、/* */
echo 和print
示例代码:
文件名字.php
<html><head>
<title>这是php的基础语法</title></head>
<body>
<?php
//此处是php代码
#这也是单行注释
/*这里是
多行注释*/
$a='Welcome';
$b='to study.163.com!';
//echo 可以用逗号分隔字符变量来显示
echo 'echo语句:'.$a,$b.'<br />';
//而print不能使用逗号,只能用点号分隔。
//print $a,$b.'<br />';//这里使用逗号时报错。
print 'print函数:'.$a.$b.'<br />';
echo 'echo打印print函数并返回1:'.print $a.$b.'<br />;
?>
</body></html>
TIPS:
echo语句,可一次输出多个
print为函数,有返回值,一次只能输出一个。
示例代码2
文件名字.php
<html><head>
<title>这是php的基础语法</title></head>
<body>
<?php
//此处是php代码
#这也是单行注释
/*这里是
多行注释
*/
function myTest(){
$a='Welcome';
$b='to study.163.com!';
$B='to php world!';
//echo 可以用逗号分隔字符串变量来显示
echo '$a$b:'.$a.$b.'<br />';
echo '$a$B:'.$a.$B.'<br />';
}
//执行如下函数
echo '函数执行的效果</br>';
myTest();
?>
</body></html>
串接:.(点)
函数:function 函数名()
变量:$变量名
TIPS:变量大小写敏感
示例代码3
文件名字.php
</td>
</tr>
</table>
<?php
if ($_POST['act'] == 'MySQL检测' {
if(function_exists("mysql_close")==1) {
$link = @mysql_connect($host.":".$port,$login,$password);
if($link){
echo "<script>alert('连接到MySql数据库正常')</script>";
} else {
echo "<script>alert('无法连接到MySql数据库!')</script>";
}
} else {
echo "<script>alert('服务器不支持MySql数据库!')</script>";
}
}
?>
③组成:
基础语法<?php >
语句 if else
变量 $link
函数@mysql_connect()
看懂代码才能更好地理解web安全
④常见的php功能实现有哪些?
表单 提交名字、邮箱
源代码:
<html>
<body>
<!--当请求为GET时,welcome.php要使用$_GET[]-->
<form action="welcome.php" method="post">
姓名:<input type="text" name="name"><br>
邮箱:<input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
分析:姓名和邮箱都会赋值给name 和email
然后会将这两个数据指向的welcome.php
源代码:
<html>
<body>
<!--当请求为GET时,welcome.php要使用$_GET[]-->
<?php echo $_POST["name"];?>,欢迎您!<br>
您的邮箱地址是:<?php echo $_POST["email"];?>
</body>
</html>
在这个页面里面使用POST变量接收name和email两个值。
通过echo打印出来信息
解析成html页面
解析的html源代码:
<html>
<body>
<!--当请求为GET时,welcome.php要使用$_GET[]-->
小明,欢迎您!<br>
您的邮箱地址是:[email protected]</body>
</html>
除了POST变量可以接收传值,GET也可以。
<html>
<body>
<!--当请求为GET时,welcome.php要使用$_GET[]-->
<?php echo $_POST["name"];?>,欢迎您!<br>
您的邮箱地址是:<?php echo $_POST["email"];?>
</body>
</html>
<html>
<body>
<!--当请求为GET时,welcome.php要使用$_GET[]-->
<?php echo $_GET["name"];?>,欢迎您!<br>
您的邮箱地址是:<?php echo $_GET["email"];?>
</body>
</html>
当http请求方式为POST时,后端的请求为POST,Http请求为GET,后端的php代码里面用GET变量。
TIPS:
除了
_GET接收传值外,还可以用$_REQUEST
⑤在上网的时候,我们经常会上传头像或者是文件就会用到文件上传的功能,那么就会出现文件上传漏洞。
文件上传流程:
首先选择一个文件1.jpg点击Submit就会上传一个文件到网站上。
可以看到Stored in:文件路径
这里会用到$_FILES变量
示例代码:
<form action=""method="post"
enctype="multipart/form-data>
<label for="file" name="file" id="file"/>
<br />
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if(isset($_REQUEST["submit"])){
if($_FILES["file"]["error"]>0)
{
echo "Return Code:".$_FILES["file"]["error"]."<br />";
}
else{
echo "Upload:".$_FILES["file"]["name"]."<br />";
echo "Type: ".$_FILES["file"]["type"]."<br />";
echo "Size: ".($_FILES["file"]["size"]/1024)."Kb<br />;
echo "Temp file: ".$_FILES["file"]["tmp_name"]."<br />";
if(!file_exists("upload")){mkdir("upload");}
if(file_exists("upload/".$_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"]." already exists.";
}
else{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/".$_FILES["file"]["name"]);
echo "Stored in:"."upload/"/$_FILES["file"]["name"];
}
}}
?>
*分析:当上传图片的时候点击Submit,就会将file信息传递给下面的php代码中,然后判断file文件是否存在,如果存在就会打印出图片的属性,名称大小等。tmp file 将图片存储到tmp_name中,然后使用move_upload_file将缓存文件当道upload/文件夹下面来。完成一个存储。
tmp_name是缓存文件。
TIPS:通过HTTP POST方式上传。
php中还有一些常见的系统变量
$_SERVER 可以获取服务器的相关信息
示例代码:
<?php
echo "服务器名称:".$_SERVER['SERVER_NAME']."<br>";
echo "网站根目录:".$_SERVER['DOCUMENT_ROOT']."<br>";
echo "当前网页相对路径:".$_SERVER['PHP_SELF']."<br>";
echo "当前网页绝对路径:".$_SERVER['SCERIPT_FILENAME']."<br>";
echo "服务器环境变量:".$_SERVER['PATH']."<br>";
?>
TIPS:
$GLEBALS
$_ENV
$_REQUEST
$_COOKIE
$_SESSION
⑥如果我想将php文件显示到一个php页面当中,该如何操作?
文件包含
在server.php中添加一行代码就可以达到这种效果
示例代码:
<?php
echo "服务器名称:".$_SERVER['SERVER_NAME']."<br>";
echo "网站根目录:".$_SERVER['DOCUMENT_ROOT']."<br>";
echo "当前网页相对路径:".$_SERVER['PHP_SELF']."<br>";
echo "当前网页绝对路径:".$_SERVER['SCERIPT_FILENAME']."<br>";
echo "服务器环境变量:".$_SERVER['PATH']."<br>";
include 'upload_file.php';
?>
包含了刚才上传文件的php页面
include
还有一种方法
require
这两种方式都可以包含这种功能,require如果出现错误脚本立即停止
TIPS:
include/require:包含文件
include :警告,脚本继续
require:错误,停止脚本
演示
演示内容:
POST/GET请求、并比较
include文件包含
操作:
开启apache服务
网站根目录
找到form_post.html
还有一个指向的文件welcome.php
打开表单提交的页面form_post.html
随便输入名字和邮箱,可以看到正常的返回。
查看源代码
看到里面使用的方式是post,指向实welcome.php,使用notepad打开,
对比数据流,中间的传值是Name 和email
也可以使用GET请求看一下是如何工作的。
将.html文件的POST改成GET
重新访问提交 发现错误,则需要将php文件中的POST修改成GET。
区别:POST提交中不会将数据放到URL中,GET会直接放到URL中。还有一种方法REQUEST可以接受这两种。
include文件包含演示
找到文件:SERVER.php,upload_file.php
首先我们访问server
是一个正常的页面没有包含任何网页,将要包含的文件名复制出来
修改server的代码:
在最下面一行加入:
include ‘upload_file.php’;
在刷新server页面可以看到包含成功。
⑦PHP如何连接、操作数据库呢?
以上节课的sqldemo 为例
下面是php代码:
<?php
$con = mysql_connect("localhost","root","root");
if(!$con)
{
die('数据库连接失败:'.mysql_error());
}
else
{
mysql_query("SET NAMES UTF8");
mysql_select_db("websecurity",$con);
$result = mysql_query("SELECT * FROM teacher");
//在表格中输出显示结果
echo "<h2>欢迎学习WEB安全工程师课程--SQL语言</h2><p>人员列表如下:</p>";
echo"<table border='2'width='300'>
<tr><th>id</th><th>name</th><th>sex</th><th>addr</th></tr>";
while($row=mysql_fetch_arry($result))
{
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$roe['sex']."</td>";
echo "<td>".$roe['addr']."</td>";
echo "</td>";
}
echo "</table>";
}
mysql_close($con);
?>
1.连接MySQL服务
mysql_connect(“localhost”,“root”,“root”);
在我们能够去访问和处理数据库数据之前必须做一个连接数据库的操作。在php当中这个任务是通过 mysql_connect函数完成的,内部参数分为了"localhost",“root”,“root”
这三个的意思是服务器名称,连接数据库的用户名,连接数据库的密码。
2.设定编码
mysql_query(“SET NAMES UTF8”);
一般设置为UTF8,为了防止web页面出现乱码。
这里直接将sql命令写在mysql_query的括号里,即可执行sql语言
3.选择数据库
mysql_select_db(“websecurity”,$con);
下面可以通过mysql_select_db去选定数据库。
这里选定的是websecurity。
4.操作数据库
$result = mysql_query(“SELECT * FROM teacher”);
读出表中数据,括号中填写sql语言
在读完数据之后需要使用其他函数对表单数组的输出
while($row=mysql_fetch_arry($result))
{
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$roe['sex']."</td>";
echo "<td>".$roe['addr']."</td>";
echo "</td>";
}
echo "</table>";
}
5.关闭连接
mysql_close($con);
关闭数据库。
上述连接、选择、操作和关闭 是一个完整的操作流程。
上述所使用的mysql函数是php当中的MYSQL扩展,
除了这种方式操作数据库还可以使用MYSQLi扩展和PDO扩展(PHP Data Objects)
函数使用方法都很类似,了解就行。
前后端的知识学习好了,现在来搭建一个简易的站点。
按照以下的形式进行搭建:
数据库导入MySQL
demo源码导入网站根路径
配置数据库文件,让web网页和数据库联通起来。
演示
下载文件,
在db文件夹中找到
websecurity.sql
Phpstudy打开数据库目录
上一级bin中,有一个mysqldump.exe和mysqlimport.exe。
打开Mysql命令行,密码root
show database 查看所有的数据库。
发现我们想导入的websecurity在里面,
运行cmd,将mysqldump.exe拖拽进来回车,现在需要导出数据库,需要用户名和密码连接,
----dump.exe - u root -p websecurity >导出文件路径
导出成功,使用source又可以导入,
进行数据库删除,
在mysql命令行中
drop database websecurity;
show database;
删除成功
解压demo,找到数据库db中,使用source命令,
source 文件路径 不加分隔号‘;’可以直接回车执行,不用双斜杠。
这种方式更方便,查看数据库发现存在。
use websecurity;
选中数据库查看有哪些表
show tables;
接下来把demo源码放到根目录下面。
尝试访问站点,首页是index,输入网址,在没有数据库的情况下去访问首页或其他页面可能会报错。
现在需要数据库的连接,
在首页中找到包含,例如Include,require,找到包含的网页。
找到这个文件,打开看到有一个包含是include/config.php。
这个是数据库连接文件。
打开,看到修改密码是root,数据库名称websecurity,保存。
再来访问站点,发现网站可以显示了。
课程回顾
PHP语言
是
超文本预处理器
开源,常用于网页开发
服务器上执行
也学习了
php的基本语法,基础语句(print等),变量(预定义变量等),函数。
同样也学习了,php表单、文件上传、文件包含、操作数据库等相关Php基础。
课程回顾
问题:
1.什么是php?基本语法是什么?
2.php变量 _GET、$_FILES的用法。
3.php include的用法
4.php如何操作数据库