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

简介: 本文介绍了PHP中普通表单参数的提交获取、页面重定向的方法,并通过一个登录示例演示了表单参数的封装和页面跳转处理。

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看这个一定贼轻松”

相关文章
|
11月前
|
安全 搜索推荐 PHP
一款轻量级的PHP链接发布页面源码
一款轻量级的PHP链接发布页面源码
265 6
|
SQL 安全 数据挖掘
PHP表单的多方面应用与实践
通过本文的介绍,我们详细探讨了PHP表单的多方面应用与实践。从表单创建、数据验证、安全性、文件上传到多步表单处理,每个方面都有具体的示例和说明。通过掌握这些技术,开发者可以有效地处理表单数据,确保应用的安全性和可靠性。希望本文能为您在PHP开发中提供有价值的参考和指导。
170 2
|
XML 前端开发 JavaScript
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
本文介绍了在PHP中如何使用Ajax进行登录表单的数据提交,并利用jQuery的$.post()方法与后端通信,以及使用layer.msg进行前端提示。
php中Ajax的简单使用,登录表单调用Ajax判断是否正确登录利用layer.msg进行提示
|
搜索推荐 PHP UED
PHP中的异常处理与自定义错误页面
【8月更文挑战第33天】在PHP开发中,优雅地处理异常和错误是提升应用稳定性和用户体验的关键。本文将引导你理解PHP的异常处理机制,并教你如何创建自定义错误页面,以增强你的应用对错误的响应能力。从基本的错误类型到深入的异常捕获,再到实现个性化的用户提示,我们将一步步构建一个更加健壮的PHP应用。
169 4
|
6月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
410 0
PHP和Mysql前后端交互效果实现
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
666 0
|
11月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
516 17
|
12月前
|
关系型数据库 MySQL PHP
源码编译安装LAMP(HTTP服务,MYSQL ,PHP,以及bbs论坛)
通过以上步骤,你可以成功地在一台Linux服务器上从源码编译并安装LAMP环境,并配置一个BBS论坛(Discuz!)。这些步骤涵盖了从安装依赖、下载源代码、配置编译到安装完成的所有细节。每个命令的解释确保了过程的透明度,使即使是非专业人士也能够理解整个流程。
351 18
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
466 25