В моем коде error и error1 работает правильно, но во время error2 он не отображается. И error, error1 и error2 должны отображаться в одном и том же месте в зависимости от того, как пользователь обращается с полем электронной почты и пароля. Ошибка 2 должна отображаться зеленым цветом.
login.php
$email = $_POST['email'];
$password = $_POST['password'];
if ($email!=''&&$password!='')
{
$q = "select * from user where uemail='$email' and password='$password'";
$result = mysqli_query($con, $q);
$num = mysqli_num_rows($result);
if ($num == 1){
Header( 'Location: home.php');
exit;
}else{
$_SESSION['error']= "Incorrect email or password!";
$_SESSION['error1']= "Try again later!";
Header( 'Location: index.php');
exit;
}
}else{
$_SESSION['error2']= "Please enter in box";
Header( 'Location: index.php');
exit;
}
index.php
<?php
session_start();
if (isset($_SESSION['error'])){
echo '<div id = "display">' . $_SESSION['error'] . '</div><script
type = "text/javascript">
function showIt() {
document.getElementById("display").style.visibility = "hidden";
}
setTimeout("showIt()", 3000);
function showIt() {
document.getElementById("display").style.cssText = "color: green";
document.getElementById("dislpay").style.visibility = "visible";
document.getElementById("dislpay").innerHTML = "'.$_SESSION["error1"].'";
}
</script>';
}
unset ($_SESSION['error1']);
unset ($_SESSION['error']);
session_destroy ();
?>
<?php
session_start();
if (isset($_SESSION['error2'])){
echo '<div id = "display">' . $_SESSION['error2'] . '</div>';
}
unset ($_SESSION['error2']);
session_destroy ();
?>
Ваш код выглядит правильно, но вам нужно инициализировать session_start()
на каждой странице.
Session_Start (); должен присутствовать на каждой странице, на которой вы хотите использовать сеансы