注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

脚步轻轻

怕惊扰酣睡的梦境

 
 
 

日志

 
 

PHP传值及引用  

2010-08-03 14:24:23|  分类: 我的文档 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1),$_GET["string"]
$_GET变量是一个数组,内容是由HTTPGET方法发送的变量名称和值。
$_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。
<form action="welcome.php" method="get">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
当用户点击提交按钮是,发送的URL地址类似这样:
http://www.w3school.com.cn/welcome.php?name=Peter&age=37
welcome.php获取值
Welcome <?php echo $_GET["name"]; ?>.<br />
You are <?php echo $_GET["age"]; ?> years old!

在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

2),$_POST["string"]
$_POST变量是一个数组,内容是由HTTPPOST方法发送的变量名称和值。
$_POST 变量用于收集来自 method="post" 的表单中的值。从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
<form action="welcome.php" method="post">
Enter your name: <input type="text" name="name" />
Enter your age: <input type="text" name="age" />
<input type="submit" />
</form>
当用户点击提交按钮,URL不会含有任何表单数据:
http://www.w3school.com.cn/welcome.php
welcom.php获取值
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years old!

通过HTTP POST发送的变量不会显示在URL中。
变量没有长度限制。
由于变量不显示在 URL 中,所有无法把页面加入书签。

3),$_REQUEST["string"]
$_REQUEST[]具用$_POST[],$_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得。

4),Session
PHP Session变量用于存储有关用户会话的信息,或更改用户会话的设置。Session变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。
*在将用户信息存储到Session中之前,首先必须启动会话。
注释:session_start()函数必须位于<html>之前
<?php session_start(); ?>
<html>
<body>
</body>
</html>
*存储和取回Session变量
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>
输出:
Pageviews=1
*终结Session
如果您希望删除某些session数据,可以使用unset()或session_destroy()函数。
unset()函数用于释放指定的session变量:
<?php
unset($_SESSION['views']);
?>
您也可以通过session_destroy()函数彻底终结session:
<?php
session_destroy();
?>
注释:session_destroy()将重置session,您将失去所有已存储的session数据。

5),Cookie
Cookie常用于识别用户。Cookie是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送Cookie。通过PHP,能够创建和取回Cookie的值。
*setcookie()函数用于设置cookie。
注释:setcookie()函数必须位于<html>标签之前。
setcookie(name, value, expire, path, domain);
创建名为"user" 的cookie,把为它赋值 "Alex Porter"。规定此cookie在一小时后过期:
<?php
setcookie("user", "Alex Porter", time()+3600);
?>
<html>
<body>
</body>
</html>
注释:在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码(为防止URL编码,请使用setrawcookie()取而代之)。
*PHP的$_COOKIE变量用于取回cookie的值。
取回了名为"user"的cookie的值,并把它显示在了页面上:
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
使用isset()函数来确认是否已设置了cookie:
<html>
<body>
<?php
if (isset($_COOKIE["user"]))
  echo "Welcome " . $_COOKIE["user"] . "!<br />";
else
  echo "Welcome guest!<br />";
?>
</body>
</html>
*当删除 cookie 时,您应当使过期日期变更为过去的时间点。
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
注意:有时候浏览器会显示不支持cookie,原因是浏览器的隐私设置太高。

6),PHP引用文件
服务器端引用(SSI)用于创建可在多个页面重复使用的函数,页眉,页脚或者元素。
*服务器端引用(Server Side Includes)
通过include()或require()函数,您可以在服务器执行PHP文件之前在该文件中插入一个文件的内容。除了它们处理错误的方式不同之外,这两个函数在其他方面都是相同的。include()函数会生成一个警告(但是脚本会继续执行),而require()函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。
这两个函数用于创建可在多个页面重复使用的函数、页眉、页脚或元素。这意味着可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,只更新一个包含文件就可以了,或者当向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
*include() 函数
include() 函数可获得指定文件中的所有文本,并把文本拷贝到使用include函数的文件中。
例子1
假设您拥有一个标准的页眉文件,名为"header.php"。如需在页面中引用这个页眉文件,请使用 include()函数,就像这样:
<html>
<body>
<?php include("header.php"); ?>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>
例子2
现在,假设我们有一个在所有页面上使用的标准菜单文件。请看下面这个 "menu.php":
<html>
<body>
<a href="http://www.w3school.com.cn/default.php">Home</a> |
<a href="http://www.w3school.com.cn/about.php">About Us</a> |
<a href="http://www.w3school.com.cn/contact.php">Contact Us</a>
三个文件,"default.php"、"about.php" 以及 "contact.php" 都引用了"menu.php"文件。这是 "default.php" 中的代码:
<?php include("menu.php"); ?>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>
如果您在浏览器中查看 "default.php" 的源代码,应该类似这样:
<html>
<body>
<a href="http://evol1216.blog.163.com/blog/default.php">Home</a> |
<a href="http://evol1216.blog.163.com/blog/about.php">About Us</a> |
<a href="http://evol1216.blog.163.com/blog/contact.php">Contact Us</a>
<h1>Welcome to my home page</h1>
<p>Some text</p>
</body>
</html>
同时,当然,我们也将用相同的方法处理"about.php"和"contact.php"。通过使用引用文件,在您需要重命名链接、更改链接顺序或向站点添加另一张网页时,只要简单地更新 "menu.php" 文件中的文本即可。
*require()函数
require()函数与include()相同,不同的是它对错误的处理方式。
include()函数会生成一个警告(但是脚本会继续执行),而require()函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。
如果在您通过include()引用文件时发生了错误,会得到类似下面这样的错误消息:
PHP 代码:
<html>
<body>
<?php
include("wrongFile.php");
echo "Hello World!";
?>
</body>
</html>
错误消息:
Warning: include(wrongFile.php) [function.include]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Warning: include() [function.include]:
Failed opening 'wrongFile.php' for inclusion
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
Hello World!
请注意,echo 语句依然被执行了!这是因为警告不会中止脚本的执行。
使用 require() 函数运行相同的例子。
PHP 代码:
<html>
<body>
<?php
require("wrongFile.php");
echo "Hello World!";
?>
</body>
</html>
错误消息:
Warning: require(wrongFile.php) [function.require]:
failed to open stream:
No such file or directory in C:\home\website\test.php on line 5
Fatal error: require() [function.require]:
Failed opening required 'wrongFile.php'
(include_path='.;C:\php5\pear')
in C:\home\website\test.php on line 5
由于在致命错误发生后终止了脚本的执行,因此echo语句不会执行。
正因为在文件不存在或被重命名后脚本不会继续执行,因此我们推荐使用require()而不是 include()。
  评论这张
 
阅读(3474)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017