ajax第二天
表单的处理
表单里面input项的name:提供给后台使用
<div class="form">
<form action="./form.php" method="post" enctype="multipart/form-data">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password"></td>
</tr>
</table>
<td><input class="file" type="file" name="file"></td>
<td><input type="submit"></td>
</form>
</div>
<?php
//自定义数据
$arr = array('张三'=>123,'小明'=>321);
// print_r($arr);
// 接参数
$username = $_POST['username'];
$password = $_POST['password'];
// var_dump($username['username']);
//检测有没有该用户名
$hasName = array_key_exists($username,$arr);
// var_dump($hasName);
//验证密码
//php语法没有全等于
if ($hasName&&$arr[$username]==$password) {
echo '登陆成功,正在跳转';
// header('refresh:3;url=./home.php');
}else{
echo "没有登录成功,正在跳回页面";
// 跳转到某个成功页面
// header('refresh: 3; url=http://www.baidu.com');
header('refresh: 3; url=./form.html');
}
//接收文件
var_dump($_FILES);
//获取文件名
$fileName = $_FILES['file']['name'];
// echo $fileName;
// 获取文件路径
$path = $_FILES['file']['tmp_name'];
//将文件从临时目录里面移出来(移除更新文件)
//move_uploaded_file
move_uploaded_file($path,'./'.$fileName);
echo "<img src=".'./'.$fileName.">"
?>
charles
charles软件是一款拦截报文的软件
http协议
request:请求报文
response:响应报文
content-Type:响应资源的MIME类型
MIME类型:MIME是标识文件类型的,文件后缀并不能正确无误的标识文件的类型。客户端与服务器在进行数据传输的时候都是以字节形式进行的,咱们可以理解成是以“文本形式”传输,这时浏览器就需要明确知道该怎么样来解析这些文本形式的数据,MIME就是明确告知浏览器该如何来处理。
为什么要设置请求头?
通过请求头里面的Content-Type字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。
http协议的理解
浏览器做的工作就是解析http协议然后然后将内容展示出来
表单提交是浏览器向Web服务器发起HTTP协议的请求
javascipt代码控制浏览器向Web服务器发起HTTP协议的POST请求,Web服务器收到该请求后,会执行一段程序,这段程序称为Web程序,一般是用PHP/ASP/ASPX/JSP等语言写
xmlHttpRequest对象概念
//XMLHTTP对象:js的内嵌对象=>向服务器发起请求
//XMLHTTP对象基于http协议
var xhr = new XMLHttpRequest;
//设置请求行
xhr.open(‘post’,‘8-1.php’);
//设置请求头,post请求必须有Content-Type
xhr.setRequestHeader(‘Content-Type’,’application/x-www-urlencoded’);
//设置请求主体
xhr.send(‘name=’zhangsan&age=123’);
//接收响应体,xhr是一个在浏览器和服务器之间传递的包
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
xhr.responseText;
}
}
XMLHttpRequest对象默认异步,支持同步
xhr.open('post','8-1.php','false');
enctype=”multipart/form-data”需要了解
$_FILES[‘photo’][‘tmp_name’]
<?php
// echo $_POST[];
// $file = $_FILES['file']['tmp_name'];
// print_r ($_FILES);
$fileOne = $_FILES['file'];//获取浏览器传过来的input的name为file的对象
print_r ($fileOne);
//打印的内容:Array ( [name] => 5.jpg [type] => image/jpeg [tmp_name] => D:\wamp\tmp\php50B0.tmp [error] => 0 [size] => 47094 ) D:\wamp\tmp\php50B0.tmp
$fileTwo = $fileOne['tmp_name'];//获取临时文件夹里面的key为tmp_name的包含图片路径的字符串
echo $fileTwo;
//将该路径($fileTwo)下面的文件移动到'./upload.jpg'
move_uploaded_file($fileTwo, './upload.jpg');
//打印
echo '<img src="./upload.jpg">';
?>