标签:
1.1、单选框
single.html
<!DOCTYPE html>
<html>
<head>
<title>单选项传值</title>
<meta charset="utf-8">
</head>
<body>
<form method="GET" action="single.php">
<p>用户名:<input type="text" name="username" /></p>
<p>
性 别:
<input type="radio" name="gender" value="1" />男
<input type="radio" name="gender" value="2" />女
<input type="radio" name="gender" value="3" />保密
</p>
<p>密 码:<input type="password" name="password" /></p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
single.php
<?php
header(‘Content-type:text/html;charset=utf8‘);
echo ‘<pre>‘;
var_dump($_GET);
注意:
1.2、多选框
muliSelect.html
<!DOCTYPE html>
<html>
<head>
<title>单选项传值</title>
<meta charset="utf-8">
</head>
<body>
<form method="POST" action="muliSelect.php">
<p>用户名:<input type="text" name="username" /></p>
<p>
爱 好:
<input type="checkbox" name="hobby[]" value="唱歌">唱歌
<input type="checkbox" name="hobby[]" value="跳舞">跳舞
<input type="checkbox" name="hobby[]" value="电影">电影
<input type="checkbox" name="hobby[]" value="篮球">篮球
</p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
muliSelect.php
<?php
header(‘Content-type:text/html;charset=utf8‘);
/*echo ‘<pre>‘;
var_dump($_POST);*/
// 1,连接数据库
mysql_connect(‘localhost:3306‘,‘root‘,‘aaa‘);
mysql_query(‘set names utf8‘);
mysql_query(‘use php2018‘);
// 2,接收数据
$user_name = trim($_POST[‘username‘]);
$user_gender = $_POST[‘gender‘];
$hobby = $_POST[‘hobby‘];
$user_password = md5(trim($_POST[‘password‘]));// 将数组转换成字符串才能写入数据库
$user_hobby = implode(‘,‘,$hobby);// 3,数据入库
$sql = "insert into user values
(null,‘$user_name‘,‘$user_gender‘,‘$user_hobby‘,‘$user_password‘)";$result = mysql_query($sql);
if($result) {
echo ‘插入成功‘;
}else {
echo ‘插入失败‘;
}
/*create table user(
user_id int primary key auto_increment,
user_name varchar(20) not null default ‘匿名‘,
user_gender enum(‘1‘,‘2‘,‘3‘) comment ‘1是男2是女3是保密‘,
user_hobby set(‘唱歌‘,‘跳舞‘,‘电影‘,‘篮球‘),
user_password char(32)
);*/
注意:
实现文件上传,由下面几步:
1)、在服务器端要开启文件上传功能;
2)、在浏览器端提供能够进行文件上传的表单。其实就是给表单添加属性:enctype=”multipart/form-data”;
3)、使用$_FILES接收上传的文件的相关信息;
4)、验证文件;
5)、将文件从临时文件夹移动到指定的目录下。
其实就是利用一个函数:move_upload_file(临时文件名,目标存放的目录及文件名);有一个返回值,如果上传成功就返回true,否则就返回false;
PHP默认的上传临时文件夹是在C盘下,有时候因为权限问题会导致上传失败, 因此我们一般会修改上传的临时文件夹。
封装文件上传函数
upload.php
<?php
# 文件上传函数
/**
* 文件上传
* @param array $file 上传文件的信息(是一个数组,有5个元素)
* @param array $allow 文件上传的类型
* @param string & $error 引用类型,用来记录错误信息
* @param string $path 文件上传的路径
* @param int $maxsize = 2*1024*1024 允许上传的文件的大小
* @return false|$newname 如果上传失败就返回false,成功则返回文件的新名字
*/
function upload($file,$allow,& $error,$path,$maxsize=2097152){
# 1,判断系统错误
switch ($file[‘error‘]) {
case 1:
$error = ‘上传错误,超出了文件限制的大小!‘;
return false;
case 2:
$error = ‘上传错误,超出了表单允许的大小!‘;
return false;
case 3:
$error = ‘上传错误,文件上传不完整!‘;
return false;
case 4:
$error = ‘请先选择要上传的文件!‘;
return false;
case 6:
case 7:
$error = ‘对不起,服务器繁忙,请稍后再试!‘;
return false;
}
# 2,判断逻辑错误
// 2.1,判断文件大小
if ($file[‘size‘] > $maxsize) {
$error = ‘超出文件大小,允许的最大值为:‘. $maxsize . ‘字节‘;
return false;
}
// 2.2,判断文件类型
if (!in_array($file[‘type‘], $allow)) {
//文件类型非法
$error = ‘上传的文件类型不正确,允许的类型有:‘ . implode(‘,‘, $allow);
return false;
}
# 3, 得到文件的新名字
$newname = randName($file[‘name‘]);
# 4,移动临时文件到指定路径
$target = $path . ‘/‘ . $newname;
if (move_uploaded_file($file[‘tmp_name‘], $target)) {
return $newname;
}else {
$error = ‘发生未知错误,上传失败!‘;
return false;
}
}
# 定义一个产生随机名字的函数
/**
* @param string $filename 文件的旧名字
* @param string $newname 文件的新名字
*/
function randName($filename) {
//生成文件名的时间部分
$newname = date(‘YmdHis‘);
//加上随机的六位数
$str = ‘0123456789‘;
//得到六位随机数
for ($i=0; $i < 6; $i++) {
//将每次得到的随机数加到新名字后
$newname .= $str[mt_rand(0,strlen($str))];
}
// 加上后缀名
$newname .= strrchr($filename, ‘.‘);
return $newname;
}
?>
1.1、组成:请求行、请求头、空行、请求数据
1.1.1、请求行。分为三个部分:请求方式、请求路径、协议版本
1.1.2、请求头。
请求头就是所有当前需要用到的协议项的集合!
协议项就是浏览器在请求服务器的时候事先告诉服务器的一些信息,而且每一个协议项都要单独的占用一行!
常见的请求头:
1.1.3、空行
用来分离请求头和请求数据,意思就是请求头到处结束!
1.1.4、请求数据
2.1、组成:响应行、响应头、空行、响应主体
1.1、基本操作
1.2、属性
1.3、注意事项
2.1、基本操作
增删该查都是通过$_SESSION数组来完成的。
2.2、属性
session的实现需要cookie的支持,它的属性和cookie的属性一样。
2.3、注意事项
2.4、session的销毁
cookie | session | |
存储位置 | 浏览器端 | 服务器端 |
数据量 | 大 | 小 |
存储的数据类型 | 只能是字符串 | 任意类型 |
安全性 | 较低 | 较高 |
默认的有效路径 | 只能是当前目录及其子目录 | 整站有效 |
1.1、创建画布
imagecreatetruecolor(width,height);
1.2、创建画笔颜色
imagecolorallocate(img,red,green,blue);
1.3、绘制文字(在画布上画画)
imagestring(img,size,x,y,string,color);
1.4、输出或保存图片
输出前要:
1)、设置响应头信息:header("content-type:image/png");
2)、清除缓存区数据:ob_clean();
<?php
# 1、创建画布
$canWidth = 170; // 画布的宽
$canHei = 40; // 画布的高
$img = imagecreatetruecolor($canWidth, $canHei);
# 2、为画布填充背景色
$bgColor = imagecolorallocate($img, mt_rand(0,120), mt_rand(0,120), mt_rand(0,120));
imagefill($img, 1, 1, $bgColor);
#/3、定义在画布上的显示文字
// 显示随机字符的范围
$arr = array_merge(range(‘a‘, ‘z‘), range(‘A‘, ‘Z‘), range(0, 9));
// 得到指定位数的随机字符
$str = ‘‘;
shuffle($arr);
$charNum = 4; //验证码个数
$keyArr = array_rand($arr,$charNum);
foreach ($keyArr as $value) {
$str .= $arr[$value];
}
// 4、将字符写入到画布
$span = ceil($canWidth/($charNum+1));
for ($i=1; $i <= $charNum; $i++) {
// 为画布创建画笔色
$charColor = imagecolorallocate($img, mt_rand(120,255), mt_rand(120,255), mt_rand(120,255));
imagestring($img, 5, $span*$i, 12, $str[$i-1], $charColor);
}
// 5、创建干扰线
for ($i=0; $i < 8; $i++) {
//创建干扰线颜色
$linColor = imagecolorallocate($img, mt_rand(75,150), mt_rand(75,150), mt_rand(75,150));
//创建干扰线
imageline($img, mt_rand(0,$canWidth-1), mt_rand(0,$canHei-1), mt_rand(0,$canWidth-1), mt_rand(0,$canHei-1), $linColor);
}
// 6、显示图片
header(‘content-type:image/png‘);
ob_clean();
imagepng($img);
?>
(此处的移动实质上也是重命名,不过目录的名字不单单是文件名,还包括目录的路径,当我们改变目录的路径时,既是移动目录,也可以说是重命名;)
1.2、常用目录操作函数
1.3、递归遍历目录
bianli.php
<?php
/**
* 递归遍历文件
* @param string $path 目录路径(地址)
* @param int $deep=0 当前目录的深度
*/
function readDirs($path,$deep=0) {
$dir_handle = openDir($path); //得到$path目录的句柄
while (false !== $file = readDir($dir_handle)) {
//筛选掉./和../
if ($file == "." || $file == "..") {
continue;
}
//输出文件
echo str_repeat(‘-‘, $deep*3),$file,‘<br/>‘;
//进入递归点和递归出口
if (is_dir($path . ‘/‘ .$file)) {
readDirs($path . ‘/‘ .$file,$deep+1);
}
}
}
$path = ‘./‘;
readDirs($path);
?>
2.1、文件基本操作
2.2、常用文件函数
标签:
原文地址:http://www.cnblogs.com/BeiGuo-FengGuang/p/5927553.html