静安区教师招聘网:十天学会PHP/第八天:Sessions、发送电子邮件
来源:百度文库 编辑:偶看新闻 时间:2024/07/07 12:04:49
PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
目录
[隐藏]- 1 PHP Session变量
- 1.1 开始PHP Session
- 1.2 存储 Session 变量
- 2 PHP mail() 函数
- 2.1 PHP简易E-Mail
- 3 PHPE-mail注入
- 3.1 PHP 防止E-mail注入
- 4 参考来源
- 5 使用手册导航
PHP Session变量
- 当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于HTTP地址不能维持状态。
- 通过在服务器上存储用户信息以便随后使用,PHP session解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。
- Session 的工作机制是:为每个访问者创建一个唯一的id (UID),并基于这个UID来存储变量。UID 存储在 cookie 中,亦或通过URL进行传导。
开始PHP Session
- 在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
- 注释:session_start() 函数必须位于 标签之前:
- 上面的代码会向服务器注册用户的会话,以便您可以开始保存用户信息,同时会为用户会话分配一个 UID。
存储 Session 变量
- 存储和取回session 变量的正确方法是使用PHP $_SESSION 变量:
- 输出:
- Pageviews=1在下面的例子中,我们创建了一个简单的 page-view 计数器。isset() 函数检测是否已设置 "views" 变量。如果已设置 "views" 变量,我们累加计数器。如果 "views" 不存在,则我们创建 "views" 变量,并把它设置为 1:
- 终结 Session
- 如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
- unset() 函数用于释放指定的 session 变量:
- 您也可以通过 session_destroy() 函数彻底终结 session:
PHP 允许您从脚本直接发送电子邮件。
PHP mail() 函数
PHP mail() 函数用于从脚本中发送电子邮件。
- 语法
- mail(to,subject,message,headers,parameters)参数 描述
- to 必需。规定 email 接收者。
- subject 必需。规定 email 的主题。注释:该参数不能包含任何新行字符。
- message 必需。定义要发送的消息。应使用 LF (\n) 来分隔各行。
- headers 可选。规定附加的标题,比如 From、Cc 以及 Bcc。
- 应当使用 CRLF (\r\n) 分隔附加的标题。
- parameters 可选。对邮件发送程序规定额外的参数。
- 注释:PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数可用。所用的程序通过在 php.ini 文件中的配置设置进行定义。请在我们的 PHP Mail 参考手册阅读更多内容。
PHP简易E-Mail
- 通过 PHP 发送电子邮件的最简单的方式是发送一封文本email。
- 在下面的例子中,我们首先声明变量($to, $subject, $message, $from, $headers),然后我们在 mail() 函数中使用这些变量来发送了一封 e-mail:
PHP Mail Form
- 通过 PHP,您能够在自己的站点制作一个反馈表单。下面的例子向指定的 e-mail 地址发送了一条文本消息:
Email:
Subject:
Message:
"; }?>
- 例子解释:
- 首先,检查是否填写了邮件输入框
- 如果未填写(比如在页面被首次访问时),输出 HTML 表单
- 如果已填写(在表单被填写后),从表单发送邮件
- 当点击提交按钮后,重新载入页面,显示邮件发送成功的消息
PHPE-mail注入
- 首先,请看上一节中的PHP代码:
Email:
Subject:
Message:
"; }?>
- 以上代码存在的问题是,未经授权的用户可通过输入表单在邮件头部插入数据。
- 假如用户在表单中的输入框内加入这些文本,会出现什么情况呢?
someone@example.com%0ACc:person2@example.com%0ABcc:person3@example.com,person3@example.com,anotherperson4@example.com,person5@example.com%0ABTo:person6@example.com
- 与往常一样,mail() 函数把上面的文本放入邮件头部,那么现在头部有了额外的 Cc:, Bcc: 以及 To: 字段。当用户点击提交按钮时,这封 e-mail 会被发送到上面所有的地址!
PHP 防止E-mail注入
- 防止e-mail注入的最好方法是对输入进行验证。
- 下面的代码与上一节类似,不过我们已经增加了检测表单中email字段的输入验证程序:
Email:
Subject:
Message:
"; }?>
- 在上面的代码中,我们使用了PHP过滤器来对输入进行验证:
- FILTER_SANITIZE_EMAIL 从字符串中删除电子邮件的非法字符
- FILTER_VALIDATE_EMAIL 验证电子邮件地址
- 您可以在我们的 PHP 过滤器这一节中阅读更多有关过滤器的内容。
【字谜】十八天打两字
法国影片 第八天
佛教三界二十八天 指什么
为什么二月份只有二十八天呢?
什么是佛教的“三界二十八天”?
哪里有法国电影《第八天》免费版?
谁有电影第八天的字幕
求法国电影《第八天》下载地址
避孕药服用后月经提前十八天是否正常?
jori sessions
埋线双眼皮第八天,左眼眼角比右眼肿
老人脑外伤出血颅内没骨折水肿期已过住院第八天出现各脏器功能不全不会呼吸第十天抢救无效去世为什吗?
Workshops concurrent sessions
Saved sessions 是什么意思?
Skype Sessions什么意思
半年的时间可以把ASP,JSP,PHP学会吗?
一年的时间可以把ASP,JSP,PHP学会吗?
半年的时间可以把ASP,JSP,PHP学会吗?
对编程没基础怎么可以快速学会PHP?
谁知道ASP PHP这些东东怎么快速学会,谢谢
第一天学PHP的一个问题
头上有伤缝了5针已经到第八天拆线后能洗头吗?
我和他分手今天是第八天,为何他现在又给我发信息。
我和他分手今天是第八天,为何他现在又给我发信息。