有人可以帮助我。我很难获得一个表单在Firefox中正确显示和行为。其他所有浏览器都能正常运行。
但我想尝试在php中设置一条规则来说明chrome是否会这样做,如果firefox那样做。
我在下面尝试了这个,当使用ie和chrome等时,登录表单按预期出现但是当使用firefox时,没有显示登录表单。没有错误信息。
<div id="login">
<?
if (preg_match('/Chrome|Opera|Safari|MSIE 8.0/', $_SERVER['HTTP_USER_AGENT'])) { ?>
<?php
if (!logged_in()) {
?>
<form id="myform" action="login.php" method="post" class="loginform">
Email
<input type="text" name="email" maxlength="30" />
Password
<input type="password" name="password" maxlength="30" />
<input type="image" src="../PTB1/assets/img/icons/loginarrow1.png" name="submit" class="loginbutton" />
</form>
<?php
}
if (logged_in()) {
?>
Logged in as, <?php echo $_SESSION['email'] ?>. <a href="dashboard.php">Dashboard</a>, <a href="logout.php">Logout</a> | <div class="login_settings" id="login_settings"></div>
<?php
}
else if (preg_match('/Firefox/', $_SERVER['HTTP_USER_AGENT'])) {
if (!logged_in()) {
?>
<form action="login.php" rel="shadowbox;height=300;width=500" method="post" >
<div class="row email">
<input type="email" id="email" name="email" placeholder="Email" value="<?php echo htmlentities($email); ?>" />
</div>
<div class="row password">
<input type="password" id="password" name="password" placeholder="Password" value="<?php echo htmlentities($email); ?>" />
</div>
<input type="submit" name="submit" value="Login >" />
</form>
<?php
}
if (logged_in()) {
?>
Logged in as, <?php echo $_SESSION['email'] ?>. <a href="dashboard.php">Dashboard</a>, <a href="logout.php">Logout</a> | <div class="login_settings" id="login_settings"></div>
<?
} } }
?>
</div>
答案 0 :(得分:1)
我对您的代码的理解是,您试图检测浏览器是否只是Firefox,以便您可以使用placeholder
属性和其他HTML5表单功能。
这不仅是一个可怕的想法(IE10和Chrome都支持placeholder
,我确信Opera也会这样做),但无论如何它都是placeholder
属性的不恰当使用。
相反,只需使用此表单:
<form action="login.php" method="post">
<div class="row email">
Email:
<input type="email" id="email" name="email" placeholder="john.smith@example.com" />
</div>
<div class="row password">
Password:
<input type="password" id="password" name="password" placeholder="Password" />
</div>
<input type="submit" name="submit" value="Login >" />
</form>
毕竟,放置一个可能不受支持的属性没有任何害处,只会被忽略。