PHP页面之间传递参数的三种方法
php变量传递是非常常见的,比如一个简单的登录模块,首先需要创建登录表单,然后需要将登录表单页面的用户名和密码传递到登录处理页面进行判断用户名和密码是否正确,如果正确则进行登录成功的相关操作,如果错误就提示给用户账号密码有误。
以上所说的登录模块就设计到php页面与页面之间参数传递。本文章向大家介绍三种方法实现php变量从一个页面传递到另外一个页面。
- 第一种方法:$_POST
- 第二种方法:$_GET
- 第三种方法:$_SESSION
PHP $_POST实现参数传递
POST方法通过HTTP标头传输信息。该信息按照GET方法的说明进行编码,然后放入称为QUERY_STRING的标头中。
-
POST方法对要发送的数据大小没有任何限制。
-
POST方法可用于发送ASCII以及二进制数据。
-
POST方法发送的数据通过HTTP标头传递,因此安全性取决于HTTP协议。通过使用安全HTTP,可以确保您的信息是安全的。
-
PHP提供了$_POST关联数组,以使用POST方法访问所有已发送的信息。
例子:
test.php页面:
<form action="nextPage.php" method="POST">
<input type="text" name="email">
<input type="text" name="username">
<input type="submit" name="submit">
</form>
表单php处理脚本nextPage.php
$username = isset($_POST['username']) ? $_POST['username'] : "";
$email = isset($_POST['email']) ? $_POST['email'] : "";
echo "Username: ".$username;
echo "Email: ".$email;
输出:
Username: johndoe
Email: johndoe@gmail.com
PHP $_GET实现参数传递
php $_GET通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组。 注意:该数组不仅仅对 method 为 GET 的请求生效,而是会针对所有带 query string 的请求。
- $ _GET是超级全局变量。
- 在GET中发送的数据在URL中可见。
- 不适合发送敏感数据。
- 发送数据的限制(约2000个字符)
- 在GET中,您可以通过两种方式将信息发送到服务器:url和表单get
通过URL发送get信息:
http://www.test.com/index.htm?name1=value1&name2=value2
通过表单get传递信息:
<?php
if( $_GET["name"] || $_GET["age"] ) {
echo "Welcome ". $_GET['name']. "<br />";
echo "You are ". $_GET['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "GET">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
PHP $_SESSION实现参数传递
使用服务器端的session。理解session是一件很容易的事情。与cookie的不同在于它是服务器端的临时储藏室。session常被称作会话。
在page01中设置一个session。
<?php
session_start();
$_SESSION["temp"]=array('123','456','789');
?>
要想使用session,必须启动session。session_start();就是启动session的方法。一般要写在最前面。
第二个语句我定义了一个$_SESSION["temp"]数组,数组的名称是$_SESSION["temp"],里面存储了3个字符串。
在page02页面接受session。
<?php
session_start();
for($i=0;$i<3;$i++)
{
echo $_SESSION['temp'][$i].'<br />';
}
?>
首先启动会话。启动后我们在page01定义的变量已经可以使用了,不需要其他任何获取的操作。上面我们使用for循环将其内容输出。
注意事项
- 不要以为$_SESSION['temp'][$i]是一个二维数组,它是个一维数组,数组的名称是$_SESSION["temp"],虽然这个名称比较繁琐,数组的下标是'temp'
- 我们在写$_SESSION["temp"]时,temp加双引号或者单引号都是等价的。
- 这里我们定义会话变量时定义的是数组,也可以定义普通变量。
以上就是本文的全部内容,希望对大家的学习有所帮助。更多教程请访问码农之家
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?