php留言板编写总结
date
Feb 2, 2018
slug
php-summary
status
Published
tags
开发测试
summary
寒假闲来无事,写一个留言板来巩固一下php语言
type
Post
0x01 先从html语言简单说起
基础的html结构:
<!DOCTYPE html> //声明
<html>
<head></head> //描述网页各种属性,一般不在网页内容内显示
<body></body> //真正写内容的
</html>//大标签
用到的标签:
- 一对的:
<div></div> //容器
<form></form> //表格
<textarea></textarea> //文本输入
<a herf=""> </a> //超链接
<select> //选择项
<option></option> //选择内容
<option></option>
</select>
- 单身狗类型的:
<input type="" value="" /> //输入 type跟value属性分别是输入的类型跟名字
//type有submit,text,radio,checkbox,file等属性
<!-- --> //注释
<image src="" width="" height =""/> //图片
全局属性
例如id class title name等
0x02 CSS
感觉这一部分没什么多大作用,因为单单是用来美化的(我感觉),考虑到自己刚写博客还是总结一下我自己认为的东西吧。
样式:设置字体颜色宽度背景颜色等就是样式 样式与样式之间用分号隔开,其属性用冒号隔开。。
对CSS的操作
1.利用div标签里面的style属性去完成操作,例如:
<div style="color:red;"></div>
2.在head里面写,通过style标签,例如:
<head>
<style> //div里面的内容都变成红色
div{
color:green;
}
</style>
</head>
3.通过外链去实现,写link标签在head里面,注意此时不能使用style标签,因为style标签是属于html的东西
<head>
<link rel="stylesheet" type = "text/css" href= "style.css"/> //最后一个属性是你对应的文件名
</head>
选择器:
<div></div>
css文件内都是如果是div就代表全部div都改变字体大小等属性。。。关于选中某一部分的容器去改字体大小或颜色
例如:
<div id="a1"></div>
,对应的css文件也要改,改成#a1{}
这里的#代表了是id选择器<div class="a1"></div>
,对应的css文件也要改,改成.a1{}
这里的#代表了是类选择器
还有就是有一个类似C++里面的继承关系的东西,在同名不同选择器内可以在css文件内这样写:#a1 .aa1
{
} //id选择器的
.a1 .aa1
{
} //类选择器的
0x03 再来简单谈谈JavaScript
一般网页上的动态画面都是它来完成的
可以运行的地方
- html的
<script></script>
- html属性事件中,如onclick
- 浏览器的console控制台 //ctf题目有些就可以利用这个点去找flag
JavaScript DOM 主要是对html的操作
1.获取html元素 函数**getElementById():**通过ID获取元素,例如:
<p id="info">哈哈哈</p>
<script>
x= doucument.getElementById("info")
alert('id为info元素的文本是'+x.innerHTML); //这里的innerHTML是获取元素内容,而alert()在JavaScript中可以弹出一个警告框展示信息
</script>
2.修改html内容 与获取内容的前两步是一样的,例如:
<p id="info">哈哈哈</p>
<script>
x= doucument.getElementById("info")
x.innerHTML = '改变的内容!';
</script>
3.创建动态的html元素内容
document.write()
4.增加互动元素,如:
<script>
function changetext(id)
{
id.innerHTML="谢谢!";
}
</script>
<h1 onclick="chagetext(this)">click here</h1> //利用onclick
JavaScript BOM --对浏览器的操作:
- 警告用户 //常用于xss漏洞测试 警告弹窗alert() 确认弹窗confirm() 提示弹窗prompt()
- 获取cookie或者写入cookie
document.cookie
//读取document.cookie="写入值"
//写入
还有其他操作就不一一举例了 ->->
0x04 PHP
环境的搭建
各种傻瓜式装环境谷歌一下都有
标记符
`<?php ?> //在标记符之外都是可用来显示html代码的(html混写),每句话后面都一定要记住不要忘记分号`
注释:
#
2.//
3./**/
变量
$
开头
注意:定义字符串与数组各有两种形式
字符串$a="aaa" $a='aaa'
这里跟C++的字符与字符串定义有点区别,而且双引号考虑变量名,单引号该输出什么就输出什么
$b=[1,2,3] $b=array(1,2,3)
前面是php5.4之后数组的新写法 ,后面是传统写法
注意数据类型的转换,无效的字符串就会变成0 例如: (int)'saaa'=0 (int)true=1
等等var_dump()函数
var_dump()
同时输出变量的数据类型及数据,可多个值写进,一般用来测试。。。运算符
其中有一个
.=
的符号,里面的.是用来连接两个变量的符号
还有一些例如=>
,->
我认为还是比较特殊的函数
定义格式
function name()
{
}
注意:函数里面的变量进不来也出不去
数组
键是唯一的 ,但是值可以是多种类型的,用逗号隔开,例如可以数组套数组
$arr=[1,2,[1,2,3]]
分索引数组与关联数组:
$arr1=[1,2,3]; //索引数组
$arr2=[ 'a'=> 1,'b'=> 2 ]; //关联数组这个有点类似python里边的字典,随意添加键值
unset($arr2['b']); //删除
数据的发送与接收注意点:
1.html一定要在form表单内并且要有action 与method属性
2.form里面的input一定要有对应的name值
例如:
<form action='test.php' method='post'>
<input type='text' name='aa' />
<input type='text' name='bb' />
<input type='submit' value='提交'>
</form>
3.GET,POST,REQUEST(REQUEST方式两种都行,不过听说开发有点危险,不推荐使用)在对应的php文件里面的键名一定要对应,这两个预变量与数组的操作差不多
类和对象
个人觉得代码很少的时候,觉得这是累赘。。。。。可能开发团队大了就有些用处。。。
类里面的变量跟方法最好都要设置可见性,就下些什么public之类的。->详情请看官方文档
对象调用类里面的属性好像只能用
->
,看了看文档好像没有用.去连接的,这里还是和C++有点区别的,另外就是调用的时候箭头右边就不用加$了;例如:$myFoo->test(); //这里的test()是类里面的一个方法
还有就是类里面的
$this
可以在自家类的方法里面调用其他自己类的方法,这个东西千万不要忘记了$
我就忘了很多遍
下面是例子:<?php
class name{
public $a = 0;
public $b = 1;
public function a1(){
$this->a2();
}
public function a2(){
echo $this->b;
}
}
$n = new name(); //根据类实例化
$n -> a1();
echo $n->a;
//var_dump($n);
?>
魔术方法
public function __constuct()
{
}
//哎呀其实就是构造函数。。。。
文件包含
include,include_once,require,require_once的区别:
include你调用几次就加载几次,而include_once至加载一次
而require跟require_once的区别同上
include跟require的区别就是一旦出错require会终止而include会继续执行后面的代码