最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ajax 提交表單數(shù)據(jù)到入庫(kù)的全盤(pán)操作流程分享

 更新時(shí)間:2014年01月08日 15:23:21   作者:  
以下是Ajax 提交表單數(shù)據(jù)到入庫(kù)的全盤(pán)操作流程,希望本文對(duì)廣大php開(kāi)發(fā)者有所幫助,感謝閱讀本文
*******php項(xiàng)目中當(dāng)我們要對(duì)數(shù)據(jù)庫(kù)進(jìn)行寫(xiě)入操作時(shí),有時(shí)會(huì)因?yàn)榇a沒(méi)有做防sql注入工作,導(dǎo)致各種不可預(yù)知的錯(cuò)誤*******

1,index.htm 這是一個(gè)很簡(jiǎn)單的注冊(cè)頁(yè)面l 我這是以ajax形式提交數(shù)據(jù)
復(fù)制代碼 代碼如下:

<!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>
<h1>This is a test form! </h1>
<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("請(qǐng)認(rèn)真填寫(xiě)姓名!");return false;
}
if(ages.length==0){
alert("請(qǐng)?zhí)顚?xiě)年齡!");return false;
}
if(!pn.test(ages)){
alert("請(qǐng)?zhí)顚?xiě)有效數(shù)字!");return false;
}
if(pass.length==0||pass.length>6){
alert("請(qǐng)認(rèn)真填寫(xiě)密碼!");return false;
}
if(addr.length==0){
alert("請(qǐng)認(rèn)真填寫(xiě)地址!");return false;
}
if(email.length==0){
alert("請(qǐng)認(rèn)真填寫(xiě)郵件!");return false;
}
if(!reg.test(email)){
alert("電子郵件檢測(cè)失敗");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提交數(shù)據(jù) 并做相關(guān)處理的文件
復(fù)制代碼 代碼如下:

<?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'=>'請(qǐng)您認(rèn)真輸入姓名'));exit;
}
//查詢username在 tb_register 表中是否存在,不存在則入庫(kù),存在則告知已注冊(cè)
$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'=>'對(duì)不起,該用戶名已被注冊(cè)!'));exit;
}
if(empty($ages)){
echo json_encode(array('res'=>-1,'msg'=>'請(qǐng)您認(rèn)真輸入年齡'));exit;
}
if(!preg_match("/^\d+$/",$ages)){
echo json_encode(array('res'=>-1,'msg'=>'請(qǐng)輸入合法的數(shù)字'));exit;
}
if(empty($pass)){
echo json_encode(array('res'=>-1,'msg'=>'請(qǐng)您認(rèn)真輸入密碼'));exit;
}
if(empty($addr)){
echo json_encode(array('res'=>-1,'msg'=>'請(qǐng)您認(rèn)真輸入地址'));exit;
}
if(empty($email)){
echo json_encode(array('res'=>-1,'msg'=>'請(qǐng)您認(rèn)真輸入郵箱'));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");

//以下是入庫(kù)操作
$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'=>'恭喜你,注冊(cè)成功!'));exit;


//預(yù)防m(xù)ysql注入攻擊函數(shù) 入庫(kù)數(shù)據(jù)
function mysqlQuotes($content){
if(!get_magic_quotes_gpc()) //先看看是否開(kāi)啟自動(dòng)過(guò)濾機(jī)制 未開(kāi)啟則手動(dòng)加函數(shù)過(guò)濾
{
$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;
}

******以上 自定義函數(shù)mysqlQuotes中**********
Tips1, (PS:T不錯(cuò)的PHP Q扣峮:276167802,驗(yàn)證:csl)
addslashes 函數(shù)的作用是給指定的字符加上反斜杠,主要有以下特殊字符
單引號(hào)(') , 雙引號(hào)(") , 反斜杠(\) , NULL


Tips2,
htmlspecialchars 函數(shù)的作用是把一些特殊的字符轉(zhuǎn)換為html實(shí)體 ,這些特定的字符有:
& (和號(hào)) ==> &
" (雙引號(hào)) ==> "
' (單引號(hào)) ==> '
< (小于號(hào)) ==> <
> (大于號(hào)) ==> >

Tips3,
stripslashes 函數(shù)作用是刪除 由addslashes ()函數(shù)添加的飯斜杠,恢復(fù)原來(lái)的摸樣
如,$username 用戶輸入的是 Tom‘siy
存進(jìn)數(shù)據(jù)庫(kù)的是加反斜杠的 Tom\‘siy;

取出來(lái)之則可以用stripslashes() 將其還原輸出 Tom‘siy

以上是本文關(guān)于Ajax 提交表單數(shù)據(jù)到入庫(kù)的全盤(pán)操作流程,希望本文對(duì)廣大php開(kāi)發(fā)者有所幫助,感謝閱讀本文。

相關(guān)文章

  • ajax實(shí)現(xiàn)加載數(shù)據(jù)功能

    ajax實(shí)現(xiàn)加載數(shù)據(jù)功能

    這篇文章主要為大家詳細(xì)介紹了ajax實(shí)現(xiàn)加載數(shù)據(jù)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Ajax跨域訪問(wèn)Cookie丟失問(wèn)題的解決方法

    Ajax跨域訪問(wèn)Cookie丟失問(wèn)題的解決方法

    這篇文章主要介紹了Ajax跨域訪問(wèn)Cookie丟失問(wèn)題的解決方法,需要的朋友可以參考下
    2017-02-02
  • ASP.NET與Ajax的實(shí)現(xiàn)方式小總結(jié)

    ASP.NET與Ajax的實(shí)現(xiàn)方式小總結(jié)

    Ajax 應(yīng)該不是一項(xiàng)技術(shù),是一種思想而已,跟 ASP.NET 以及其它 Web 開(kāi)發(fā)語(yǔ)言沒(méi)有什么太大關(guān)系,這里只是談?wù)?ASP.NET 中目前使用的 Ajax 技術(shù)以及其它一些實(shí)現(xiàn) Ajax 的優(yōu)秀框架。感興趣的朋友跟著小編一起學(xué)習(xí)asp.net與ajax的實(shí)現(xiàn)方式
    2015-09-09
  • ajax獲取json數(shù)據(jù)為undefined原因分析

    ajax獲取json數(shù)據(jù)為undefined原因分析

    Ajax 允許在不干擾 Web 應(yīng)用程序的顯示和行為的情況下在后臺(tái)進(jìn)行數(shù)據(jù)檢索。這篇文章主要介紹了ajax獲取json數(shù)據(jù)為undefined--原因,需要的朋友可以參考下
    2017-11-11
  • 基于iframe實(shí)現(xiàn)ajax跨域請(qǐng)求 獲取網(wǎng)頁(yè)中ajax數(shù)據(jù)

    基于iframe實(shí)現(xiàn)ajax跨域請(qǐng)求 獲取網(wǎng)頁(yè)中ajax數(shù)據(jù)

    這篇文章主要介紹了基于iframe實(shí)現(xiàn)ajax跨域請(qǐng)求,并獲取網(wǎng)頁(yè)中ajax數(shù)據(jù),如何利用網(wǎng)頁(yè)ajax請(qǐng)求暴露出來(lái)的接口去抓取網(wǎng)頁(yè)數(shù)據(jù)?需要的朋友可以參考下
    2016-01-01
  • jquery ajax實(shí)現(xiàn)批量刪除具體思路及代碼

    jquery ajax實(shí)現(xiàn)批量刪除具體思路及代碼

    回調(diào)函數(shù),在請(qǐng)求完成后需要進(jìn)行的操作:此處是把選中的checkbox去掉,接下來(lái)為大家詳細(xì)介紹下,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助
    2013-04-04
  • jquery通過(guò)AJAX從后臺(tái)獲取信息并顯示在表格上的實(shí)現(xiàn)類(lèi)

    jquery通過(guò)AJAX從后臺(tái)獲取信息并顯示在表格上的實(shí)現(xiàn)類(lèi)

    今天小編抽給時(shí)間把jquery通過(guò)AJAX從后臺(tái)獲取信息并顯示在表格上的實(shí)現(xiàn)類(lèi),單獨(dú)寫(xiě)出來(lái),這樣程序員,不需要每次寫(xiě)代碼了,可以節(jié)省大量的時(shí)間,感興趣的朋友一起來(lái)看看吧
    2015-09-09
  • Ajax實(shí)現(xiàn)局部刷新的方法實(shí)例

    Ajax實(shí)現(xiàn)局部刷新的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于Ajax實(shí)現(xiàn)局部刷新的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • ajax異步傳值及后端接收參數(shù)的多種方式小結(jié)

    ajax異步傳值及后端接收參數(shù)的多種方式小結(jié)

    這篇文章主要介紹了ajax異步傳值及后端接收參數(shù)的多種方式小結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • json格式的Ajax提交示例代碼

    json格式的Ajax提交示例代碼

    這篇文章主要介紹了json格式的Ajax提交,需要引入一些jar包及js包,示例代碼如下
    2014-08-08

最新評(píng)論

琼海市| 绵阳市| 海原县| 娱乐| 广饶县| 彰武县| 吴堡县| 西贡区| 嘉定区| 新巴尔虎左旗| 图木舒克市| 会理县| 宣恩县| 班玛县| 股票| 东城区| 无锡市| 中山市| 茶陵县| 阿拉善盟| 哈巴河县| 循化| 禄劝| 临洮县| 噶尔县| 田林县| 密云县| 朔州市| 北海市| 集安市| 乐山市| 高陵县| 山丹县| 青阳县| 清原| 保亭| 常德市| 涞水县| 瑞昌市| 乌拉特后旗| 化州市|