【发布时间】:2019-06-28 19:48:51
【问题描述】:
我已经使用 PHP 和 MySQL 创建了一个登录页面,当我登录时,它会将用户登录详细信息发布到 LoginCheck.php 页面,如果它们不匹配,它将检查这些值与数据库中的值, 用户被返回到 login.php 页面,但如果他们是正确的,他们将被带到 home.php 页面。我现在希望能够在 home.php 页面上再次访问这些登录详细信息,但我找不到通过两个页面或两个不同页面发布的方法?当我尝试调用它们时,POST vales 在 home.php 页面上显示为空白。
下面的代码说明了我如何通过 HTML 将用户登录详细信息发布到 LoginCheck.php 页面,
<form method ="POST" action="LoginCheck.php">
<div class="form-input">
<b> User Name <b><br />
<input type="text" name="user" id="user" />
<br />
<b> Password <b><br />
<input type="text" name="password" id="password" />
<br />
<input type="submit" type="submit" value="Login" class="btn-login"/>
我也试过 AJAX 来传递这个值,但它也返回同样的错误
<script type ="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type ="text/javascript">
$(document).ready(function(){
$('#submit').click(function(){
alert("is working");
var user = $('#user').val();
var password = $('#password').val();
var userData = 'user=' + user + '&password=' + password;
$.ajax({
type: "POST",
url:'home.php',
data: userData,
success: function(){
alert("has passed data");
}
});
});
});
</script>
理想情况下,我希望在加载时从 LoginCheck 页面发布值,因为该页面对用户仅可见几秒钟。
当我通过 Home.php 中的 POST 调用它们时,我收到错误:通知:未定义索引:用户和通知:未定义索引:密码
【问题讨论】:
-
您再次访问用户登录详细信息的目的是什么?使用 POST 变量不是这里的方法,因为它们会随着每个新请求而被删除,也许看看PHP Sessions
-
您的 LoginCheck.php 页面接收 $_POST 数据。好的,它会检查数据库,如果没问题,我假设您使用 JavaScript 将用户转发到 Home.php。您可以在 GET (Home.php?user=someguy) 中添加值。但是使用会话要好得多,因为没有有效数据的通信,只有会话 ID。
-
我想从数据库中提取更多数据,WHERE UserLogin = user AND UserPassword = password 等等,所以我可以提取他们的信息供他们查看
-
然后在 Home.php 中执行此操作。不要在 LoginCheck.php 中执行此操作并传递该信息。将其保存在服务器中,不要相信您的客户端会从其浏览器向您发送有效数据(阅读黑客攻击!)。
-
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已在 CC BY-SA 3.0 license 下授予 SE 分发内容的不可撤销的权利(即无论您未来的选择如何)。根据 SE 政策,分发非破坏版本。因此,任何破坏行为都将被撤销。请参阅:How does deleting work? …。如果允许删除,则在帖子下方左侧有一个“删除”按钮。您可能需要使用浏览器,而不是移动应用程序。