php学习第三天

表单传值

1,复选框传值的方法
在这里插入图片描述
在php页面接收时候,hobby变成了一个数组,通过遍历数组就可以得到复选框传回来的值
在这里插入图片描述

php页面的编码问题可以使用下图方式来解决
在这里插入图片描述

header('Content-type:text/html;charset=utf-8');

2,上面的复选框,传到PHP页面的是一个数组,这个数组是一个字段的数据,但是php不能存储数组对象的,所以就需要把数组转为字符串进行存储
在这里插入图片描述
如上图,implode(数组 , '|');使用这个函数,可以把数组,转为以特殊符号分割的字符串,然后存入到数据库中

3,我们把数组变成字符串存入数据库以后,之后如果使用这个数据,怎么再取回来呢?就需要把字符串重新转为数组,可以使用explode('分隔符',‘要转为数组的字串’) 这个函数来转为数组

在这里插入图片描述
如上图,数组取出来以后,如何判断页面上的复选框是被选中的呢? 这里使用in_array('某个数据',我们上图中取出来的数组变量)

注意:复选框单选框的细节问题,如果复选框或者单选框没有默认值选中,php端就无法获得这些变量,当我们用php调用这些变量时候,就会报错,为了谨慎,我们需要先判断,复选框或者单选的变量是否有值,
在这里插入图片描述
如上图所示,如果不进行判断,直接使用$_POST[‘hobby’] 如果没有值,会报错的

文件上传

1,表单如何填写
在这里插入图片描述

<div style="margin-top:50px; text-align:center">
			<form action="" method="post"  enctype="multipart/form-data">
				<input name="image" type="file"/>
			
			</form>			
</div>

2,在后台获得文件以后,文件对象其实也是一个数组,里面有下面几个元素,来确定文件的身份
在这里插入图片描述
php端获得数据以后,如何进行文件保存呢?
1,获得文件
2,判断文件是否是上传文件,通过is_uploaded_file ( 参数是临时文件的路径字符串 ) 返回布尔值来判断文件是否是上传文件
3,确定是上传文件以后,我们就需要把文件从服务器保存的临时位置,移动到我们要保存的位置

move_uploaded_file(文件临时保存路径 , 文件相对路径)     这是用于临时文件的保存  

在这里插入图片描述
多文件上传
用两种方法 同名表单 和 不同名表单
① 同名表单上传多个文件后,后台获得的数据形式
在这里插入图片描述
在这里插入图片描述

②不同名的多个文件上传后,php端数据的格式
在这里插入图片描述
不同名多文件上传存储的方式
在这里插入图片描述

php对数据库的操作
1,连接打开数据库
在这里插入图片描述

$conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password) or die("error connecting") ; //连接数据库
 
mysql_query("set names 'utf8'"); //数据库输出编码  这里的utf8不带中间划线
 
mysql_select_db($mysql_database); //打开数据库

上面是单独的一个连接文件,当哪里需要连接数据库时候,直接调用就可以了
在这里插入图片描述
下面是对php执行sql语句的基本方法
在这里插入图片描述

$sql ="select * from news "; //SQL语句
 
$result = mysql_query($sql,$conn); //查询

$conn 是连接的数据库资源,这个第二个参数是告诉我们,sql语句到哪一个数据库里面去执行

下面是对数据库数据更新的操作
在这里插入图片描述
下面是对数据库删除的操作
在这里插入图片描述

php的查询数据库操作
在这里插入图片描述
上图所示,只要sql语法不错,查询出来的结果即使是空的,也不会报错,除非sql语法出现错误,才会报错,所以不能根据结果集不报错,来判断是否取得了数据

在这里插入图片描述
如上图所示,可以通过 mysql_num_rows() 来判断,总共查到了多少数据

对结果集的操作的几个常用函数
在这里插入图片描述
mysql_fetch_assoc() 一次只访问一行数据,返回这个数据的数组,其中,表中的字段作为下标,表中的一行数据作为数组的元素,如上图所示

在这里插入图片描述
mysql_fetch_row()返回的也是一个数组,这个数组就是一行数据,其中数字为下标,数据内容为元素

在这里插入图片描述
mysql_fetch_array()方法是综合了上面的两种方法,需要改变参数,就可以改变返回的数据数组的形式

在这里插入图片描述
mysql_num_fields() 返回结果集中,字段的个数;如上图所示
在这里插入图片描述
mysql_field_name() 通过提供下标,来获得结果集中,对应的字段的名字

在这里插入图片描述
mysql_errno() mysql_error() 这两个函数是针对结果集的操作,告诉你结果集是取得空还是语法错误 (exit() 是程序终止不再执行)

在这里插入图片描述
⑦ mysql_insert_id() 获取上面插入数据所产生的自增长的ID,如果没有自增长的ID,返回的是0

HTTP协议

header() 函数 前面不能写任何输出,比如echo

1, header("Location: http://www.example.com/"); 这是直接跳转,下面的代码不再执行
在这里插入图片描述
2, header('Refresh: 10; url=http://www.ithhc.cn/'); 延迟跳转
在这里插入图片描述
3, header('Content-Disposition: attachment; filename=ithhc.xlsx'); 声明这个页面是下载页面

在这里插入图片描述
4,设置php页面编码 header('Content-Type: text/html; charset=utf-8');

对文件目录和文件的操作
①创建路径 mkdir()
在这里插入图片描述
如上图所示,创建成功,会返回布尔值 true ,但是文件夹存在了,这个函数还是会报错,这就需要抑制这种错误,在函数前面加上@符号
在这里插入图片描述
②删除目录文件夹 rmdir(文件夹目录)

③文件夹下内容读取 opendir()readdir()
在这里插入图片描述
如上图,最后关闭资源 通过 closedir($r); 来关闭资源

dirname() 获得路径的上一个路径
在这里插入图片描述
realpath() 获得文件的绝对路径,如果文件不存在会返回false

在这里插入图片描述
is_dir() 判断是否是路径,如果是文件就会返回错误
在这里插入图片描述
scandir() 获取路径文件夹下面的所有文件,返回这些文件组成的数组
在这里插入图片描述
文件下载的实现
在这里插入图片描述
如果文件太大,需要分批读取的时候,就不能使用 file_get_contents() 函数了 ; 而是使用以下函数来读取
在这里插入图片描述
cookie 和 session 技术(会话技术)

1,cookie
在这里插入图片描述
cookie的设置和获得
在这里插入图片描述
在这里插入图片描述
cookie的生命周期,一般默认是 浏览器关闭以后,cookie就自动清空了,如果要设置cookie在浏览器存储时间可以通过以下方法
在这里插入图片描述
服务器不能随便清空cookie,但是可以设置cookie的值,如果想清空cookie,可以设置cookie的值为空
在这里插入图片描述
cookie的访问特点,一般父文件夹下的文件设置的cookie 可以在子文件夹下面的文件内可以访问,但是,子文件夹内的文件设置的cookie值不能在父文件夹内的文件来访问,一般开发网站,我们设置的cookie希望能全网站访问,这么就需要使用设置setcookie()的第四个参数了,通过设置 ‘/’ 这个符号,告诉这个cookie是全站所有文件都可以访问的
在这里插入图片描述
session的使用,这是数据存放在服务器端的,比较安全,里面可以存放任何数据,和cookie不同,cookie里面只能存放数字或者字符串
使用session 必须先通过 函数开启 才可以使用session
在这里插入图片描述
在这里插入图片描述
下图才是真正的销毁session
在这里插入图片描述
GD图像处理API

GD的使用流程
在这里插入图片描述
1,创建画布资源
在这里插入图片描述
在这里插入图片描述

1,验证码的实现,生成验证码的功能,网络上有封装好的,这样,找到这样的php文件 ,并且保证图片有输出到html端
在这里插入图片描述
下面是html页面端,用来生成验证码的表单
在这里插入图片描述

缩略图的生成原理(缩略图的生成,就是靠GD来完成的)
在这里插入图片描述
创建好缩略图以后,一定要记得销毁,如下
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值