1. 程式人生 > >Ajax應用之——表單驗證

Ajax應用之——表單驗證

1.關於表單驗證:
一般有兩種驗證方法:客戶端的(通過JavaScript)伺服器端的;
a)原來客戶端JavaScript的缺點是:所有資料及邏輯操作完全在客戶端,因此要涉及到伺服器端的資料問題時,都需要最後點選按鈕,到伺服器端進行讀取驗證。
現在改進的方法,Ajax實現更友好的客戶端驗證,實現客戶端實時非同步地訪問伺服器端的資料,完成(本該需要在伺服器端才能進行的驗證)

b)為了更加安全,通常還需要在Server端新增另一層次的驗證,確保資料正確;

2.執行緒安全的AJAX:
a)所謂的執行緒安全也就是同步這個經典的問題;即一個程式碼塊在多個執行緒同時執行的時候能夠正確的執行,則是執行緒安全的;
b)AJAX中的同步問題主要指:當Client端的操作觸發事件向Server端傳送非同步請求時,如果同一時間有多個這樣的請求(XMLHttpRequest傳送的請求),Server端就需要保證能夠按順序地並且正確無誤地對每一個請求做出響應,而且時間間隔儘可能短一些;
c)解決這個問題的常用方法,就是AJAX的JS部分,定義一個FIFO的訊息佇列,當有新的事件動作觸發了JS函式,先把它加入到訊息佇列中;
另一方面如果XMLHttpRequest物件狀態空閒,就從這個訊息佇列中取得訊息非同步地傳送到Server方;(會注意到這個訊息佇列其實是在Client端的)

3.
構建一個表單驗證程式,需要兩層驗證:AJAX驗證以及Server端驗證
a)AJAX驗證在Client端使用者的操作過程中事件觸發引起的,AJAX驗證完成之後,實時的將驗證的結果返回到當前頁面中;(注意整個過程頁面沒有跳轉)
b)Server端的驗證是在使用者點選提交按鈕之後完成的,通常需要在完成驗證之後(如果正確無誤通過,則跳轉到成功頁面;否則需要返回到當前頁面,並在當前頁面中預添使用者剛才輸入的資訊-因此這裡不能使用單純的html檔案而需要PHP檔案)


4.一個Ajax和PHP雙重驗證的例子:
a)index.php定義註冊需要填寫的表單,注意表單中的值,以及出錯資訊的class屬性實現是否顯示;
index_top.php為index.php需要的變數、初始化資料等
b)validation.css定義整個外觀和顯示;
c)validation.js
首先定義基本的js響應如onload事件的setFocus,onfocus事件的OnHightlight等
此外,定義了AJAX所必需的:XMLHttpRequest物件的建立、建立FIFO請求緩衝佇列cache=new array(),以及XMLHttpRequest物件向Server的實時非同步請求以及回撥函式;

d)Server段部分:
config.php, error_handler.php
validation.php: New完Validate物件之後,首先判斷驗證的型別,然後分別進行PHP驗證或者Ajax驗證:
PHP驗證,呼叫類的成員函式ValidatePHP,根據驗證結果進行頁面跳轉;
AJAX驗證,呼叫類的成員函式ValidateAJAX,根據驗證結果,生成XML響應並返回到客戶端;
validate.class.php:
定義了用於驗證的類Validate,建構函式/解構函式負責資料庫連結和釋放;
定義ValidatePHP以及ValidateAJAX兩個成員函式,兩者的公共程式碼可以抽出來,定義為新的private成員函式。





相關推薦

Ajax應用——驗證

1.關於表單驗證:一般有兩種驗證方法:客戶端的(通過JavaScript);伺服器端的;a)原來客戶端JavaScript的缺點是:所有資料及邏輯操作完全在客戶端,因此要涉及到伺服器端的資料問題時,都需要最後點選按鈕,到伺服器端進行讀取驗證。現在改進的方法,Ajax實現更友好

AJAX應用驗證

一。表單常用事件           有三個,onsubmit(表單提交)事件,onfocus(獲得焦點)事件,onblur(失去焦點)事件。 1. onsubmit事件作用:組織或者允許表單的提交。 <form action="" method="post" o

easyui 驗證

pla focus res default code font led disable function 1 /** 2 * 擴展easyui的validator插件rules,支持更多類型驗證 3 */ 4 $.extend($.fn.val

SpringBoot驗證@Valid

BE index ror ner HR 大小 doctype implement 空格 SpringBoot提供了強大的表單驗證功能實現,給我們省去了寫驗證的麻煩; 這裏我們給下實例,提交一個有姓名和年齡的表單添加功能, 要求姓名不能為空,年齡必須是不小於18 ; 我們先新

.net學習驗證validator

 表單驗證是很常見的,一般除了前端需要驗證資料是否為空,還需要驗證資料格式是否符合要求,一般使用正則表示式驗證,當然,除了前端,後端一般也需要將資料進行驗證,比如客戶端(瀏覽器)將js等前端指令碼禁用,點選提交,那麼不符合規範的資料就會提交到後臺,這回導致系統出現問題。 .net中

JQUERY驗證案例

<!-- 需求: 使用者註冊頁面要有使用者名稱、密碼、確認密碼、郵箱 使用者名稱文字框:使用者名稱不能為空,且必須為數字與字母的6到12位的組合 密碼框:密碼不能為空,六到八位數字或字母的組合 確認密碼框:確認密碼不能為空,六到八位數字或字母

springboot+thymeleaf驗證

本篇講述在spring boot框架中使用thymeleaf庫實現表單提交。 1 新建thymeleaf工程 使用IDEA的spring initialize嚮導新建spring boot工程,選擇庫web和thymeleaf,這樣生成的工程中的pom.xml中包含web

微信小程式驗證

表單驗證 何為表單驗證呢? 百度百科給出的回答是這樣的: 表單驗證是javascript中的高階選項之一。JavaScript 可用來在資料被送往伺服器前對 HTML 表單中的這些輸入資料進行驗證  [1]  。 被 Jav

PHP驗證

一、表單安全 1、htmlspecialchars()函式 把特殊字元轉換為 HTML 實體。這意味著 < 和 > 之類的 HTML 字元會被替換為 &lt; 和 &gt; 。這樣可防止攻擊者通過在表單中注入 HTML 或 J

Springboot驗證

實體類 @TableName("lh_admin") public class Admin extends Model<Admin> { private static final long serialVersionUID = 1L; /**

SpringBoot系列(六)SpringBoot 驗證

本系列部落格將學習開發SpringBoot,快速開發專案 SpringBoot系列 (六):SpringBoot 之表單驗證 文件結構 SpringBoot 之表單驗證@Valid示例

微信小程式開發驗證(WxValidate使用)

微信小程式的開發框架個人感覺大體上跟VUE是差不多的,但是他的表單元件沒有自帶的驗證功能,因此開發小程式的表單驗證時候一般有兩種方法,一是自己裸寫驗證規則,但是需要比較紮實的正則表示式基礎,一種是利用官方社群開發的WxValidate外掛進行表單驗證。 WxValidat

Laravel摘記驗證

表單驗證 表單驗證是為了防止訪問者跳過客戶端驗證而造成的系統安全問題,一但非法使用者繞過客戶端驗證而伺服器端沒有加以驗證,這樣就是很不安全了,所以專案必須要進行伺服器端表單驗證。 Laravel 提供了多種不同的驗證方法來對應用程式傳入的資料進行驗證。

[js筆記] focus和blur事件驗證

focus 當一個元素獲得焦點時,這個DOM節點會觸發focus事件 blur 當一個元素失去焦點時,這個DOM節點會觸發blur事件 <!DOCTYPE html PU

JSP應用的自我理解三:JSP+Servlet實現驗證

示例說明:通過一個表單提交頁面提交給Servlet,Servlet獲取資訊,經過處理後,將資訊存入request物件中,如果使用者提交姓名為空,將重新返回登入首頁,否則,把提交的資訊全部顯示出來 下面具體實現了~~ 1、新建一個Dynamic WEB工程,名為formtt

驗證正則表達式

cti 信用卡 for 整除 develop 虛擬 accep das 一位 1. 手機號驗證 經網絡查詢可知,中國三大運營商號碼波段主要有: (1). 移動號段: 134 135 136 137 138 139 147 150 151 152 157 158

前端編程提高旅(十)----驗證插件與cookie插件

turn require 屬性 單選 method str 使用 art 存儲 實際項目開發中與用戶交互的常見手法就是採用表單的形式。取得用戶註冊、登錄等信息。而當用戶註冊或登錄後又須要記住用戶的登錄狀態。這就涉及到經常使用的兩個操作:表單驗證與cookie

jQueryValidation驗證插件使用

urn html .org utf span con require input 詳情 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <met

(十二)easyUI驗證完成登錄頁面

() 成功 options 表單提交 odi 1-1 java ima 1.4 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

php-2(驗證

eth left cit span dem 讓我 但是 cape ren PHP 表單驗證 本章節我們將介紹如何使用PHP驗證客戶端提交的表單數據。 PHP 表單驗證 在處理PHP表單時我們需要考慮安全性。 本章節我們將展示PHP表單數據安全處理