黑帽联盟

 找回密码
 会员注册
查看: 1451|回复: 0
打印 上一主题 下一主题

[php] PHP页面间参数传递的四种方法详解

[复制链接]

895

主题

38

听众

3329

积分

管理员

Rank: 9Rank: 9Rank: 9

  • TA的每日心情
    难过
    昨天 22:31
  • 签到天数: 1652 天

    [LV.Master]伴坛终老

    我们定义page01.php和page02.php两个php文件,将page01中的内容想办法传递到page02,然后供我们继续使用。
    --------------------------------------------------------------------------------
    第一种:
    使用客户端浏览器的cookie。cookie很容易理解,就是一个临时文件,可以把它看成一个储藏室,浏览器在浏览的过程中记录一些信息,就暂时存放在这里。
    在page01中设置一个cookie。
    1. <?php
    2.        setcookie('mycookie','黑帽');
    3. ?>
    复制代码
    就是这么简单,我们已经创建cookie完毕。
    我们定义了一个变量mycookie,它的值是字符串'黑帽'。
    我们可以随便给cookie变量起名字,可以定义多个cookie变量。

    在page02页面接受cookie。
    1. <?php
    2.      $cnblackhat = $_COOKIE['mycookie'];
    3.      echo $cnblackhat;
    4. ?>
    复制代码
    我们使用$_COOKIE[]提取cookie中的变量mycookie,将它的值付给$cnblackhat。然后简单的输出。
    好了,到这里使用cookie从页面之间传递参数完毕。
    --------------------------------------------------------------------------------


    第二种:
    使用服务器端的session。理解session是一件很容易的事情。与cookie的不同在于它是服务器端的临时储藏室。session常被称作会话。
    在page01中设置一个session。
    1. <?php
    2. session_start();
    3. $_SESSION["temp"]=array('123','456','789');
    4. ?>
    复制代码
    要想使用session,必须启动session。session_start();就是启动session的方法。一般要写在最前面。
    第二个语句我定义了一个$_SESSION["temp"]数组,数组的名称是$_SESSION["temp"],里面存储了3个字符串。

    在page02页面接受session。
    1. <?php
    2.      session_start();
    3.      for($i=0;$i<3;$i++)
    4.      {
    5.              echo $_SESSION['temp'][$i].'
    6. ';
    7.      }
    8. ?>
    复制代码
    首先启动会话。启动后我们在page01定义的变量已经可以使用了,不需要其他任何获取的操作,这里不同于cookie。
    下面我们使用for循环将其内容输出。
    【不要以为$_SESSION['temp'][$i]是一个二维数组,它是个一维数组,数组的名称是$_SESSION["temp"],虽然这个名称比较繁琐,数组的下标是'temp'】
    【我们在写$_SESSION["temp"]时,temp加双引号或者单引号都是等价的。】
    【这里我们定义会话变量时定义的是数组,也可以定义普通变量,就像cookie里面讲到的】
    --------------------------------------------------------------------------------


    第三种:
    使用表单来传递。
    page01.php这样写:
    1. <form action="page02.php" method="post">
    2.      <input type="text" name="cnblackhat" />
    3.      <input type="submit" name="submit" value="提交" />
    4. </form>
    复制代码
    表单内的属性action直接指定此表单内容传递到哪个页面。method指明了传递的方式。post代表使用消息传递,就像我们发短信一样。

    page02.php这样写:
    1. <?php
    2.      $heimao = $_POST['cnblackhat'];
    3.      echo $heimao;
    4. ?>
    复制代码
    用$_POST[ ]获取传递过来的变量值。这个变量名cnblackhat在表单的input标签的name属性里定义。
    然后将其传递给另外一个变量$heimao。这样我们就可以输出了。直接输出也是可以的,echo   $_POST['cnblackhat'];
    【如果哪里不明白,请参考本版块的另外一个详细介绍表单提交的帖子】
    【method的值也可以是get】
    --------------------------------------------------------------------------------


    第四种:
    使用超链接传递参数。我们上网的很多操作都是点击超链接在网页之间跳来跳去。点的同时同样可以传递参数。
    page01.php这样写:
    1. <?php
    2. $var = 'I love you !';
    3. ?>
    4. <a href="<?php echo "page02.php?new=".$var ?>">get</a>
    复制代码
    定义一个变量$var。
    超链接a的href属性里写明要跳转到page02页面。后面加一个问号,一个自己定义的变量new【此名称在page02页面要使用】,new的值就是我们想传递的$var。

    page02.php这样写:
    1. <?php
    2.      echo   $_GET['new'];
    3. ?>
    复制代码
    使用$_GET[ ]获取new的值,然后就可以输出或做其他用途。
    这时的浏览器地址栏可以直接看到new变量和它的值。
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    勿忘初心,方得始终!
    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部