我有一个登录表单,它从用户名、密码和提交按钮发送3个post值。但我的表单处理程序有三个页面,一个是验证字段的validation.php,第二个是根据db检查发布的值的read.phpogin.php。一旦成功,所有人都会各自转向对方。这里的问题是,当我试图从read.php(重定向页面)而不是validate.php
我真的不明白你为什么要进行所有这些重定向,但如果你想让数据更持久,你可以使用会话变量,因为$_POST
超级全局只为当前请求设置。
firstfile.php
<?php
session_start();
$_SESSION['posted_data'] = $_POST;
其他文件
<?php
session_start();
var_dump($_SESSION['posted_data']);
然而,正如已经说过的,你可能真的想重新考虑做所有的请求。
更新
除了你会丢失数据之外,你还需要多次(不必要的)请求来简单地汇总表单。唯一应该发生的重定向是在你完成所有工作后重定向到成功页面。有关详细信息,请参阅:http://en.wikipedia.org/wiki/Post/Redirect/Get
如果你想保持代码的整洁,你可以总是包括其他文件,或者采用OOP方法。
您应该只做一个页面来完成所有工作。这似乎不是一个太复杂的剧本,所以我建议把所有的东西放在一页上。您没有提供任何代码,所以我将向您展示一个一般示例。我只是在没有重读的情况下输入了它,所以它不是纯粹的PHP语法,只是精神:
<?php
$login=$_POST['login'];
$pwd=$_POST['pwd'];
$dbcheck = mysql_fetch_array(mysql_query("SELECT COUNT(1) FROM table WHERE user =$login and pwd = $pwd"))
if($dbcheck[0] > 0) {
//Login success
//Setup your session variables, cookies, etc
//Then you can do your redirect here
} else {
//Page for wrong login
}