繁体   English   中英

为什么不将样式应用于此php变量?

[英]why isn't a style being applied to this php variable?

我已经尝试了各种解决方案来解决此问题,但似乎没有任何效果。 我知道样式表即将启动,因为已经制定了其他规则。

编辑 .error样式已附加,但是我现在得到$ error的两个回显,一个为红色,一个为黑色,在它下面一行。 对rcheader的引用不包含对$ error的引用。

CSS:

.error{
color:#FF0000;
}

这是整个php页面:

<link type="text/css" href="stylesheet.css" rel="stylesheet" media="all" />
<?php // rclogin.php
include_once 'rcheader.php';
echo "<h3>Member Log in</h3>";
// $error="<span class='error'></span>";
$error = $user = $pass = "";

if (isset($_POST['user']))
{
    $user = sanitizeString($_POST['user']);
    $pass = sanitizeString($_POST['pass']);

    if ($user == "" || $pass == "")
    {
        $error = 'Not all fields were entered correctly.<br />';
    }
if(strlen($error)>0) {
    echo '<span class="error">' . $error . '</span><br/>';
}
    else
    {
        $query = "SELECT user,pass FROM rcmembers
                  WHERE user='$user' AND pass='$pass'";

        if (mysql_num_rows(queryMysql($query)) == 0)
        {
            $error = "Username/Password invalid<br />";
        }
        else
        {
            $_SESSION['user'] = $user;
            $_SESSION['pass'] = $pass;
            die("You are now logged in. Please
               <a href='rcmembers.php?view=$user'>click here</a>.");
        }
    }
}

echo <<<_END
<form method='post' action='rclogin.php'>$error
Username <input type='text' maxlength='16' name='user'
    value='$user' /><br />
Password <input type='password' maxlength='16' name='pass'
    value='$pass' /><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type='submit' value='Login' />
</form>
_END;
?>

您的php代码的逻辑是这里的问题:

$error = $user = $pass = "";

if ($error) {
   echo '<span class="error">' . $error . '</span><br/>';
}

您将错误消息设置为空字符串,然后立即将其吐出一个空错误消息,然后运行填充$error变量的检查?!?

去掉

if ($error) {
    echo '<span class="error">' . $error . '</span><br/>';
}

并修改此代码以添加错误输出逻辑:

if ($user == "" || $pass == "") {
    $error = 'Not all fields were entered.<br />';
}
if(strlen($error)>0) {
    echo '<span class="error">' . $error . '</span><br/>';
}

**请记住... **当检查变量是否为空字符串时,请使用strlen($var)==0empty($var)或检查$var==''语句: if($var)正在寻找布尔值TRUE / FALSE

最可能的答案是,另一个CSS文件为.error类定义了一种样式,该样式比您在此处提到的样式更具体。

将您的CSS更改为

    span.error {
    color: #FF0000 !important;
}

编辑:@PeeHaa是正确的。 我最初的回答有点太快和太脏了。 工作,但更好的解决方法是,找出错误类被定义在哪里,或创建一个新的自定义样式。 您可能想养成对自定义样式添加前缀的习惯,以免在将来避免这种情况。 例如,如果您正在开发myawesomewebsite.com,则可以将指定的CSS重写为

span.maw_error {
    color: #FF0000; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM