-1

誰か助けてください。Firefox でのみ、フォームを表示して正しく動作させるのに苦労しています。他のすべてのブラウザは正常に動作します。

しかし、私はphpでルールを設定して、クロム、つまりetcがこれを行うかどうか、そして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> |&nbsp;&nbsp;&nbsp;&nbsp;<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> |&nbsp;&nbsp;&nbsp;&nbsp;<div class="login_settings" id="login_settings"></div> 

    <?  


    } } }
    ?>
    </div>
4

1 に答える 1

1

placeholderあなたのコードからの私の理解は、属性やその他の HTML5 フォーム機能を使用できるようにするためだけに、ブラウザーが Firefox であるかどうかを検出しようとしているということです。

これは恐ろしい考えであるだけでなく (IE10 と Chrome はどちらも をサポートしており、Opera もサポートしていると確信しています)、いずれにせよ属性placeholderの不適切な使用です。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 &gt;" />
</form>

結局のところ、サポートされていない可能性のある属性を指定しても害はなく、無視されるだけです。

于 2013-02-03T20:50:56.220 に答える