从登录页面接收POST数据,但表单操作转到其他页面

时间:2016-10-12 07:55:38

标签: php forms email post input-field

目前我有一个登录脚本,其表格是login.php,用户可以在此页面登录,服务器检查他/她的电子邮件&密码组合。

现在我有另一个页面,用户可以输入另一个表单,名为employees.php,在这个页面中有一个叫做输入字段的电子邮件,这是禁用的,所以用户只能自己打电话给自己生病了。

<form  class="form" action="absent.php" method="get">

<p class="text">Email:</p>
<input type="text" maxlength="25" name="name" placeholder="<?php echo $email?>" disabled required>

<p class="text">Reason:</p>
<textarea style="width: 350px" maxlength="100" name="reason" required></textarea>

<p class="text">Date:</p>
<input type="date" name="date" required value="<?php echo date('Y-m-d'); ?>" / min="<?php echo date('Y-m-d'); ?>">          

<br><br><br>
<input type="submit" value="Send">

<input type="hidden" name="email" value="<?php echo $email?>" />

这很好用,我目前唯一遇到的问题是,我无法使电子邮件与用户登录电子邮件相关联。

session_start();


if( isset($_SESSION['user_id'])){
    $email = 'placeholder@test.com';
}

else {
    header("Location: nologin.php");
}

这是我在employees.php顶部使用的代码。

这是我在login.php中使用的表单代码。

<form action="login.php" method="POST">

<input type="email" placeholder="Enter email" name="email" required>
<input type="password" placeholder="and password" name="password" required>

<input type="submit" value="Log In">
</form>

那么,如何在用户使用他/她的帐户登录时自动填写电子邮件地址,并在employees.php的不可编辑输入字段中进行操作?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您必须先从数据库中获取电子邮件并将其另存为会话变量。 e.g

<?php

    require_once 'inc/config.php';

    if(isset($_POST['login'])) { //if the login button was clicked

        $username = mysql_real_escape_string($_POST['username']); //
$password = mysql_real_escape_string($_POST['password']);

        $selUser = "SELECT * FROM users WHERE login ='${login}' AND password = '${password}'";
        $runUser = mysqli_query($conn, $selUser);
        $checkUser = mysqli_num_rows($runUser);
while($row = $runUser) {
 $_SESSION['email'] = $row['email']; //grabs the email from the database and stores it in a session variable
}
        if($checkUser > 0) {
            $_SESSION['user_id'] = $username;
            echo "<script>window.open('employee.php?login=1','_self')</script>";

}

else {

    echo "<script>alert('Email or password is not correct, try again!')</script>";
    header("Location: login.php?err=1");

    }

}

?>

其他脚本将如下所示

<?php
session_start();


if( isset($_SESSION['user_id'])){
    $email = $_SESSION['email'];
}

else {
    header("Location: nologin.php");
}
?>