Home >Backend Development >PHP Tutorial >php在页面之间传送变量

php在页面之间传送变量

WBOY
WBOYOriginal
2016-05-19 12:16:031810browse

第一种:通过URL传送变量

例如:http://www.15597.com/news/list.php?id=123&lang=en

id=123就是新闻的参数,而lang=en就表示语言是英文,那么我们可以通过PHP的$_GET来取得id和lang的值

比如说要检索id的值 只需要$_GET['id'] 就能取到id的值 同理 lang也一样

通过URL传值的缺点:

1.每个人都能看到变量的值,所以用这种方式传输敏感数据并不是安全的.

2.用户可以随意修改URL中的值,并可以尝试不同的组合,使打开网站后显示出我们不希望显示出来的信息.

3.用户还可能使用保存已久的URL和内嵌其中的旧变量提取不正确的或陈旧信息.

第二种:通过会话中传送变量

如果说信息不那么敏感,或者信息是静态的,完全可以使用URL传值,但如果用户要传送用户名,密码等信息或者传送地址和电话号码等个人信息,那最好要在传送的时候保持私密性.例如可以使用COOKIE 或者SESSION.(个人想法,因为是重头重新学习~先说说SESSION).

会话是仅存在浏览器关闭前的一组临时变量.会话信息包括会话ID,被授权的个人是否登陆到站点上等.这些信息都是为PHP临时存储的以便在需要时使用.

如果强制用户使用COOKIE传送变量, 可以在PHP.ini里边设置  session.use_only_cookies=1

另外,在使用会话前应确保php.ini文件已经做好修改,即为:session.save_path显示有效路径.

接着只需要调用session_start()函数(写在本页的所有的输出语句前),在PHP中开始一个会话.

例如:文件1  test_1.php

<?php
session_start();
$_SESSION['username']='van';
$_SESSION['authuser']=1;
?>
<html>
<head>
<title>test1</title>
</head>
<body>
<?php
$myfavmovie=urlencode('Life of brian');
echo "<a href=\"test2.php?favmovie=$myfavmovie\">";
echo "Click here to see information about my favorite movie!";
echo "</a>";
?></body>
</html>

test2.php文件:

<?php
session_start();
if($_SESSION['authuser']!=1)
{
    echo "sorry,but you don't have permission to view this page!";
    exit();
}
?>
<html>
<head>
<title>
My Movie Site -<?php echo $_GET['favmovie'];?></title>
<body>
<?php 
echo 'welcome to our site,';
echo $_SESSION['username'];
echo '!<br/>';
?>
</html>

 
1 2  下一页
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn