为什么不应用这个php变量的样式?

时间:2012-01-30 22:03:00

标签: php css variable-assignment

我已尝试过各种解决方案来解决这个问题,但似乎没有任何效果。我知道样式表正在发挥作用,因为其他规则已经到位。

修改 附加了.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;
?>

2 个答案:

答案 0 :(得分:3)

你的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

答案 1 :(得分:2)

最可能的答案是另一个CSS文件为.error类定义了一个比你在这里提到的更具体的样式。

将您的CSS更改为

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

编辑:@PeeHaa是对的。我原来的答案有点过于快速和肮脏。它工作,但更好的解决方案是找出定义错误类的位置,或者创建一个新的自定义样式。您可能希望养成为自定义样式添加前缀的习惯,以避免将来出现这种情况。例如,如果您正在开发myawesomewebsite.com,则可以将指定的CSS重写为

span.maw_error {
    color: #FF0000; }