【问题标题】:Embed Php in Html在 HTML 中嵌入 PHP
【发布时间】:2018-11-06 03:44:19
【问题描述】:

我有一个代码可以检查用户名和密码是否匹配并存在于数据库中,我在它下面有一个 html 文档,它是登录表单。问题是如果用户的登录凭据不正确,则语句 Invalid credentials 会打印在屏幕顶部,我希望它位于 Html 中的用户名框上方。请帮忙 :)

if($username == $dbUserName && $password == $dbPassword) {
    $_SESSION['username'] = $username;
    $_SESSION['id'] = $userId;
    header('Location: user.php');
} else {
    echo "<b><i>Invalid credentials</i><b>";
}

【问题讨论】:

  • 将文本保存在变量中,并将变量输出到代码中所需的位置。

标签: php html embed


【解决方案1】:

将您的错误消息保存到一个变量中,然后将其打印到您想要的任何位置。

你的 php 代码:

if($username == $dbUserName && $password == $dbPassword) {
    $_SESSION['username'] = $username;
    $_SESSION['id'] = $userId;
    header('Location: user.php');
} else {
    $login_error =  "<b><i>Invalid credentials</i><b>";
}

在您的 html 部分:

<div id="log_err"> <?= $login_error; ?> </div>
<input type="text" name="username">

【讨论】:

    【解决方案2】:

    如上所述,您可以使用函数处理错误,但要非常简单明了,为错误定义变量,并将其放在用户名输入上方,如下所示:

    PHP

    if($username == $dbUserName && $password == $dbPassword) 
    {
    $_SESSION['username'] = $username;
    $_SESSION['id'] = $userId;
    header('Location: user.php');
        }
    else 
    {
        $error =  "<b><i>Invalid credentials</i><b>";
    }
    

    HTML

    <?php echo $error = " "; ?>
    <input type="text" name="username" />
    

    但可以肯定的是,您需要为错误定义函数,如果发生任何错误返回 false,例如:

        function LoginErrors($username , $password) 
        {
        if(strlen($username) < 4 )
         {
        echo "you must choose at least 4 character for username!";
        return false;
    }
        if(strlen($password) < 6)
         {
        echo "you must choose at least 6 character for password!";
    return false;
         }
    return true;
        }
    

    PHP

       if($username == $dbUserName && $password == $dbPassword) 
        {
    if(LoginErrors($_POST['username] , $_POST['password]) == true )
    {
     $_SESSION['username'] = $username;
        $_SESSION['id'] = $userId;
        header('Location: user.php');
    }
    }
    

    HTML

    <?php LoginErrors(); ?>
    <input type="text" name="username" />
    

    【讨论】:

    • 感谢您的关心。我一定会在我的注册页面中添加这些错误。
    【解决方案3】:

    你可以把整个东西放在一个函数中,然后这样调用它:

    function check_credentials() {
        if($username == $dbUserName && $password == $dbPassword) {
            $_SESSION['username'] = $username;
            $_SESSION['id'] = $userId;
            header('Location: user.php');
        } else {
            echo "<b><i>Invalid credentials</i><b>";
        }
    }
    

    您可以在表单中任意位置调用您的函数。

    【讨论】:

      猜你喜欢
      • 2014-12-16
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2017-02-15
      • 2019-02-11
      • 2012-08-30
      • 2020-12-14
      • 1970-01-01
      相关资源
      最近更新 更多