• php两页间传变量(转发,备查)


    php中两个网页之间的变量传送
    2008-02-18 22:22
    在网站设计中,我们常常用到用户登陆这一方法,在登陆后,一般的网站都会根据不同的用户来给定不同的页面,在链接到该站的一个新的网页或者打开一张新网页时,我们也会看到用户的信息能够被记住,现在尤其常用的是,登陆后链接或打开该站的其它网页都会看到诸如"XXX,晚上好"之类的问候语,这些当然都是在登陆后变量传送的结果,在我做个人主页的过程中,曾尝试几种变量传送的方法,现写出来与大家探讨一下。
    一、这是最笨的方法,也是我最初没有接触session、cookie想出来的方法。这种方法就是把待传递的变量用表单的方式再次传送,比如在用户登陆后,把他的信息如$username、$id等等信息用表单发送到下一张网页,当然,很多情况,是诸如text、option等等框体不想再被看到的话,可以采用隐藏的输入域。下面是一个实例,假设$username是经过上页为验证身份发送到本页并且在本页经过验证的变量,想传递到下一页中去,那么可以建立文件test4.php:
    <?$username="张小明";?>
    <form method="post" action="test5.php">
    <input type="hidden" name="username" value="<?echo $username?>">
    <input type="submit" name="submit" value="去我的空间看看">
    </form>
    建立test5.php:
    <?echo "你好,$username,欢迎你的光临!";?>
    打开apache服务器,输入http://127.0.0.1/test4.php在页面的按钮上点击,会发现新出的网页上$username的值已经传送过来了。
    当然这种方法的弱点是很明显的,它还要再使用一个表单,而且在test5.php的网页上想要刷新的话还要重新发送,这显然是不太友好的。

    二、使用session。后来,我查找了一些关于session的文章,觉得这时传递变量的一种非常好的方法。下面通过举例子来说明:
    建立一个新文件test6.php:
    <?session_start(); //初始化一个session
    session_register("username"); //注册一个session变量
    $username="张小明"; //要传递的变量值
    echo "<a href=test7.php>去看看</a>";
    ?>
    建立test7.php:
    <?session_start(); //初始化一个session
    echo "你好,$username,欢迎你的光临!";?> //显示传递过来的变量
    使用这种方法的时候要注意:<?session_start();?>应该放在文件的最前面,即"<?"前面不应有任何内容,包括空格,这是我调试多次未成功找出的原因。
    这个变量只能在当前打开的浏览器中传递,若要在新打开的窗口中也能传递,刚要按下面的方法来做:
    文件:test8.php
    <?session_start();
    session_register("username");
    $username="张小明";
    echo "<a href=test7.php?$a=".session_id()." target=_blank>去看看</a>"; //将当前的session的id值传给下一个窗口。
    ?>
    文件test7.php
    <?session_start();
    echo "你好,$username,欢迎你的光临!";?>

    三,通过cookie。还是通过例子说明:
    建立文件test9.php
    <?SetCookie("username","张小明");//把username设置到cookie中去
    echo "<a href=test5.php target=_blank>去看看</a>";?>
    文件test5.php
    建立test5.php:
    <?echo "你好,$username,欢迎你的光临!";?>

    以上是我在设计网页及参考一些文章得出的方法,这里注重的时介绍传递方法,而不是session和cookie的介绍,两者具体的使用方法别的高手已经介绍多次,我就不在这里班门弄斧了。如果文章发表后我又发现错误的话,会在下面的"发表意见"栏中给出改正方法,谢谢浏览。
  • 相关阅读:
    2013年元旦新年好
    2012第52周三阴雨
    2013第1周四雪
    2013年元旦新年好
    2013第1周三阴冷
    2012第52周日晴冷
    2012周六补记
    PHP怎么调用其他类的方法
    面向对象复习笔记(一)
    Laravel 引入自定义类库或第三方类库
  • 原文地址:https://www.cnblogs.com/dahaij/p/1493805.html
Copyright © 2020-2023  润新知