我想将css类(.error)应用于$error
的每个回显实例。这似乎是一件容易的事情,我只是不确定语法。
<?php // rclogin.php
include_once 'rcheader.php';
echo "<h3>Member Log in</h3>";
$error = $user = $pass = "";
if (isset($_POST['user']))
{
$user = sanitizeString($_POST['user']);
$pass = sanitizeString($_POST['pass']);
if ($user == "" || $pass == "")
{
$error = "Not all fields were entered<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 />";
}
首先,不要将整个HTML放入$error
中。在我看来,这是个坏习惯。放置一个错误信息:
$error = 'Not all fields were entered';
然后在HTML中打印错误信息:
if ( $error ) {
echo '<span class="error">' . $error . '</span><br/>';
}
正如您所看到的,如果您在变量中传递HTML,那么您做任何您想做的事情的机会都会减少。
为了提出一些稍微不同的建议,我喜欢将我的错误实现为一个类。
现在,由于它是一个类,我可以使用__toString()
魔术方法。
class Error
{
...
public function __toString()
{
...
$output = '<span class="error">' . $output . '</span>';
return $output;
}
}
$error = new Error;
现在,当您回显$error时,您可以指定一些要在消息周围应用的HTML,并且作为一个类,您可以将所有其他相关的错误函数一起包含在一个漂亮的对象中。
当然,这是可能的,这取决于你想怎么做。
你可以有这样的$error = "<span class='className'>Username/Password invalid</span>";
或者您可以先用$error = "<span class='className'>"
创建错误变量,然后用$error .= "</span>"
结束它