簡體   English   中英

html5 php 表單驗證問題

[英]html5 php form validation issue

我有一個 html5 頁面,里面有一個 php 表格,我遇到了一些錯誤。 最初開發時,表單本身在頁面上驗證了 100% HTML5(命名為 index.php)。 我放入的頁面(index.html)也驗證了 100%。 將表單的代碼復制到我的頁面中導致了一些驗證錯誤。這對我來說沒有意義,因為它們都是 100% 准確的。

我不確定包含表單的頁面現在應該是 index.php 還是保留為 index.html。

建議?

下面是 HTML 和驗證錯誤 as.HTML 和.PHP

HTML:

<body>
  <div id="vig"></div>
  <header>
    <h1>LARA</h1>
  </header>  
  <div id="main" class="corners" role="main">
    <div id="jquery_jplayer_1" class="jp-jplayer"></div>
    <div class="jp-audio">
      <div class="jp-type-playlist">
        <div id="jp_interface_1" class="jp-interface">
          <ul class="jp-controls">
            <li><a href="#" class="jp-previous blue" tabindex="1">previous</a></li>
            <li><a href="#" class="blue jp-play" tabindex="1">play</a></li>
            <li><a href="#" class="blue jp-pause" tabindex="1">pause</a></li>
            <li><a href="#" class="blue jp-stop" tabindex="1">stop</a></li>
            <li><a href="#" class="blue jp-next" tabindex="1">next</a></li>
          </ul>
          <div class="jp-progress corners">
            <div class="jp-seek-bar corners blue">
              <div class="jp-play-bar corners"></div>
            </div>
          </div>
          <div class="time">
            <div class="jp-current-time"></div>
            <p id="name"></p>
            <div class="jp-duration"></div>
          </div>
        </div>
      </div>
    </div>
    <div id="mail"> 
      <form id="signup" action="<?=$_SERVER['PHP_SELF']; ?>" method="get"> 
        <fieldset>
          <input type="email" name="email" id="email" class="corners" placeholder="Enter your email address" />
          <span id="response">
            <? require_once('php/store-address.php'); if($_GET['submit']){ echo storeAddress(); } ?>
          </span>
          <input type="submit" id="submit" class="corners blue" value="Go" />           
        </fieldset> 
      </form> 
    </div>
  </div>  
  <footer>
  </footer>
</body>

as.HTML 出現這些錯誤:

Line 67, Column 73: Bad value <?=$_SERVER['PHP_SELF']; ?> for attribute action on element form: Illegal character in query component.
        <form id="signup" action="<?=$_SERVER['PHP_SELF']; ?>" method="get"> 
        Syntax of IRI reference:
        Any URL. For example: /hello, #canvas, or http://example.org/. Characters should be represented in NFC and spaces should be escaped as %20.
 Line 71, Column 7: Saw <?. Probable cause: Attempt to use an XML processing instruction in HTML. (XML processing instructions are not supported in HTML.)
       <? require_once('php/store-address.php'); if($_GET['submit']){ echo storeA…

as.PHP 出現這些錯誤:

 Line 74, Column 276: End of file seen and there were open elements.
    …s/c09/h02/mnt/127740/domains/lara.fm/html/index.php</b> on line <b>71</b><br />
✉
 Line 70, Column 23: Unclosed element span.
    <span id="response">
✉
 Line 68, Column 14: Unclosed element fieldset.
    <fieldset>
✉
 Line 67, Column 56: Unclosed element form.
    <form id="signup" action="/index.php" method="get"> 
✉
 Line 66, Column 21: Unclosed element div.
    <div id="mail"> 
✉
 Line 41, Column 47: Unclosed element div.
    <div id="main" class="corners" role="main">
✉
 Line 36, Column 22: Unclosed element div.
    <div id="container">

您的文檔是 HTML 和 PHP 的組合。 源代碼本身永遠無法驗證為 HTML。

您應該驗證 HTML 一致性的腳本 output 而不是源代碼本身。

您的.html 文件沒有被解析,這就是為什么您在.html 版本上出現錯誤的原因。 請注意,通常 PHP 未設置為 parse.html 結尾的文件(.php、.php3、.php4、.php5 等...不過,通常取決於您的 ZE1BFD762321E4109CEE4ZAC.0B6E)。

筆記

如果您要復制/粘貼源代碼 PHP 代碼而不是腳本的 output(瀏覽器看到的),這可能是您的問題(正如 Jon Cram 指出的那樣)。 要進行瀏覽器內驗證,請檢查:

https://addons.mozilla.org/en-US/firefox/addon/html-validator/

這通常比將代碼復制/粘貼到 w3c 驗證器中要容易得多。

您需要創建文件擴展名.php,並echo顯 PHP 變量的值。 目前你對它們的內容什么都不做。

在您的.php錯誤中,第一個錯誤可能意味着您的 PHP 代碼正在生成錯誤,這導致您的 HTML 無法驗證。

我猜你的 PHP 代碼的這一部分是罪魁禍首:

<? require_once('php/store-address.php'); if($_GET['submit']){ echo storeAddress(); } ?>

此代碼可能存在許多問題——您需要的文件可能不存在, storeAddress()可能不存在,或者$_GET['submit']無法正常工作。 嘗試使用isset($_GET['submit'])array_key_exists('submit', $_GET)看看是否有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM