zoukankan      html  css  js  c++  java
  • LAMP--PHP实验(三)在页面之间传送变量 及遇到问题解决

    在页面之间传送变量有四种方式:在URL中传送变量,通过会话传送,通过cookie传送,使用HTML窗体传送。

    实际使用中应根据具体情况,选择最合适的方法。

    1. 通过URL传送变量

    在页面之间传送变量的第一种方法是使用页面的URL。如:

    http://www.myart.com/paint/fresco.php?id=12345

    请求为fresco.php程序选择ID号为12345的文件。

    通过URL传送变量有几个缺点:

    用户可以看到变量的值,用这种方法传送敏感数据不安全;

    用户可以随意修改URL中的变量值,并可以尝试不同的组合,可能会使网页显示用户未被授权的内容,造成信息泄露等。

    实验:

    用这种方式传送的变量可以通过特定的数组$_GET来访问。

    (1) 修改上一节的程序moviesite.php,删掉原来定义常量的一行代码,并修改如下高光显示行:

     (2) 新建movie1.php

     (3)在浏览器中打开该文件,http://192.168.182.128/movie1.php,但是浏览器报HTTP Error 500错误。

            在php的安装目录中/etc/找到php.ini文件,在其中找到display_errors,默认情况下是display_errors = Off,把Off修改为On,保存关闭文件,然后重启apache。

            再次访问页面,PHP会在页面上把错误信息显示出来。

        

        原来是语法错误,认为从moviesite开始是无效的,判断是因为双引号导致。

       修改代码,加上转义字符后OK。

      

     

    点击该链接:

    2. 在会话中传送变量

    会话基本是仅存在于浏览器关闭之前的一组临时变量。会话信息包含会话ID、被授权的个人是否登录到站点上等。这些信息都是为PHP程序临时存储的,以便在需要时使用。

    每个会话都指定了一个唯一的会话ID。会话ID可以通过URL传送,也可以使用cookie来传送,通过cookie传送比较安全,因为cookie不可见。但如果不支持cookie,备选方法就是使用URL。

     在使用会话前,需检查一下php.ini文件,session.save_path所指的路径是否为存在的目录。

    session.save_path = "/tmp"

    接着,只需调用session_start()函数,在PHP中开始一个会话。

    实验:传送用户名

    (1)修改movie1.php文件,增加如下高亮显示内容。

      (2)修改moviesite.php文件,进行如下修改:

      (3)访问http://192.168.182.128/movie1.php

     

    单击该链接,显示:

      说明:

     所有的PHP会话信息都在页面的最顶部,在HTML代码之前。

     在给浏览器发送任何输出,使用任何会话变量之前,必须使用函数session_start()。最好把session_start()放在脚本的开头。

    3.用cookie传送变量

    Cookie 是一个保存在客户机中的简单的文本文件, 这个文件与特定的 Web 文档关联在一起, 保存了该客户机访问这个Web 文档时的信息, 当客户机再次访问这个 Web 文档时这些信息可供该文档使用。

    与会话相比,在cookie中存储信息的优点是持久性。会话存储信息在浏览器关闭时就全部丢失了,而cookie可以在客户机上保存很长时间,这个时间可以由开发人员来指定。

    要设置cookie,可以使用setcookie()函数。

    setcookie(name,value,expire,path,domain,secure)

    实验:

    (1)修改movie1.php文件:

      

     (2)修改moviesite.php:

     (3)关闭浏览器窗口(以防使用了上面的实验中的会话),重新打开窗口,访问http://192.168.182.128/movie1.php,在打开的页面中点击链接,可以看到:

     4.用窗体传送信息

    前面的三种方法,每次都需要网站创建者提供全部用户信息,当需要用户提供信息时,使用窗体就更方便了。

    窗体使网站真正成为交互式的网站,可以获取用户信息,并把这些信息发送到某个地方,以进行显示、处理和存储等,最后再把结果发送回用户。

    窗体在HTML中编码,并保存在HTML中。窗体由四个部分组成:

    • 开标记行:用<form>表示。这个标记行必须包含action属性和method属性。

              action 属性给窗体提供另一个程序的URL或路径,使该程序可以从窗体中提取并取出数据。
              method属性(GET或POST)告诉窗体如何取走数据(一般用POST)

    • 窗体的内容,包括输入字段:用户输入信息的区域。必须包含type和name属性,还可以包含其他属性,如maxlength。
    • 动作按钮或图像,一般用于提交/清理信息,用户定义的按钮在技术上也认为是输入类型。
    • 闭标记行:用</form>表示。

    实验步骤:

    (1)修改movie1.php文件:

        

     (2)修改moviesite.php文件:

      

     (3)新建login.php文件:

     (4)浏览器 打开这个login.php页面:

     (5)输入用户名:Joe,密码:123456,点击“Submit”。进入如下页面:

     

     (6)点击链接,又打开如下页面:

     遇到问题:

    刚开始完成文件的编辑,进行到步骤(5)时,点击提交后,页面显示: Parse error: syntax error, unexpected end of file in ...

    后面是movie1.php,意思是movie1.php文件最后一行解析错误。回头检查了好几遍之后,才发现在else 后面的语句中少了一个 } 。     

    真是得处处小心,出现问题了,首先耐心排查代码,而不是到处发求助信。

  • 相关阅读:
    马哥学习笔记二十一——LVS DR模型
    马哥学习笔记二十——集群系列之LVS调度方法及NAT模型
    CCNA学习笔记九——访问控制列表(ACL)
    CCNA学习笔记八——动态路由协议
    CCNA学习笔记七——路由概述
    CCNA学习笔记六——网络层协议
    WPF点补间、拟合回归直线
    WPF三种基本触发器与【与或】逻辑触发器
    C#与mysql做ASP.NET网页数据库查询速度测试
    VS2013单元测试及代码覆盖率分析--Xunit
  • 原文地址:https://www.cnblogs.com/April-cloud/p/12244552.html
Copyright © 2011-2022 走看看