为了账号安全,请及时绑定邮箱和手机立即绑定

如何将值 POST 到两个不同的 PHP 页面

如何将值 POST 到两个不同的 PHP 页面

PHP
POPMUISE 2021-09-05 21:02:52
我已经使用 PHP 和 MySQL 创建了一个登录页面,当我登录时,它将用户登录详细信息 POST 到 LoginCheck.php 页面,在该页面中它会检查这些值与数据库中的值,如果它们不匹配,则用户返回到 login.php 页面,但如果它们是正确的,它们将被带到 home.php 页面。我现在希望能够在 home.php 页面上再次访问这些登录详细信息,但我找不到通过两个页面或两个不同页面发布信息的方法?当我尝试调用它们时,POST 值在 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 页面 POST 值,因为该页面仅对用户可见几秒钟。我收到错误:注意:未定义索引:用户和注意:未定义索引:密码当我通过 Home.php 中的 POST 调用它们时
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

我同意 GrumpyCrouton 的评论。发布到一个以上的页面是很难环绕我的头。. . 用户的浏览器会一分为二吗?另一种方法是 POST 到您的 LoginCheck.php,然后该页面会将 $_POST 数据保存到一个或多个 $_SESSION 值中,以便后续页面使用它们。

if ($authenticated) $_SESSION['user'] = $_POST['user'];


查看完整回答
反对 回复 2021-09-05
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

正如其他人所说,发布到两个不同的页面不是登录检查后检索数据的方式。我们通常使用$_SESSION. 阅读文档


话虽如此,我不知道您使用的是 PDO 还是 MySQli,因此我将仅使用 MySQli 为例。


这是简单/干净的方法:


表单.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"/>

</form>

登录检查.php


    if (!empty( $_POST )) {

    if ( isset( $_POST['user'] ) && isset( $_POST['password'] ) ) {


    //post variables

    $user = $_POST['user'];

    $password = $_POST['password'];


    //check the database if there are records matching user info

    $stmt_invalidatepass = $conn->prepare("SELECT password,id FROM users 

    WHERE username=? ORDER BY dateCreated DESC LIMIT 1");

    $stmt_invalidatepass->bind_param("s",$user); 

    $stmt_invalidatepass->execute(); 

    $resultvvvid = $stmt_invalidatepass->get_result();

    $rowvalida = $resultvvvid->fetch_assoc();

    $checkPassword = $rowvalida['password'];


    //verify password

    $hash1_verified = password_verify($password, $checkPassword);


    if( ($hash1_verified==false)){


    //oops no result redirect to login.php


    }else{


    //found user

    //set in session

    $_SESSION['user_id'] = $rowvalida['id'];


    //redirect to home.php

    header("Location: home.php");

    exit();

    }


}

}

主页.php


// Always start this first

session_start();


if (!isset($_SESSION['user_id'])) {


    header("Location: login.php");

    exit();


} else {


//do user queries here


}


查看完整回答
反对 回复 2021-09-05
  • 2 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信