表单传值
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来完成的)
创建好缩略图以后,一定要记得销毁,如下