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