Форма входа в PHP, чтобы направить пользователя на новую страницу

Я создал форму входа на HTML, которая запрашивает определенное имя пользователя + пароль. (Пользователь = привет, пройти = пока)

Я хочу, чтобы моя форма PHP проверяла правильность ввода пользователя (Hello & Bye) и, если это так, направляла пользователя на страницу с именем " next.html "

Вот моя форма login.html

<html>

        <h1> <font color="red">Log In To Add Entry!</font></h1>

<form name="myForm" action="login.php" method="post">

<fieldset >
<legend>Login</legend>
<input type='hidden' name='submitted' id='submitted' value='1'/>

 <label for='username' >UserName*:</label>
<input type='text' name='username' id='username'  maxlength="50" /> 

<br> <label for='password' >Password*:</label>
<input type='password' name='password' id='password' maxlength="50" />

<input type='submit' name='Submit' value='Submit' />

</fieldset>
</form>
</html>

Мой логин.php:

<?php

function Login()
{
    if(empty($_POST['username']))
    {
        $this->HandleError("UserName is empty!");
        return false;
    }
    
    if(empty($_POST['password']))
    {
        $this->HandleError("Password is empty!");
        return false;
    }
    
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);
    
    if(!$this->CheckLoginInDB($username,$password))
    {
        return false;
    }
    
    session_start();
    
    $_SESSION[$this->GetLoginSessionVar()] = $username;
    
    return true;


    
}

?>

и моя страница next.html, куда я хочу, чтобы пользователь пошел, если введен правильный пароль + пользователя:

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml">

        <title>Entry page</title>
    </head>
    <body>
        <h1> <font color="red">Add an entry to Joe's Blog!</font></h1>




</html>

3 ответа

Использовать заголовок ("Location: http://www.example.com/"); перенаправить пользователей. Измените свой код на это:

<?php

    function Login()
    {
        if(empty($_POST['username']))
        {
            $this->HandleError("UserName is empty!");
            return false;
        }

        if(empty($_POST['password']))
        {
            $this->HandleError("Password is empty!");
            return false;
        }

        $username = trim($_POST['username']);
        $password = trim($_POST['password']);

        if(!$this->CheckLoginInDB($username,$password))
        {
            return false;
        }

        session_start();

        $_SESSION[$this->GetLoginSessionVar()] = $username;
        header("Location: next.html");

        return true;

}

?>

В login.php просто добавьте выше;

if( Login() ) {
     header("Location: next.html"); exit();
}

Если вы просто хотите использовать эту информацию для входа, замените:

if(!$this->CheckLoginInDB($username,$password))

С:

if( $username == "hello"  && $password == "bye" )

Вы можете попробовать это:

<?php

    function Login() {

    if(empty($_POST['username']))
    {
        $this->HandleError("UserName is empty!");
        return false;
    }

    if(empty($_POST['password']))
    {
        $this->HandleError("Password is empty!");
        return false;
    }

    $username = trim($_POST['username']);
    $password = trim($_POST['password']);


    if ('hello' == $username && 'bye' == $password) {

        session_start();

        $_SESSION[$this->GetLoginSessionVar()] = $username;
        header("Location: next.html");
        return true;

    }
}

?>
Другие вопросы по тегам