php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05

导读:本篇文章讲解 php学习笔记-普通表单参数提交获取及页面的重定向和一个登录小demo-day05,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!