0

我有一个登录表单,它从用户名、密码和提交按钮发送 3 个帖子值。但是我的表单处理器有 3 个页面,一个是验证字段的 validation.php,第二个是read.php,它根据 db 检查发布的值,第三个是login.php,它是登录成功的结果。全部成功后分别重定向到对方。这里的问题是,当我尝试从read.php(重定向页面)而不是validate.php(操作页面)中的表单访问用户发布的值时,我收到未定义索引的错误。

4

2 回答 2

1

我真的不明白您为什么要进行所有这些重定向,但是如果您想让数据更加持久,您可以使用会话变量,因为$_POST超全局仅针对当前请求设置。

第一个文件.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 方法

于 2012-09-01T01:55:44.860 回答
-1

你应该只做一页来完成所有的工作。脚本似乎并不太复杂,所以我建议将所有内容放在一页上。您没有提供任何代码,所以我将向您展示一个一般示例。我只是输入它没有重读所以它不是纯粹的 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
}
于 2012-09-01T01:56:16.090 回答