php怎么用别页面变量?php中页面之间传递变量方法总结

六月 07, 2019 | views
Comments 0

在实际的网站开发当中,我们经常会遇到在一个页面定义的变量,在另外一个页面也要使用,这就需要我们在页面之间传递变量.下面介绍一些常用的方法:

一、用form表单中的hidden隐藏域。这种方法就是把待传递的变量用表单的方式再次传送,比如在用户登陆后,把他的信息如$username、$id等等信息用表单发送到下一张网页,当然,很多情况,是诸如text、option等等框体不想再被看到的话,可以采用隐藏的输入域。下面是一个实例,假设$username是经过上页为验证身份发送到本页并且在本页经过验证的变量,想传递到下一页中去,那么可以建立文件test4.PHP:

  1. <?$username="张明";?>  
  2. <form method="post" action="test5.php">  
  3. <input type="hidden" name="username" value="<?echo $username?>">  
  4. <input type="submit" name="submit" value="看看">  
  5. </form> 

test5.php:

<?echo "你好,$username,欢迎光临php自学网!";?>

打开apache服务器,输入http://127.0.0.1/test4.php在页面的按钮上点击,会发现新出的网页上$username的值已经传送过来了。

当然这种方法的弱点是很明显的,它还要再使用一个表单,而且在test5.php的网页上想要刷新的话还要重新发送,这显然是不太友好的。

二、使用session。后来,我查找了一些关于session的文章,觉得这时传递变量的一种非常好的方法。下面通过举例子来说明:

建立一个新文件test6.php: 

  1. <?session_start(); //初始化一个session  
  2. session_register("username"); //注册一个session变量  
  3. $username="张明"//要传递的变量值  
  4. echo "<a href=test7.php>去看看</a>";  
  5. ?>  

test7.php:

<?session_start(); //初始化一个session

echo "你好,$username,欢迎光临php自学网!";?> //显示传递过来的变量

使用这种方法的时候要注意:<?session_start();?>应该放在文件的最前面,即"<?"前面不应有任何内容,包括空格,这是我调试多次未成功找出的原因。

这个变量只能在当前打开的浏览器中传递,若要在新打开的窗口中也能传递,刚要按下面的方法来做:

文件:test8.php 

  1. <?session_start();  
  2. session_register("username");  
  3. $username="张明";  
  4. echo "<a href=test7.php?$a=".session_id()." target=_blank>去看看</a>"//将当前的session的id值传给下一个窗口。  
  5. ?>  

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,欢迎你的光临php自学网!";?>

总结:以上只是一些常用的方法,还有很多的方法,如可以使用数据库,memcache等等.在此不做过多介绍



zend