php普通表单参数提交及获取,页面的重定向和一个登录小demo
php普通表单参数提交及获取
php提交数据有2种方式:
- 1、get方式,在给form标签添加
method="get"
属性进行表单提交,提交的数据可通过“$_GET”来获取到; - 2、post方式,在给form标签添加
method="post"
属性进行表单提交,提交的数据可通过“$_POST”来获取到。
tip:php提供了很多预定义变量,其中包括$_GET、$_POST、$_REQUEST、$_SERVER、$_COOKIE、$_ENV、$_SESSION
等。这些预定义变量的数据类型都为数组。
post和get的区别:
从安全性上来讲,get提交的数据在url栏可以看见,而post提交的数据是不可见的,因此post更安全。
从提交原理上讲, get提交是参数一个一个的提交,post提交是所有参数作为一个整体一起提交。
从提交数据的大小上来讲, get提交一般不超过255个字节(对url长度的限制
),post提交的大小取决于服务器(php.ini配置文件中的post_max_size决定
)。
从灵活性上讲,get很灵活,只要有页面的跳转就可以传递参数,post不灵活,post提交需要有表单的参与。
php页面路径
php中不像其他语言那样“/”表示根目录,代之以$_SERVER[‘DOCUMENT_ROOT’]
,其它则相同:…/表示向上级目录。./表示当前目录。假如现在a/b/c/s.php要调用根目录下的 /bb/s2.txt,则:
或者采用相对路径“…/…/…/bb/s2.txt”,表示向上返回到b再向上到a再向上到根目录然后再到bb下找到s2.txt。
-
1.绝对路径
绝对路径是指目录下的绝对位置,直接到达目标位置。例如:d:/www/index.html。只要页面中的目标文件位置不变你的链接还是指向正确的URL。在Web开发的时候一般很少使用绝对路径,因为你本地的环境和服务器上的路径可能不一样。
-
2.相对路径
相对路径,就是相对于当前文件的目标文件位置。例如:Web服务器文件夹php下面有index.html和image.jpg两个文件。index.html文件里引入image.jpg,只要这两个文件的相对位置没有变(也就是说还是在文件夹php下面),那么无论上传到Web服务器的哪个位置,这个路径都是正确的。在相对路径里面,./表示同级目录,…/表示上级目录。
优点:当你整个项目移动时,你项目内文件之间的相对关系没有改变,之前设置的路径任然是准确的
页面重定向
javaScript页面重定向
使用javaScript重定向很简单,就是一个函数,在传递请求的时候也可以封装参数进去,就是手动拼接url请求的一个过程。
window.location.replace("xxx.php|xxx.html")
// 或者
window.location.href = url("xxx.php|xxx.html");
// 这两个函数是等效的,任选其一即可
还是不太清楚的话,可以看看这个例子
首先有一段请求 http://localhost:81/login.php
当你以get方式或者超链接传递用户名参数的时候,请求会变成这样 http://localhost:81/login.php?userName=小白&password=123
就是跳转页面的时候以 ?
开头拼接第一个参数,其余参数使用&
拼接,每个参数和参数值使用=
来说明参数和参数值的对应关系。
所以javaScript页面传递参数的请求可以这样写:
window.location.replace("xxx.php?参数名1=参数值1&参数名2=参数值2...");
// 或者
window.location.href = url("xxx.php?参数名1=参数值1&参数名2=参数值2...");
// 这两个函数是等效的,任选其一即可
php页面重定向
php实现重定向页面跳转的方法:可以利用header()函数来进行重定向。header()函数用于向客户端发送原始的HTTP报头。使用方法如:header('location:xxx.php');
。
语法格式:
header(string,replace,response_code);
函数参数:
string 必需。规定要发送的请求头的字符串。
replace 可选。指示该请求头是否替换之前的请求头,或添加第二个请求头。默认是 true(替换)。false(允许相同类型的多个请求头)。
http_response_code 可选。把 HTTP 响应代码强制为指定的值。
小例子-表单参数的封装和页面重定向
例子:
先创建一个网页的首页,用于提交表单数据的php页面.index.php
<form method="get" action="login.php">
账号:<input type="text" name="uname"><br>
密码:<input type="password" name="pwd"><br>
<input type="submit" value="提交">
</form>
然后创建一个登录的页面 login.php(假设我们已经存在的用户只有 admin 0000,如果是其他的账号和密码则一律不许登录):
<?php
// 获取表单提交的参数
$userName = $_GET['uname'];
$password = $_GET['pwd'];
// 判断一下登录的账号 是否是 admin 0000
// 因为对于php来说,字符串如果是一个数字的话其底层会将其转换为数字类型
$flag1 = boolval($userName=="admin"&&$password==0000);
// 如果flag1为真,则跳转数据显示页面
if($flag1){
// 手动的将请求头封装一下,后面使用session,cookie...就不用手动拼接这个url了,哈哈哈
// 1.先拼接两个传递的参数,回忆以下url格式
$param1 = "?userName=".$userName;
$param2 = "&password=".$password;
// 2.拼接完整的url
$url_str = "location:http://localhost:81/show.php".$param1.$param2;
// 3.使用php提供的header函数进行页面重定向
echo $url_str;
header($url_str);
}
// flag1为假则说明,账号不存在,重新返回首页登录
if(!$flag1){
$url_str_back = "location:http://localhost:81/index.php";
header($url_str_back);
}
?>
最后在创建一个数据显示页面show.php
<?php
// 获取页面发送的请求参数
$uname = $_GET['userName'];
$upwd = $_GET['password'];
// 数据显示
echo "<h3>登录成功</h3>";
echo "<p>账号:$uname</p><p>密码:$upwd</p>";
?>
暂时就这些啦,文件上传表单,以及session.cookie会话技术,后面的笔记会详细的展开。
tip: “学过javaweb的uu看这个一定贼轻松”
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/105155.html