php同一个界面传递,PHP如何将上一页的变量传递给下一个页面?

这个问题看起来似乎很简单,但是我没有找到一个好方法来解决它。

照理说我可以在第一页创建一个如下所示的变量:

$myVariable = "Some text"

并且设置表单的action属性等于"Page2.php"。那么在Page2.php中,我应该如何访问之前在页面定义的那个变量呢?我知道我其实可以通过PHP中的session变量来进行访问,但是我认为这样将使我定义过多的简单字符串,而我希望我仅仅需要传递一个简单的字符串(文件名)就能访问先前页面定义的变量。

我应该怎么做才能实现我想获得的效果?

回答

HTML / HTTP是无状态的,换句话说,您在上一页上执行或者看到的操作与当前页面是完全断开连接的。除非您选择执行某些操作,比如使用sessions,cookie或GET / POST变量。sessions和cookie都非常容易使用,而使用sessions比使用cookie更安全。需要注意的是,虽然使用sessions更安全,但是并不意味着会完全安全。

如果您使用的是Session,您可以这样使用:

//On page 1

$_SESSION['varname'] = $var_value;

//On page 2

$var_value = $_SESSION['varname'];

需要记住的是,在尝试访问$ _SESSION数组以及在任何输出发送到浏览器之前,在这两个页面上运行session_start()函数。

如果您使用的是Cookie,您可以这样使用:

//One page 1

$_COOKIE['varname'] = $var_value;

//On page 2

$var_value = $_COOKIE['varname'];

Sessions和Cookies之间的最大区别是:如果您使用Sessions,那么变量的值将存储在服务器上,而如果您使用Cookies,则变量的值将会存储在客户端上。我认为很难找到任何使用cookies而不是使用Sessions的好理由,除非您想要使数据在一段时间内之间持续存在,但即使如此,最好还是将变量存储在DB(数据库)中,并根据用户名或ID对变量进行检索。

如果您使用的是GET / POST变量:

第一种方法是您可以在到下一页的链接中添加如下变量:

Page2

这将使您的页面中创建一个GET变量。

而另一种方法是在表单中包含一个隐藏字段,提交到第二页:

然后在第二页中进行如下操作:

然后在第二页中进行如下操作:

//Using GET $var_value = $_GET['varname']; //Using POST $var_value = $_POST['varname']; //Using GET, POST or COOKIE. $var_value = $_REQUEST['varname'];

如果您想使用post方法,那么您只需要更改表单的method这个属性的值。虽然get和post两者同样不安全,但是显然get容易被入侵。

事实上,当我第一次开始写PHP的时候,我就会用代码捕获每个request请求(除了session data)。可能刚开始您会觉得有些区难,但是一旦您习惯了这种方法之后,它其实很简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值