php中两个网页之间的变量传送

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
在网站设计中,我们常常用到用户登陆这一方法,在登陆后,一般的网站都会根据不同的用户来给定不同的页面,在链接到该站的一个新的网页或者打开一张新网页时,我们也会看到用户的信息能够被记住,现在尤其常用的是,登陆后链接或打开该站的其它网页都会看到诸如"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,欢迎你的光临!";?>

时间: 2024-10-30 03:00:48

php中两个网页之间的变量传送的相关文章

如何在两个网页之间传递中文字符串?

问题描述 问题一:如何在两个网页之间传递中文字符串?我用了session不行,用类也访问不了,都是乱码.问题二:我想把一个textbox中的内容放到一个label里,但是textbox中的回车在label里却变成了空格.怎么办? 解决方案 解决方案二:原来label不换行.解决方案三:第一个页面"xxx.aspx?yyy="+Server.HtmlEncode("中文"):编码一下接收页面lbl1.text=Server.HtmlDecode(Request.Que

MFC怎样提取字符串中两个逗号之间 的数据

问题描述 MFC怎样提取字符串中两个逗号之间 的数据 比如字符串: "$GPGGA,024055.00,4002.2168,N,11618.1074,E,1,12,0.0,75.88,M," 怎样提取两个逗号之间的数据,例如"4002.2168"? 我试着使用例如 .Mid(17,14)函数,但是并不好用,因为字符串的长度经常会改变. 解决方案 先用CString的Find找到前后两个逗号的位置,然后在用Mid来截取.这样就可以适应动态变化的字符串 解决方案二: 参

Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法

  本文实例讲述了Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法.分享给大家供大家参考.具体如下: 看看下面的例子和效果吧 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 # -*- coding: utf-8 -*- from matplotlib.widgets import MultiCursor from pylab import figure, show, np t = np.arange(0.0, 2.0, 0.01) s1 = np.si

asp.net网页制作两个网页之间的本地链接如何链接,地址是什么?

问题描述 asp.net网页制作两个网页之间的本地链接如何链接,地址是什么? 新手学习asp.net网页制作时如何把两个网页链接起来,输入网页地址时怎么知道本地的地址是什么? 解决方案 如果位于同一级,那么直接写对方的文件名就可以了,无需完整路径.

java多线程中两个容器之间的同步

问题描述 java多线程中两个容器之间的同步 写了一个多线程的爬虫(对多线程不熟悉),但是每次队列中都有重复的元素,我把代码逻辑贴上来,大家帮我看一下,谢谢了: 在进程中: queue = LinkedBlockingQueue set = ConcurrentSkipListSet 在每个进程中使用了bfs bfs: while(!queue.empty()){ s = queue.poll() //...逻辑代码 set.add(s) //对s所有子状态扩展 for(son : s.sons

数据库中两张表之间的数据同步增加、删除与更新实现思路_MsSql

分别创建增加.删除.更新的触发器(Trigger)来达到两张表之间数据同步的目的. 1:数据同步增加: 如有两张表--A表和B表,创建触发器使当A表插入数据后B表也同步插入数据.其中B表插入数据的字段需要同A表中的字段相对应. 复制代码 代码如下: CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字段3 FROM INSERTED END

局域网中两台数据库之间操作数据

问题描述 有2台服务器,A,B.数据库DB1在A上,数据库DB2在B上.TABLE1在DB1上,TABLE2在DB2上.TABLE1字段:a,b,c,d,eTABLE2字段:a,b,c,dsum,esum我要写一个sqlserver的作业,实现以下功能:定时每天晚上9点将TABLE1中d,e按照a,b字段分类累加起来,存入TABLE2的对应字段中,怎么实现,尽量详细点,谢谢 问题补充:来个人帮帮忙,急求 解决方案 这个可以在程序中做,比如quartz定时任务就行解决方案二:使用quartz cr

c++基础-MFC、C++,不同类之间的变量传递

问题描述 MFC.C++,不同类之间的变量传递 MFC程序中, 不同类之间的变量是怎么传递的?比如我有两个类:1.2. 现在有两种情况:情况1:在里定义了一个 double 变量叫做 tempvalue 经过一些处理之后,我想把tempvalue的值传到使用,那么该如何传递此变量? 情况2:在里定义了一个Public变量叫做 pubvalue 现在同样想把此变量传到里,怎么该怎么办? 解决方案 你的问题,实在是看不懂.难道又是 CSDN 编辑器的原因?类之间交互,定义类的实例,然后通过实例的接口

Div CSS布局常见问题:两个层之间的间隙(IE 3px bug)

css|问题 这个问题普遍的困扰着新手朋友,不知道如何是好,想不出办法进行解决.其实这就是传说中的"IE 3px bug".解决的办法也比较简单.请看下面的示例说明. IE中两个层之间的间隙(IE 3px bug)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><