返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Ajax提交表单数据到入库的全盘操作过程是怎样的
  • 249
分享到

Ajax提交表单数据到入库的全盘操作过程是怎样的

2024-04-02 19:04:59 249人浏览 八月长安
摘要

ajax提交表单数据到入库的全盘操作过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 *******P

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提交表单数据到入库的全盘操作过程是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网JavaScript频道,感谢各位的阅读!

--结束END--

本文标题: Ajax提交表单数据到入库的全盘操作过程是怎样的

本文链接: https://lsjlt.com/news/82720.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Ajax提交表单数据到入库的全盘操作过程是怎样的
    Ajax提交表单数据到入库的全盘操作过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 *******p...
    99+
    2024-04-02
  • 数据库MySQL的简单操作是怎样的
    数据库MySQL的简单操作是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以MySQL为例。一、下载,安装,mysql和navica...
    99+
    2024-04-02
  • 如何通过button将form表单的数据提交到action层
    这篇文章将为大家详细讲解有关如何通过button将form表单的数据提交到action层,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。form表单中不需要写action的...
    99+
    2024-04-02
  • mysql数据库误删除后的数据恢复操作过程是怎样的
    这篇文章给大家介绍mysql数据库误删除后的数据恢复操作过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在日常运维工作中,对于mysql数据库的权限的规避,SQL审核优化、数...
    99+
    2024-04-02
  • ABAP工作进程对数据库表读取操作的检测是怎样的
    本篇文章给大家分享的是有关ABAP工作进程对数据库表读取操作的检测是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。小编要介绍的,是使用SM50检测出工作进程长时间读取一张...
    99+
    2023-06-03
  • MySQL创建数据库和创建数据表的操作过程
    目录mysql 创建数据库和创建数据表一、数据库操作语言二、创建数据库1. 连接 MySQL2. 查看当前的数据库3. 创建数据库4. 创建数据库时设置字符编码5. 查看和显示数据库的编码方式6. 使用 alter da...
    99+
    2024-04-02
  • EF架构codeFirst从初始化到数据库迁移的过程是怎样的
    这篇文章给大家介绍EF架构codeFirst从初始化到数据库迁移的过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一些介绍CodeFirst是EntityFrameworks...
    99+
    2024-04-02
  • 图数据库查询语言Gremlin vs Cypher vs nGQL的操作入门是怎样的
    图数据库查询语言Gremlin vs Cypher vs nGQL的操作入门是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。文章的开...
    99+
    2024-04-02
  • SQL Server数据库中的存储过程是怎么样的
    SQL Server数据库中的存储过程是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么是存储过程如果你接触过其他的编程语言,那么就...
    99+
    2024-04-02
  • oracle数据库备份和恢复的过程是怎样的
    本篇文章为大家展示了oracle数据库备份和恢复的过程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Oracle数据库备份和Oracle数据库恢复是使用Or...
    99+
    2024-04-02
  • 表空间与数据文件的offline和online操作是怎样的
    这期内容当中小编将会给大家带来有关表空间与数据文件的offline和online操作是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 1...
    99+
    2024-04-02
  • Django使用mysqlclient服务连接并写入数据库的操作过程
    目录Django使用mysqlclient服务连接并写入数据库准备一、安装mysqlclient服务二、settings.py文件1.将子应用写入2.配置数据库三.配置urls.py文件1.初始化应用下的urls.py文...
    99+
    2022-07-05
    Django mysqlclient服务连接 Djangomysqlclient服务
  • 滑轮滚动到页面底部ajax加载数据配合jsonp实现过程是怎样的
    这期内容当中小编将会给大家带来有关滑轮滚动到页面底部ajax加载数据配合jsonp实现过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 ...
    99+
    2024-04-02
  • 阿里云服务器回滚数据库一次安全的操作过程
    在使用阿里云服务器进行数据库管理时,我们可能会遇到数据错误或误操作的情况。此时,回滚数据库就是一个有效的解决方案。本文将详细介绍如何通过阿里云服务器回滚数据库,以确保数据的安全性和完整性。 在阿里云服务器上进行数据库管理时,我们可能会遇到各...
    99+
    2023-12-13
    阿里 操作过程 服务器
  • raid5磁盘阵列2块硬盘离线数据的恢复过程是怎么样的
    raid5磁盘阵列2块硬盘离线数据的恢复过程是怎么样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。服务器故障描述:客户使用Dell 2850服务器组建了raid5磁盘阵列...
    99+
    2023-06-06
  • 适宜做简单搜索的MySQL数据库全文索引是怎样的
    本篇文章为大家展示了适宜做简单搜索的MySQL数据库全文索引是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。全文索引在 MySQL 中是一个 FULLTEXT...
    99+
    2024-04-02
  • Centos7上卸载MariaDB数据库并安装mysql的过程是怎样的
    这篇文章给大家介绍Centos7上卸载MariaDB数据库并安装mysql的过程是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(1) 列出所有被安装的rpm package#&...
    99+
    2024-04-02
  • 数据库中sql存储过程语法格式是怎么样的
    这篇文章给大家分享的是有关数据库中sql存储过程语法格式是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。sql中可使用“CREATE PROCEDURE”语句来创建存储过...
    99+
    2024-04-02
  • 生产数据库MyISAM存储引擎转为Innodb的过程是怎样的
    生产数据库MyISAM存储引擎转为Innodb的过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。mysql数据库存储...
    99+
    2024-04-02
  • MySQL数据库单一表突破4G限制的实现方法是怎么样的
    这期内容当中小编将会给大家带来有关MySQL数据库单一表突破4G限制的实现方法是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。问题:在发表回复时出现“The ta...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作