Ajax 提交表單資料到入庫的全盤操作流程分享

2022-09-21 23:12:13 字數 2378 閱讀 2786

*******php專案中當我們要對資料庫進行寫入操作時,有時會因為**沒有做防sql注入工作,導致各種不可預知的錯誤*******

1,index.htm 這是乙個很簡單的註冊頁面l 我這是以ajax形式提交資料

複製** **如下:

registerform

正在載入... ...

2,_process.php接收ajax提交資料 並做相關處理的檔案

複製** **如下:

<?php

header('content-type:text/html;charset=utf-8');

sleep(1);

$conn = mysqli_connect("localhost","root","root","register") or die("unable to connect!".mysqli_connect_error());

mysqli_query($link,"set names utf8");

$name = isset($_post['name'])?mysqlquotes(trim($_post['name'])):'';

$ages = isset($_post['ages'])?intval(trim($_post['ages'])):'';

$pass = isset($_post['pass'])?mysqlquotes(trim($_post['pass'])):'';

$addr = isset($_post['addr'])?mysqlquotes(trim($_post['addr'])):'';

$email = isset($_post['email'])?mysqlquotes(trim($_post['email'])):'';

if(empty($name))

//查詢username在 tb_register 表中是否存在,不存在則入庫,存在則告知已註冊

$sql0 = "select count(1) as nums from tb_register where username=''";

$row0 = select_one($conn,$sql0);

if($row0['nums']>=1)

if(empty($ages))

if(!preg_match("/^\d+$/",$ages))

if(empty($pass))

if(empty($addr))

if(empty($email))

if(!preg_match("/^[a-za-z0-9_]+@[a-za-z0-9_]+(\.[a-za-z]+)+$/",$email))

$add_day = date("ymdhis");

//以下是入庫操作

$sql = "insert into tb_register set username='',ages='',password='',address='',email='',add_day=''";

mysqli_query($conn,$sql);

echo json_encode(array('res'=>1,'msg'=>'恭喜你,註冊成功!'));exit;

//預防mysql注入攻擊函式 入庫資料

function mysqlquotes($content)

return stripslashes(htmlspecialchars($content));

} function select_one($conn,$sql)

mysqli_free_result($res);

return $result; }

******以上 自定義函式mysqlquotes中**********

tips1, (ps:t不錯的php q扣峮:276167802,驗證:csl)

addslashes 函式的作用是給指定的字元加上反斜槓,主要有以下特殊字元

單引號(') , 雙引號(") , 反斜槓(\) , null

tips2,

htmlspecialchars 函式的作用是把一些特殊的字元轉換為html實體 ,這些特定的字元有:

& (和號) ==> &

" (雙引號) ==> "

' (單引號) ==> '

< (小於號) ==> <

> (大於號) ==> >

tips3,

stripslashes 函式作用是刪除 由addslashes ()函式新增的飯斜槓,恢復原來的摸樣

如,$username 使用者輸入的是 tom『siy

存進資料庫的是加反斜槓的 tom\『siy;

取出來之則可以用stripslashes() 將其還原輸出 tom『siy

AJax提交表單資料到後台springmvc接收

第一種方法直接用serialize 方法 function insert order insert data fom serialize success function res 後台springmvc用物件引數接收 可以自動轉換為物件,需要注意的就是form表單中的name要和物件中的引數名相同 ...

AJAX提交表單資料例項分析

var tiny tiny.ajax function 程式設計客棧 param function callback 成功返回時的 函式 call function type,url,data,callback switch type.touppercase xhr.send formdata br...

React全棧 社交網路程式 提交表單資料

1.給每個input 新增change 事件 當input 變化時觸發 onchange事件 獲取輸入的值,每個值對應相對應的名字 onchange e e.target.value 表示input 輸入的內容 e.target.name 表示輸入框對應的名字 2.新增 提交事件 onsubmit ...