表單驗證之PHP代碼架構

來源:互聯網
上載者:User

   我在上一篇文章中講到使用javascript做整合表單驗證的方法,對於用戶端驗證已經足夠,但好的表單驗證應同時在用戶端和伺服器端進行——這正是寫本文的目的。

    如果採用一般的驗證方法應該怎樣寫呢?

    if ($_POST['some'] 不滿足 condition) {

             die("wrong");

    }

    類似於javascript的整合驗證方法,在PHP中也可利用數組和eval語句實現表單驗證(伺服器端)架構。一般步驟:

    1、將使用者提交的資料從$_GET或$_POST數組收集到自訂數組(可選),

    2、填充驗證數組(包括變數名、條件及提示等),

    3、添加固定的驗證代碼。

    下面我來舉例說明,假設你要從網頁中收集使用者姓名及年齡,並且在伺服器端實現資料驗證,那麼你可能需要form.html和act.php。form.html中包含表單:

    <form method=post action=act.php>

        姓名:<input type=text name='name'><br>

        年齡:<inupt type=text name='uage' ><br>

        <input type=submit value="提交">

    </form>

    act.php中將實現表單的驗證:

    $userinfo = array();                 // 步驟1

    $userinfo['name'] = isset($_POST['uname']) ? $_POST['uname'] : '';

    $userinfo['age'] = isset($_POST['uage']) ? (int)$_POST['uage'] : 0;

    $error_message = "";           // 錯誤資訊

    // 步驟2

    $elems = array(
        array("\$userinfo['name']", 'strlen(#)<1', '姓名不可為空!'),

        // 若省略步驟1則按如下方式改寫:

        // array("\$_POST['uname']", 'strlen(#)<1', '姓名不可為空!'),

        array("\$userinfo['age']", '#<=0', '年齡不正確!')

    );

    // 步驟3

    for($i = 0; $i < count($elems); $i++) {
        if(eval("if(".preg_replace("/[#]/", $elems[$i][0], $elems[$i][1]).") return false;") === false) {
        $error_message .= $elems[$i][2];

        }
    }

    這樣,我們每次只須填充驗證數組$elems就可完成表單驗證。


    希望對你們有用,我也很想知道你們是怎麼做的。

    這樣,我們每次只須填充驗證數組$elems就可完成表單驗證。

    希望對你們有用,我也很想知道你們是怎麼做的。

    這樣,我們每次只須填充驗證數組$elems就可完成表單驗證。

    希望對你們有用,我也很想知道你們是怎麼做的。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.