Показывать сообщение об ошибке, только если введенное значение неверно - PullRequest
0 голосов
/ 02 мая 2020

Я сейчас работаю над небольшим веб-сайтом, и я столкнулся с проблемой, что всякий раз, когда я go на сайте, появляется сообщение об ошибке.

Как сделать так, чтобы оно появлялось только после форма отправлена ​​и значения неверны?

То есть код:

<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if($_POST['username'] and $_POST['userpasswd'])
{
    require './classes/_connection.php';
    require './classes/_account.php';

    $account = new Account();

    $username = $_POST['username'];
    $password = $_POST['userpasswd'];

    $username = trim($username);
    $password = trim($password);

    $_SESSION["username"] = $username;

    try
    {
        $login = $account->loginWebsite($username, $password);
    }
    catch (Exception $e)
    {
        echo $e->getMessage();
        die();
    }

    if ($login)
    {
        header ("LOCATION: ./dashboard.php"); 
    }
    else
    {
        // show the alert message here      
    }
}
}
else
{
}
?>
<html lang="en">

<head>
    <title>my site</title>
    <!--- META -->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!--- CSS --->
    <link rel="stylesheet" href="./css/style.css">
    <link rel="stylesheet" href="./css/bootstrap.css">
    <link rel="stylesheet" href="./css/messagebox.css">
</head>

<body>

<div class="vertical-center">
<div class="container">
    <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12 d-flex align-items-center justify-content-center">
            <div class="d-flex align-items-center justify-content-center text-center loginArea">
                <div class="container">
                    <form action="" method="post">
                        <div class="alert">
                            <span class="closebtn" onclick="this.parentElement.style.display='none';">&times;</span>
                            Wrong username or password
                        </div>      
                        <div class="col-xs-12 col-sm-12 col-md-12">
                            <input class="inputrow" required type="text" size="40" maxlength="250" name="username" placeholder="Username" autofocus>
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-12">
                            <input class="inputrow" required type="password" size="40"  maxlength="250" name="userpasswd" placeholder="Password">
                        </div>
                        <div class="col-xs-12 col-sm-12 col-md-12">
                            <input class="inputbutton" type="submit" value="Login">
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

Речь идет о:

                            <div class="alert">
                            <span class="closebtn" onclick="this.parentElement.style.display='none';">&times;</span>
                            Wrong username or password
                        </div>  

Как я могу сделать так, чтобы оно появлялось только после php, если утверждение ложно?

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Вы можете изменить свой код, как показано ниже

else
{
    // show the alert message here  
    ?>

   <div class="alert">
   <span class="closebtn" onclick="this.parentElement.style.display='none';"> 
   &times;</span> Wrong username or password
   </div> 

   <?php      
}
0 голосов
/ 02 мая 2020

Вы должны написать это в конце своего кода:

<?php } ?>

и изменить свой последний код на:

else {

Полный фрагмент: https://pastebin.com/raw/yCK6M2v8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...