Форма входа в 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;
}
}
?>