POST方式提交表单的问题
程序A显示一个表单,如:
<form method=post action="b.php">
<input type=text name=in><input type=submit>
</form>
b.php
<?php
session_start();
$in=$_POST['in'];
?>
<form method=post action="c.php">
<input type=text name=in value='<?echo($in)?>'><input type=submit>
</form>
c.php
<?
session_start();
echo($_POST['in']);
?>
<a href="javascript:history.back()">back</a>
此时返回会提示"警告: 网页已经过期 "
什么原因?怎么解决?
问题点数:20、回复次数:12Top
1 楼beyond141(xu)回复于 2005-03-22 17:27:40 得分 2
采用"post"方式,后退就会出现这样的问题。
将所有的“method=post”改为method=get
相应的$_POST改为$_GETTop
2 楼lawyu(雨淋漓)回复于 2005-03-22 17:32:25 得分 2
session导致的问题
b.php和c.php里去掉这句:session_start();
在php4.3.4以上的版本这句已经没有任何意义,当你用$_SESSION[]这句注册session的时间会自动session_start,或者在配置文件里设session_auto_startTop
3 楼lawyu(雨淋漓)回复于 2005-03-22 17:34:38 得分 2
或用
<a href="javascript:location.href='b.php'">back</a>
代替
history.back()也可以解决Top
4 楼GaoXX(窜天猴网络建筑队头子)(中窜集团)回复于 2005-03-22 17:39:15 得分 2
加在开头
header("Cache-control: private");Top
5 楼antidestiny(阿水)回复于 2005-03-22 22:25:32 得分 0
当session.auto_start=0 时,使用SESSION变量时则无法取到,建议还是使用session_start()Top
6 楼antidestiny(阿水)回复于 2005-03-22 22:33:57 得分 2
$_SESSION does not mimic this behavior and requires session_start() before use.Top
7 楼uhopenet(冰火)回复于 2005-03-23 13:38:55 得分 0
忘记了一点,我是希望从c.php回到b.php时能够保留从a.php到b.php时传递的数据Top
8 楼uhopenet(冰火)回复于 2005-03-23 14:43:02 得分 0
GaoXX(我即老高,老高即我)
您的方法我试验了,不好用Top
9 楼uhopenet(冰火)回复于 2005-03-24 09:07:23 得分 0
UPTop
10 楼roninchina()回复于 2005-04-20 22:58:27 得分 5
我想这样解决:每一次post值都赋给$_SESSION,后面用xx=$_SESSION,
我也正做类似的东西,还没那么多页面,也没怎么验证,你试试。
<form method=post action="b.php">
<input type=text name=in><input type=submit>
</form>
b.php
<?php
session_start();
$_SESSION["in"]=$_POST['in'];
?>
<form method=post action="c.php">
<input type=text name=in value='<?echo($_SESSION["in"]=)?>'><input type=submit>
</form>
c.php
<?
session_start();
echo($_POST['in']);
?>Top
11 楼mikespook(CSDN == 吹死大牛)回复于 2005-04-20 23:33:28 得分 5
http://www.chinaunix.net/jh/27/151995.html
老帖,依然实用~~这可是CU上的精华帖~~~Top
12 楼uhopenet(冰火)回复于 2005-04-27 13:05:27 得分 0
有没有更好的解决方法Top




