PHP入门笔记-GET&POST

表单提交与接收

js提交信息的方式分为get和post
提交给服务器的信息分别使用全局变量$_GET和$_POST 调用
查看手册

get

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://127.0.0.1/jquery/ajax/get.php" method="get">
    <input type="text" name="userName">
    <input type="password" name="userPawd">
    <input type="submit" value="提交">
</form>
</body>
</html>
<?php
print_r($_GET);         //$_POST 和$_GET以字典的形式提交

echo $_GET["userName"];//单独调用
echo $_GET["userPwd"];
?>

get方法提交的地址栏和接收到的信息:
http://127.0.0.1/jquery/ajax/get.php?userName=lm&userPawd=123
Array ( [userName] => lm [userPawd] => 123 )

可以看到get方法提交的信息被直接写到地址栏,所以我们还是不要用它提交密码。


post

相比get方法post方法的提交只需要将method改为post

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://127.0.0.1/jquery/ajax/get.php" method="post">
    <input type="text" name="userName">
    <input type="password" name="userPawd">
    <input type="submit" value="提交">
</form>
</body>
</html>

get

post

虽然信息被隐藏,但依然被放置于请求头部

<?php
print_r($_POST);
echo $_POST["userName"];
echo $_POST["userPwd"];
?>

所以用类似的方法就可以调用

异同

  • 相同点
    都是将数据提交到远程服务器
  • 不同点
    • 数据存储位置不同
      GET将数据存放于URL后
      POST将数据放于请求头

    • 数据大小限制不同
      get对数据大小有限制(2000字符)
      post对数据没有大小限制

post文件上传

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<form action="post.php" method="post">
    <input type="file" name="upFile"><br>
    <input type="submit"value="提交">
</form>

</body>
</html>
<?php

print_r($_POST);

?>

用使用接收密码的方式接收文件只接收到了文件名
Array ( [upFile] => nine.png )

查看手册

标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。

标签的 type=“file” 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。


修改一下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<form action="post.php" method="post" enctype="multipart/form-data">
    <input type="file" name="upFile"><br>
    <input type="submit"value="提交">
</form>

</body>
</html>

结果连文件名都接收不到了
Array ()
说明当上传文件时不能使用 P O S T 接 收 观 察 全 局 变 量 , 其 中 有 一 个 _POST接收 观察全局变量,其中有一个 POST_FILES,我们尝试一下

<?php
print_r($_POST);
?>

结果为:
Array ( [upFile] => Array ( [name] => nine.png [type] => image/png [tmp_name] => F:\tool\wamp\tmp\phpD8BF.tmp [error] => 0 [size] => 902241 ) )
可见字典中保存了:文件名、文件类型、存放位置、错误数、文件大小
但因为我们没有指定存放位置,所以文件被存放到tmp(临时文件)中,因为这个文件并没有被使用,自然我们在临时文件夹下也找不到他,所以我们要把临时文件换个位置保存

move_uploaded_file(file,newloc)
move_uploaded_file() 函数把上传的文件移动到新位置

参数描述
file规定要移动的文件。
newloc规定文件的新位置
<?php
print_r($_FILES);

$fileInfo = $_FILES["upFile"];
$fileName = $fileInfo["name"];
$filePatch= $fileInfo["tmp_name"];

move_uploaded_file($filePatch,"./source/".$fileName);
?>

post上传大文件

web服务器默认对文件大小存在限制,当上传文件过大时可能出错
配置文件存放于
wamp\bin\apache\Apache2.2.21\bin\php.ini
常用配置

file_uploads = On       //是否允许上传文件
upload_max_filesize = 2M//上传文件最大大小
post_max_size = 8M      //post方法上传文件最大大小
max_execution_time = 30 //脚本最长执行时间
max_input_time = 60     //提交数据时间限制
memory_limit = 128M     //最大内存消耗

更改后的设置在服务器重启后才会生效

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值