我有一个登录表单,它从用户名,密码和提交按钮发送3个帖子值。但是我的表单处理器有3个页面,一个是 validation.php ,它验证字段第二个是 read.php ,它根据db检查发布的值,第三个是登录。 php 这是登录成功的结果。成功时,所有人都分别重定向。这里的问题是,当我尝试从 read.php (重定向页面)而非 validate.php (操作页面)中的表单访问用户发布的值时,我收到错误未定义的索引。
答案 0 :(得分:1)
我真的不明白你为什么要做这些重定向,但如果你想让数据更持久,你可以使用会话变量,因为$_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
如果您希望保持代码清洁,可以随时include the other files或者OOP approach。
答案 1 :(得分:-1)
你应该只做一个能完成所有工作的页面。这似乎不是一个脚本太复杂,所以我建议将everthing放在一起。 您没有提供任何代码,因此我将向您展示一个通用示例。我只是输入它而不重读,所以它不是纯粹的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
}