中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ajax提交表單數據到入庫的全盤操作過程是怎樣的

發布時間:2021-10-08 11:29:05 來源:億速云 閱讀:94 作者:柒染 欄目:web開發

Ajax提交表單數據到入庫的全盤操作過程是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

*******php項目中當我們要對數據庫進行寫入操作時,有時會因為代碼沒有做防sql注入工作,導致各種不可預知的錯誤*******

1,index.htm 這是一個很簡單的注冊頁面l 我這是以ajax形式提交數據

復制代碼 代碼如下:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>RegisterForm</title>
<script type="text/javascript" src='jquery-1.3.1.js'></script>
</head>
<body>
<h2>This is a test form! </h2>
<font color="#8b0000"><table class='tb' border="0" cellpadding="5" cellspacing=0>
<form action='_process.php' method='post' enctype='multipart/form-data'>
<tr><td class="tdleft"><em>user :</em></td><td><input type='text' id='name' name='name' value='' size=15/></td></tr>
<tr><td class="tdleft"><em>ages : </em></td><td><input type='text' id='ages' name='ages' value='' size=15/></td></tr>
<tr><td class="tdleft"><em>pass : </em></td><td><input type='password' id='password' name='password' value='' size=15/></td></tr>
<tr><td class="tdleft"><em>addr : </em></td><td><input type='text' id='addr' name='addr' value='' size=15/></td></tr>
<tr><td class="tdleft"><em>email : </em></td><td><input type='text' name='email' id='email' value='' size=15/></td></tr>
<tr><td class="tdleft"><input type='button' value='register' id="but"/></td><td><input type='reset' value='reseting'/></td></tr>
</form>
</table></font>
<span id='msg' style='display:none'>正在加載... ...</span>
<p id="result" class=""></p>
<style type="text/css">
body{text-align:center;}
.error{color:red;}
.tb{margin:0 auto;width:350px;height:200px;text-align:center;}
.tdleft{width:150px;text-align:left;}
</style>
<script type='text/javascript'>
$("#but").click(function(){
var name = $.trim($("#name").val());
var ages = $.trim($("#ages").val());
var pn = /^\d+$/;
var addr = $.trim($("#addr").val());
var pass = $.trim($("#password").val());
var email = $.trim($("#email").val());
var reg = /^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z]+)+$/gi;
if(name.length==0){
alert("請認真填寫姓名!");return false;
}
if(ages.length==0){
alert("請填寫年齡!");return false;
}
if(!pn.test(ages)){
alert("請填寫有效數字!");return false;
}
if(pass.length==0||pass.length>6){
alert("請認真填寫密碼!");return false;
}
if(addr.length==0){
alert("請認真填寫地址!");return false;
}
if(email.length==0){
alert("請認真填寫郵件!");return false;
}
if(!reg.test(email)){
alert("電子郵件檢測失敗");return false;
}
var send = {'name':name,'ages':ages,'pass':pass,'addr':addr,'email':email};
$.post('_process.php',send,function(data){
if(data.res==-1){
$("#result").addClass("error");
}
$("#result").html(data.msg);
//$("form")[0].reset();
},'json');
})
$("#msg").ajaxStart(function(){
$(this).fadeIn();
}).ajaxStop(function(){
$(this).fadeOut();
})
</script>
</body>
</html>


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)){
echo json_encode(array('res'=>-1,'msg'=>'請您認真輸入姓名'));exit;
}
//查詢username在 tb_register 表中是否存在,不存在則入庫,存在則告知已注冊
$sql0 = "select count(1) as nums from tb_register where username='{$name}'";
$row0 = select_one($conn,$sql0);
if($row0['nums']>=1){
echo json_encode(array('res'=>-1,'msg'=>'對不起,該用戶名已被注冊!'));exit;
}
if(empty($ages)){
echo json_encode(array('res'=>-1,'msg'=>'請您認真輸入年齡'));exit;
}
if(!preg_match("/^\d+$/",$ages)){
echo json_encode(array('res'=>-1,'msg'=>'請輸入合法的數字'));exit;
}
if(empty($pass)){
echo json_encode(array('res'=>-1,'msg'=>'請您認真輸入密碼'));exit;
}
if(empty($addr)){
echo json_encode(array('res'=>-1,'msg'=>'請您認真輸入地址'));exit;
}
if(empty($email)){
echo json_encode(array('res'=>-1,'msg'=>'請您認真輸入郵箱'));exit;
}
if(!preg_match("/^[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z]+)+$/",$email)){
echo json_encode(array('res'=>-1,'msg'=>'您的郵箱格式不正確'));exit;
}
$add_day = date("YmdHis");

//以下是入庫操作
$sql = "insert into tb_register set username='{$name}',ages='{$ages}',password='{$pass}',address='{$addr}',email='{$email}',add_day='{$add_day}'";
mysqli_query($conn,$sql);
echo json_encode(array('res'=>1,'msg'=>'恭喜你,注冊成功!'));exit;


//預防mysql注入攻擊函數 入庫數據
function mysqlQuotes($content){
if(!get_magic_quotes_gpc()) //先看看是否開啟自動過濾機制 未開啟則手動加函數過濾
{
$content = addslashes($content);
}
return stripslashes(htmlspecialchars($content));
}


function select_one($conn,$sql){
$res = mysqli_query($conn,$sql) or die("Failed".mysqli_error());
$result = array();
if(!empty($res)){
$result = mysqli_fetch_assoc($res);
}
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提交表單數據到入庫的全盤操作過程是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昔阳县| 隆德县| 韶山市| 赤水市| 甘肃省| 仲巴县| 广宁县| 锡林郭勒盟| 温宿县| 宁海县| 中江县| 寿阳县| 永丰县| 柯坪县| 沁水县| 金山区| 增城市| 惠东县| 同德县| 温泉县| 齐齐哈尔市| 普安县| 施甸县| 榕江县| 张家界市| 长寿区| 刚察县| 琼海市| 汨罗市| 武穴市| 庆安县| 静海县| 来宾市| 永泰县| 塘沽区| 蒲江县| 鄂托克旗| 彭州市| 工布江达县| 康定县| 调兵山市|