按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
数前不能有任何(如HTML)的输出。
如果你的PHP 程序中需要输出 HTML (如要使用echo 等输出什么东西时 )前,也需要使用header()函数,那
么,要先用header()函数输出所有的头信息,否则会出错。
可能会返回的错误消息:
“Warning: Cannot send session cookie headers already sent。。。”或者“Cannot add header information
headers already sent。。。”。
头信息参数string 的形式:常见的头信息有下面三种之一,并只能出现一次。
Location: URL (掌握)
Content…Type: xxxx/yyyy
Status: nnn xxxxxx
header(“Location:URL”)
作用:服务器直接向浏览器发送一个网络地址为URL 的页面。
举例:
作用类似于JavaScript 的window。location=URL,但后者是浏览器向URL 中的服务器请求这个URL,该服务器
受到这个请求后,将该服务器上地址为 URL 的页面返回给浏览器,整个过程是请求…响应(两段),前者仅响应
(一段)。
〃Y 数学函数库
floor … 向下取整
语法格式:float floor ( float value )
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float ,因为 float
值的范围通常比 integer 要大。
例 floor() 例子
ceil … 向上取整
语法格式:float ceil ( float value )
返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float ,因为 float
值的范围通常比 integer 要大。
例 ceil() 例子
(2 )用户自定义函数
定义的语法格式
尽量在被调用之前定义
可放在包含文件中,用包含文件即可实现定义。
10。session 的应用
(1)session 的概念
1)使用session 的意义:
HTTP 是一种无状态会话(请求/响应),没记性的协议。每次会话结束,所有的数据都将不复存在。例如你又从
这页转到了别的页,HTTP 也就忘记了你刚才的状态。如何使它记住个别客户(浏览器)的状态,PHP 提供了
一种session 变量,可实现持续状态的会话。
session 变量可以让我们继续使用以前的页面数据,好像服务器已经记住了或者说跟踪了我。因此,可以在PHP
程序文件之间传递数据(数值、字符串、数组和对象)。当用户在应用程序的页间进行跳转时,session 变量不
会释放(在设定的session 存活期时间内,一般为180 分钟,可自行在php。ini 设定session。cache_expire 的值)。
由此可见,session 变量存储的是个别浏览器端专用的数据。当用户浏览Web 站点时,使用session 变量可以为
每一个用户保存指定的数据。任何存储在用户session 变量中的数据可以在用户调用下一个页面时取得。
实际应用中,在身份认证、操作监控、客户消费偏好跟踪等许多需要持续会话的场合,应用广泛。
2 )基本原理:
服务器使用唯一的session 标志码字符串命名的小文件,来存储跟踪客户数据,每个客户一个文件,每个文件名
均不相同,每个客户的数据均集中存储在他那个session 变量文件中。每个客户的session 变量存储在一个单独
的以标志码命名的文本文件中,如sess_d8c46f13d7d346e53a621bb5e82eeb13 (无扩展名,可用记事本打开)。
PHP 讲义 第 51 页 共 90 页
…………………………………………………………Page 52……………………………………………………………
session 文件的内容:四维数组
从上图可见,有关某一个客户的 session 变量都被集中到了一起,形成了一个四维数组。该数组中每个元素的下
标(键名)就是变量名,其余三位分别是该元素的类型、长度、具体的值。
这些文件在服务器设定的目录下。
(2 )session 变量的使用
准备工作:
①必须建立或指定一个文件夹供PHP 存放session 变量文件。
该文件夹路径、名字任意(一般为tmp )。
如:d:tmp 或d:abcpqrxzy
②要告诉PHP 这个存放session 变量文件的路径:在PHP 配置文件php。ini 中
设置session。save_path= d:/tmp 或其他文件夹,注意这里用正斜线/ ,是Unix 系统中目录的写法。
在程序中使用:通过专门的函数进行。
一般的顺序和使用的函数如下:
①session_start——初始化 session 。
语法: boolean session_start();
本函数初始化一个新的session,若该客户数据已在 session 之中,则连上原session 。本函数返回值均为 true 。
注意:在程序中,该函数的使用必须在任何向浏览器输出之前。
②session_register——注册新的session 变量
语法: boolean session_register(string name);
本函数增加一个变量到当前客户的session 变量数组中。参数 name 即为欲加入的变数名。成功则返回 true 值。
③象使用一般PHP 变量一样使用session 变量,
如echo s_name。”;你好!”等等。
④不使用时,基于安全的原因,应及时释放,最简洁的方法顺序如下:
首先,unset掉每个session变量元素
unset(s_name)或unset (_SESSION''varname'')
删除名为s_name 的那个session 变量。
或说,删除了键名为s_name 的那个session 数组中的元素。
本质:销毁变量的内存空间
注意:不要 unset(_SESSION) ,这样将会使 _SESSION 不能发挥作用。
然后,destroy 掉session 文件
session_destroy()——删除session 文件
语法: session_unset()
本质:删除变量的外部存储空间
例:x。php
y。php
PHP 讲义 第 52 页 共 90 页
…………………………………………………………Page 53……………………………………………………………
第二节 PHP 编程要点
1。流程控制结构
(1)基本结构if,switch,while ,for ,break,continue 同C 语言,详细用法参见有关资料,此处略。
(2 )exit 和die
exit('string message') :输出消息message 后终止脚本的执行。若省略message,则什么也不输出就终止了脚
本的执行,这时,可以不带括号。
例如:用于调试,查看a 中的内容是否为空串,是则中断执行,同时输出消息
if(a=””)
exit(‘a 是空串!’);
die 是exit 的别名,作用同exit。
注意:exit 和die 都是用于控制语句流程的关键字,不是函数,因此不具备返回值的能力。
(3)包含文件
require(“要包含的文件”)
include(“要包含的文件”)
两者具有相同的目的:包括并运行指定文件,类似于C 程序中包含头文件的作用。
若要包含的文件找不到,include() 产生警告后继续执行,而 require() 则会报错并停止。因此,要想在丢失文
件时停止处理页面,那就需要用 require() 。
通常使用require()。
注意
①require()和include()都是语言结构,用于流程控制的,不是函数。
②由于它们包含进来的是文件(一般是多条代码的集合),为保证主程序的逻辑流程正确,在条件语句中使用必
须将其放在语句组中(花括号中)。
例:基本的 require() 例子
2。 PHP 嵌入HTML 或JavaScript 中
使用四种不同的PHP 语言标记符,嵌入PHP 代码。
PHP 讲义 第 53 页 共 90 页
…………………………………………………………Page 54……………………………………………………………
其中两种: 和 … 总是可用的。
另两种是
短标记: 在 php。ini 配置文件的指令 short_open_tag=on 时可用。
ASP 风格标记,在 php。ini 配置文件的指令 asp_tags =on 时可用。
例子:
(1)
(2 )
echo '有些编辑器如frontpage 不支持这种标记格式';
(3)