一、用form表单中的hidden隐藏域。这种方法就是把待传递的变量用表单的方式再次传送,比如在用户登陆后,把他的信息如$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,欢迎光临php自学网!";?
打开apache服务器,输入在页面的按钮上点击,会发现新出的网页上$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,欢迎光临php自学网!";? //显示传递过来的变量
使用这种方法的时候要注意:?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,欢迎你的光临php自学网!";?
总结:以上只是一些常用的方法,还有很多的方法,如可以使用数据库,memcache等等.在此不做过多介绍.
通过session来储存
?php
session_start();
$_SESSION['username'] = "userName";
?
在其它页面直接取出就行了
?
session_start();
echo $_SESSION['username'];
?
通过url传向其它页面传递参数
other.php?user=xxx
或在php重定向到其它页面时
$username = "xxx";
$home_url = 'logIn.php?user='.$username;
header('Location:'.$home_url);
其它页面用$_GET["user"]来接收
3.通过表单向其它页面传送参数
其它页面用$_POST["user"]来接收
使用数据加密,或者使用https协议来传输数据。
数据加密建议使用自己的加密方式,加密的key是关键,这个一定不能泄露,两个网站的服务器都需要有这个key,发送数据时发送方加密数据,将密文传输给接收方,接收方同样用key解密即可。只要key不泄露,就算数据被人拦截,也是加密过的密文,通常没有Key是解不开的。
https协议可以自动为传输数据加密,不过就要求https协议证书了,这个数字证书是需要申请的。
第一种办法:
一般web开发的通用的页面之间传递方法主要有post,get,其实,这个也是http协议内容里面,所有的web开发语言都实现这个,php也不例外,php获取其他页面传递过来的参数可以如下:
$var1 = $_POST['var1 '];
$var1 = $_GET['var1 '];
$var1 = $_REQUEST['var1 '];(获取get或者post的数据)
第二种办法:
另外一种通用的办法:可以通过服务端的session来存储并获取数据
第三种办法:
通过php的全局变量来传递参数