ជាទូទៅ នៅក្នុងគ្រប់ web application ទាំងឡាយ ការទទួលយកទិន្នន័យពី form ត្រូវតែមានការត្រួតពិនិត្យអោយបានត្រឹមត្រូវថា តើទិន្នន័យដែលត្រូវបានបញ្ជូនមកទាំងនោះ ពិតត្រឹមត្រូវទៅតាមអ្វីដែល web application ត្រូវការដែរឬយ៉ាងណា។ យ៉ាងណាម៉ិញ យន្តការត្រួតពិនិត្យមើលទិន្នន័យបញ្ជូនមកពី form ដែលភាសាអង់គ្លេសហៅថា form validation អាចត្រូវធ្វើឡើងពីរដងជាប់គ្នា គឺលើកទីមួយត្រូវធ្វើឡើងនៅផ្នែក client-side ដែលជា browser របស់អ្នកប្រើប្រាស់ដោយប្រើប្រាស់ភាសា JavaScript ហើយការត្រួតពិនិត្យជាលើកទីពីរ គឺត្រូវធ្វើឡើងនៅលើ server ដោយប្រើប្រាស់ភាសា Python ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
//\public\js\main.js
class Bicycle{
bicycleForm(formId){
var brand = document.forms[formId]['fbrand'].value;
var country = document.forms[formId]['fcountry'].value;
var year = document.forms[formId]['fyear'].value;
var amount = document.forms[formId]['famount'].value;
var price = document.forms[formId]['fprice'].value;
if((brand == "") || (country == "") || (year == "") || (amount == "") || (price == "")){
return false;
}else{
var numberRGEX = /^(?:[1-9]\d*|0)?(?:\.\d+)?$/;
var intRGEX = /^[0-9]+$/;
var numberResult = numberRGEX.test(price);
var intResult = (intRGEX.test(year) && intRGEX.test(amount));
if(!numberResult){
alert('Please enter a number for price.');
return false;
}
if(!intResult){
alert('Please enter a whole number for year and amount.');
return false;
}
}
}
}//end of class
var bicycle = new Bicycle();
#\controllers\bikeform.py
import config, re
from bottle import template, route, request
@route("/bikeform")
def renderForm():
return template('bikeform', data=config.kargs)
@route("/bikeform", method="POST")
def getFormData():
brand = request.forms.get("fbrand")
country = request.forms.get("fcountry")
year = request.forms.get("fyear")
amount = request.forms.get("famount")
price = request.forms.get("fprice")
if not re.findall("[a-zA-Z]", country):
config.kargs['message'] = "Brand and country name could contain only letter."
return template('bikeform', data=config.kargs)
elif not (re.findall("[0-9]", year) and re.findall("[0-9]", amount)):
config.kargs['message'] = "Year and amount must be whole number."
return template('bikeform', data=config.kargs)
elif not (re.findall(r"[-+]?\d*\.\d+|\d+", price)):
config.kargs['message'] = "Price must be a number."
return template('bikeform', data=config.kargs)
else:
config.kargs['message'] = "You have been entering the right data."
return template('bikeform', data=config.kargs)
GitHub: https://github.com/Sokhavuth/Rental-Bicycle-App
Heroku: https://khmerweb-rba.herokuapp.com/














