注册完成后,使注册页面登录

时间:2017-01-06 13:06:36

标签: php

我有这个注册表单,用户填写并发送到另一个页面,在我的数据库中添加信息。有没有办法在人员注册后我可以将用户名和密码发送到登录页面并自动登录? 这是用户注册后添加到我的数据库中的代码:

require "connection.php";

session_start();

if ($_POST['firstname'] != "" && $_POST['lastname'] !="" && $_POST['email'] != "" && $_POST['username'] !="" && $_POST['password'] !="")
{
    $firstname = $_POST['firstname'];
    $lastname = $_POST['lastname'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $username = $_POST['username'];

    $query1="SELECT * FROM users WHERE username = '$username' ";
    $username = mysqli_real_escape_string($conn,$username);
    $password = mysqli_real_escape_string($conn,$password);
    $firstname = mysqli_real_escape_string($conn,$firstname);
    $lastname = mysqli_real_escape_string($conn,$lastname);
    $email = mysqli_real_escape_string($conn,$email);




    $result = mysqli_query($conn,$query1)
    or die(mysqli_error($conn));  

    if(mysqli_num_rows($result) != 0)
    {
        $_SESSION['er_firstname'] = $firstname;
        $_SESSION['er_lastname'] = $lastname;
        $_SESSION['er_email'] = $email;
        header("Location: index.php/?a=1");
    }



    else {
        unset($_SESSION['er_firstname']);
        unset($_SESSION['er_lastname']);
        unset($_SESSION['er_email']);
    $query = "INSERT INTO users (firstname, lastname, password, username) VALUES ('$firstname','$lastname','$email','$password', '$username')";


    $data = mysqli_query($conn,$query)or die(mysqli_error($conn));

    header("Location: index.php/?a=2");

    }

}


?>

这是我的登录代码,当我用户通常输入用户名和密码登录时:

<?php 

session_start();
$username = $_POST['username']; //either username or email
$password = $_POST['password'];


if($username=="" || $password == "")
{
    header("Location: index.php");

}

require "connection.php";

if(!empty($username) && !empty($password)) {

    $username = mysqli_real_escape_string($conn,$username);
    $password = mysqli_real_escape_string($conn,$password);


    $query = "SELECT * FROM users WHERE username = '$username' OR email = '$username' AND password = '$password'";
    $data = mysqli_query($conn,$query);


    if($data) {
        if (mysqli_num_rows($data) == 1 ) {
            $row = mysqli_fetch_assoc($data);
            $_SESSION['id'] = $row['id'];
            $_SESSION['username'] = $row['username'];

            header("Location: http://home");

        }
        else {
            header("Location: index.php/?i=1");
            exit();
        } }

    else {
        die("Query failed");
    }

}
else {
    $_SESSION['message'] = "Please enter a email and password";
    header("Location: index.php");
    exit();
}

有没有办法将add.php发送到login.php,我尝试将add.php标题位置切换到login.php,但它没有用。

1 个答案:

答案 0 :(得分:1)

您可以绕过整个登录屏幕。您只需将登录逻辑应用于注册处理即可。

这将涉及根据它的外观添加三行代码。

        $_SESSION['id'] = mysqli_insert_id($conn);
        $_SESSION['username'] = $row['username'];

        header("Location: http://home");