当前位置: 首页 > 知识库问答 >
问题:

如何在我的页面中回声错误,以便我可以样式化它?

陶星渊
2023-03-14

在我的php脚本中,我有一个简单的username/email exists条件,但是我想把这个错误(如果存在的话)放在html的某个地方,这样我就可以设置它的样式并将它放置在我的表单上。Echo只是把它放在左上角。我该怎么做?设置变量似乎不是最佳解决方案。

<?php
require('connect.php');
if(isset($_POST["register"])){
    $username = $_POST["username"];
    $password = $_POST["password"];
    $email = $_POST["email"];

    $username = mysqli_real_escape_string($conn, $username);
    $password = mysqli_real_escape_string($conn, $password);
    $email = mysqli_real_escape_string($conn, $email);

    $conflictUserQuery = "SELECT username FROM members WHERE username='$username'";
    $conflictUserResult = mysqli_query($conn, $conflictUserQuery);
    $conflictUserRow = mysqli_fetch_array($conflictUserResult, MYSQLI_ASSOC);
    $conflictMailQuery = "SELECT email FROM members WHERE email='$email'";
    $conflictMailResult = mysqli_query($conn, $conflictMailQuery);
    $conflictMailRow = mysqli_fetch_array($conflictMailResult, MYSQLI_ASSOC);
    if(mysqli_num_rows($conflictMailResult) ==1){
        echo "Could not be registered. Mail exists.";
    }
    elseif(mysqli_num_rows($conflictUserResult) ==1){
        echo "Could not be registered. Username exists.";
    }
    else{
        $registerQuery = mysqli_query($conn, "INSERT INTO members (username, password, email) VALUES ('$username', '$password', '$email')");
        if($registerQuery){
            echo "Thank You! you are now registered.";
        }
    }


}
?>

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="css/style.css">
        <link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet">
        <title>Blog</title>
    </head>
    <body>
        <div class="flex-enable flex-center">
            <div class="flex-enable flex-center semiOverride flex-center px100">
                <div class="flex-enable flex-center flex-column">
                    <h2 class="big-white-title">Register.</h2>
                    <h3 class="medium-white-title">Be a part of this.</h3>
                <form class="flex-enable flex-center flex-column" method="POST">
                    <input class="form-input-text small-white-title" type="text" name="username" placeholder="Username">
                    <input class="form-input-text small-white-title" type="text" name="password" placeholder="Password">
                    <input class="form-input-text small-white-title" type="text" name="email" placeholder="e-mail">
                    <input class="form-button small-white-title" type="submit" name="register" value="Register">
                </form>
                <h3 class="small-white-subtitle">Or <a id="register" href="">login</a> if you have an account.</h3>
                </div>
            </div>
        </div>
        <div id="attribution">Photo by <a href="https://unsplash.com/@meindrittesauge">Sebastian Kanczok</a></div>
    </body>
</html>

共有1个答案

左丘边浩
2023-03-14

正如我在评论中所说:

这可能很简单,只要在使用内联CSS样式方法时为其指定一个变量即可:

$error = "<span style=\"color:red;\">Error message here.</span>";

您还可以将样式表与.error类(可用于多个实例,而不是#id)一起使用,并将其应用于错误元素,只需将$error变量放置在您希望它出现的位置,并使用isset()

注意:isset()的使用非常重要,因为它可以避免可能出现的未定义变量通知。

也可以使用三元运算符:

  • http://php.net/manual/en/language.operators.comparison.php

这对于类似的东西也很有效,因为您可以为它设置默认消息。

如评论中所述,最好使用预先准备好的语句,强烈建议使用安全的密码存储/哈希方法。

参考资料:

  • https://en.wikipedia.org/wiki/Prepared_statement
  • http://php.net/manual/en/faq.passwords.php
 类似资料:
  • 早些时候,我部署了我的页面的一个新版本,安装了一个服务工作者,该服务工作者应该只在安装时缓存一个脱机页面,如果服务工作者由于脱机而无法获取文档,则应重定向到此缓存的脱机页面。 现在有些东西没有按预期工作,有时服务人员会显示脱机页面,尽管他不应该显示。因此我感到恐慌,因为我找不到问题,部署了一个新版本,该版本应该注销所有服务人员。我希望每件事都能对每个人都起作用。 但是,当我想到这些问题时,我感到震

  • 我自己想了一个实现,但觉得有点过头了,而且笨重? 我将使用用户ID作为密钥 Id然后在value部分中存储JWT令牌的hashmap。 示例 null null 这意味着在每个对受保护的apiendpoint的请求中,我必须按userId进行搜索,反序列化hashmap,循环遍历hashmap并尝试匹配在头中发送的JWT。这看起来像是一个很大的工作?还有别的办法吗? 如果一个用户想要注销,那么这个

  • 本文向大家介绍我可以在SAP HANA中使用“自定义错误”页面吗?,包括了我可以在SAP HANA中使用“自定义错误”页面吗?的使用技巧和注意事项,需要的朋友参考一下 您是正确的,因为XSA支持自定义错误页面,但传统版不支持自定义错误消息。 如果您需要采取任何方式,那么可以尝试的是,您需要通过负载平衡器或代理解析所有请求,然后显示自定义错误消息。这不是一种简单且可维护的方法。

  • 问题内容: 我试图更改HTML表单,输入类型文件。这是我的代码: HTML,表格ID =表格 .CSS 这两种方法均无效。我确实从某些网站(如Facebook,YouTube,Google或Twitter)看到,它们具有不同的风格。想知道他们是如何做到的。 问题答案: 您不能对输入类型的文件执行任何操作(巨大的黑客攻击除外)。我知道这听起来很可怕,但是Web标准仍然没有提出解决方案。 但是我建议您

  • 我尝试过Launch4j,但这种方法要求我同时提供JRE和EXE。根据我的要求,我不应该使用安装程序来发布,也不应该在客户端机器上提取/安装JRE。 如何将JRE放入JAR并加以利用?

  • 问题内容: 说我有一个带有这样的渲染的组件: 其中jewelStyle = 如何使背景颜色动态并随机分配?我试过了 但这会使View的所有实例具有相同的颜色,我希望每个实例都是唯一的。 有小费吗? 问题答案: 我通常按​​照以下方式进行操作: … 每次渲染View时,都会使用与之关联的随机颜色实例化一个新样式对象。当然,这意味着每次重新渲染组件时颜色都会改变,这也许不是您想要的。相反,您可以执行以