利用SQL函数距离公式实现几天前,两点之间的距离

sql中利用两点的经纬度求距离的方法教程
今天的做的一个是求取用户工作地到所属于集团的距离,已知道的是用户工作点和集团点的经纬度。先贴经纬度求距离公式。
a(JA,WA)和b(JB,WB)点距离公式。
下面是sql语句:
*ASIN(SQRT(POWER(SIN((a.work_lat-b.lac_lat1)*ACOS(-1)/360),2) +COS(a.work_lat*ACOS(-1)/180)*COS(b.lac_lat1*ACOS(-1)/180)*POWER(SIN((a.work_long-b.lac_long1)*ACOS(-1)/360),2))) as work_dist1
工作点(work_long,work_lat)和集团点(lac_long,lac_lat1)。&long:经度,lat:纬度。
sql太长不好截图,直接复制过来的,蓝色字体是我们需要替换的数据,对照公式还是很好理解的。ASIN()对应公式中的arcsin()。SQRT()表示是开根号,POWER(num,2)表示求num的平方。ACOS(-1)=180&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
利用SQL注入漏洞登录后台的实现方法
摘要:早在02年,国外关于SQL注入漏洞的技术文章已经很多,而国内在05年左右才开始的。如今,谈SQL注入漏洞是否已是明日黄花,国内大大小小的网站都已经补上漏洞。但,百密必有一疏,入侵是偶然的,但安全绝对不是必然的。前些天,网上传得沸沸扬扬的“拖库”事件给我们敲响了安全警钟。在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下
早在02年,国外关于SQL注入漏洞的技术文章已经很多,而国内在05年左右才开始的。
如今,谈SQL注入漏洞是否已是明日黄花,国内大大小小的网站都已经补上漏洞。但,百密必有一疏,入侵是偶然的,但安全绝对不是必然的。
前些天,网上传得沸沸扬扬的“拖库”事件给我们敲响了安全警钟。
在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符。通常,用户可以通过以下接口调用数据库的内容:URL地址栏、登陆界面、留言板、搜索框等。这往往给骇客留下了可乘之机。轻则数据遭到泄露,重则服务器被拿下。
现在,很多网站开发人员知其然而不知其所以然,小弟也是,所以赶紧恶补下,总结如学习内容。希望对初学者能够起到抛砖引玉的作用。
一、SQL注入的步骤
a) 寻找注入点(如:登录界面、留言板等)
b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解)
c) 将sql语句发送给数据库管理系统(DBMS)
d) DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作
e) DBMS接受返回的结果,并处理,返回给用户
因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL语句够灵活的话)。
下面,我通过一个实例具体来演示下SQL注入
二、SQL注入实例详解(以上测试均假设服务器未开启magic_quote_gpc) 1) 前期准备工作
先来演示通过SQL注入漏洞,登入后台管理员界面
首先,创建一张试验用的数据表:
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(64) NOT NULL,
`password` varchar(64) NOT NULL,
`email` varchar(64) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
添加一条记录用于测试:
INSERT INTO users (username,password,email)
VALUES('MarcoFly',md5('test'),'
接下来,贴上登录界面的源代码:
&title&Sql注入演示&/title&
&meta http-equiv=&content-type& content=&text/charset=utf-8&&
&form action=&validate.php& method=&post&&
&fieldset &
&legend&Sql注入演示&/legend&
&td&用户名:&/td&&td&&input type=&text& name=&username&&&/td&
&td&密&&码:&/td&&td&&input type=&text& name=&password&&&/td&
&td&&input type=&submit& value=&提交&&&/td&&td&&input type=&reset& value=&重置&&&/td&
&/fieldset&
附上效果图:
当用户点击提交按钮的时候,将会把表单数据提交给validate.php页面,validate.php页面用来判断用户输入的用户名和密码有没有都符合要求(这一步至关重要,也往往是SQL漏洞所在)
&title&登录验证&/title&
&meta http-equiv=&content-type& content=&text/charset=utf-8&&
_connect(&localhost&,'root','') or die(&数据库连接失败!&);;
mysql_select_db(&injection&,$conn) or die(&您要选择的数据库不存在&);
$name=$_POST['username'];
$pwd=$_POST['password'];
$sql=&select * from users where username='$name' and password='$pwd'&;
$query=mysql_query($sql);
$arr=mysql_fetch_array($query);
if(is_array($arr)){
header(&Location:manager.php&);
echo &您的用户名或密码输入有误,&a href=/&Login.php/&&请重新登录!&/a&&;
注意到了没有,我们直接将用户提交过来的数据(用户名和密码)直接拿去执行,并没有实现进行特殊字符过滤,待会你们将明白,这是致命的。
代码分析:如果,用户名和密码都匹配成功的话,将跳转到管理员操作界面(manager.php),不成功,则给出友好提示信息。
登录成功的界面:
登录失败的提示:
到这里,前期工作已经做好了,接下来将展开我们的重头戏:SQL注入2) 构造SQL语句 填好正确的用户名(marcofly)和密码(test)后,点击提交,将会返回给我们“欢迎管理员”的界面。 因为根据我们提交的用户名和密码被合成到SQL查询语句当中之后是这样的: select * from users where username='marcofly' and password=md5('test') 很明显,用户名和密码都和我们之前给出的一样,肯定能够成功登陆。但是,如果我们输入一个错误的用户名或密码呢?很明显,肯定登入不了吧。恩,正常情况下是如此,但是对于有SQL注入漏洞的网站来说,只要构造个特殊的“字符串”,照样能够成功登录。 比如:在用户名输入框中输入:' or 1=1#,密码随便输入,这时候的合成后的SQL查询语句为: select * from users where username='' or 1=1#' and password=md5('') 语义分析:“#”在mysql中是注释符,这样井号后面的内容将被mysql视为注释内容,这样就不会去执行了,换句话说,以下的两句sql语句等价:
select * from users where username='' or 1=1#' and password=md5('')
select * from users where username='' or 1=1
因为1=1永远是都是成立的,即where子句总是为真,将该sql进一步简化之后,等价于如下select语句: select * from users 没错,该sql语句的作用是检索users表中的所有字段 小技巧:如果不知道' or 1=1#中的单引号的作用,可以自己echo 下sql语句,就一目了然了。 看到了吧,一个经构造后的sql语句竟有如此可怕的破坏力,相信你看到这后,开始对sql注入有了一个理性的认识了吧~ 没错,SQL注入就是这么容易。但是,要根据实际情况构造灵活的sql语句却不是那么容易的。有了基础之后,自己再去慢慢摸索吧。 有没有想过,如果经由后台登录窗口提交的数据都被管理员过滤掉特殊字符之后呢?这样的话,我们的万能用户名' or 1=1#就无法使用了。但这并不是说我们就毫无对策,要知道用户和数据库打交道的途径不止这一条。 更多关于SQL注入的信息请看我的另一篇博文:利用SQL注入漏洞拖库 原创文章:WEB开发_小飞 转载请注明:http://www.cnblogs.com/hongfei/archive//sql-injection-tuoku.html
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
新用户大礼包!
现在注册,免费体验40+云产品,及域名优惠!
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
利用SQL注入漏洞登录后台的实现方法相关信息,包括
的信息,所有利用SQL注入漏洞登录后台的实现方法相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International扫一扫体验手机阅读
时间转换为天小时分钟秒系统当前时间相差8小时截取小数点后两位SqlServer日期函数
<span type="1" blog_id="1409068" userid='
30篇文章,3W+人气,0粉丝
运维开发全攻略
¥51.0019人订阅
大数据时代的微服务之路
¥51.00500人订阅/ 浏览文章更新时间: 23:02:47
利用SQL函数标签实现文章列表
自定义SQL函数标签非常灵活而且非常强大,它可以实现的功能很多,如果能够灵活掌握,结合KesionCMS系统的强大功能,打造一个有个性又美观的网站就更是轻而易举了。下面,我们举些例子来证明一下吧^_^&
1、&利用自定义SQL函数标签实现文章列表
效果图如下:
我们在建标签前先对要实现的效果进行分析,主要是由导航+文章标题,标题有下划线+文章的添加日期组成。
新建标签:
假设,标签名称命名为&国内新闻&,数据源选择&KesionCMS主数据库&,不选择ajax输出,点击下一步构造SQL查询语句,如下图:
在主表中,选择&文章数据表&,因为我们是从文章系统中调用这些信息,字段选择根据我们上面的分析,需要文章ID,文章标题及文章添加的日期,按住Ctrl,然后用鼠标分别选中,接下来就是查询语句了,当我们选择字段时,查询语句也会自动跟着出来,如select& id ,title,adddate from ks_article
但是,我们要调用的信息必须是审核过的信息所以加上一个条件where verific=1;另外一个条件是文章必须是正常的,而没被放入回收站内的,所以加上另一个条件and delft=0 ;按照降序输出即最新添加的文章显示在最上边order by id desc,并且我们要调用前12条信息,第一部份显示6条信息后用分隔线隔开再显示第二部份的6条,所以我们的语句出来了:select top 12 ID,Title,Adddate from KS_Article where verific=1 and delft=0& order by id desc。
语句完成后,点击&下一步&继续建立标签样式,写循环体, 循环体如:[loop] 循环内容& [/loop]
我们上面分析过的是有两部份组合,中间是一条分隔线,那么,我们就要用两个[loop][/loop]组成。
&[loop=6]&& /*循环6 次*/
&&&&&&&& /*文章导航*/
/*给文章标题加链接*/
&({$Field(Adddate,Date,YYYY-MM-DD)})&&&&&& /*文章添加日期用()括起来*/
/*每个标题用
-------------------------------------------------------------------------------
/*两个部份之间的分隔线并换行*/
& ({$Field(Adddate,Date,YYYY-MM-DD)})
把上部份循环体复制一份即可。如下图:
1、SQL标签定义规则
循环体格式:[loop=n]循环标签的内容[/loop]
其中n表示循环次数,且n满足n>=0。loop为循环关键字,此循环体可以重复使用,但是不能嵌套。
2、SQL标签字段规则
字段格式:{$Field(FieldName,OutType,Param,...)}
FieldName&&--数据库表的字段名称
OutType&&&&--输出类型支持:文本(Text)、日期(Date)、数据(Num)、对象URL(GetInfoUrl),栏目URL(GetClassUrl) 5种类型
3、支持使用{ReqNum(字符串)}或{ReqStr(字符串)}来取得Url的参数值
如:http://www.kesion.com/index.asp?ClassID=100,那么{ReqNum(ClassID)} 将得到100
保存后,调用标签。打开模板,选择更多标签,用户自定义函数标签的{SQL_国内新闻}插入到模板要显示的位置,如下图:
预览网页效果,如下图:
我们看到这个效果与我们的效果图虽然效果差不多达到了,但是不是很好看,我们可以让它变的更好看点,可以用样式进行控制,假设我们在循环体中加一个样式进行控制,如下图:
循环体代码如下:
({$Field(Adddate,Date,YYYY-MM-DD)})& &/*加一个span去控制日期的样式*/
-------------------------------------------------------------------------------
&({$Field(Adddate,Date,YYYY-MM-DD)})
/*定义一个样式l进行控制,以达到更好的效果*/
光有这段循环体代码还不够,还需要对样式进行写语句控制,我们打开模板控制样式,如下图:
样式是必须在之间。
控制完毕,我们再看一下我们的杰作,效果绝对比刚才的好看很多很多。看下图:
上一篇: 没有了用SQL语句写 求平面两点的距离.....
[问题点数:100分,结帖人ot512csdn]
本版专家分:0
结帖率 97.37%
CSDN今日推荐
本版专家分:441372
年度总版至少三次排名前十即授予名人勋章
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2009年3月 总版技术专家分月排行榜第一2008年12月 总版技术专家分月排行榜第一2008年3月 总版技术专家分月排行榜第一2007年12月 总版技术专家分月排行榜第一2007年10月 总版技术专家分月排行榜第一
本版专家分:441372
年度总版至少三次排名前十即授予名人勋章
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2009年3月 总版技术专家分月排行榜第一2008年12月 总版技术专家分月排行榜第一2008年3月 总版技术专家分月排行榜第一2007年12月 总版技术专家分月排行榜第一2007年10月 总版技术专家分月排行榜第一
本版专家分:140721
2008年 总版技术专家分年内排行榜第六
2007年12月 总版技术专家分月排行榜第二
2011年7月 荣获微软MVP称号2009年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号2008年7月 荣获微软MVP称号
2008年4月 MS-SQL Server大版内专家分月排行榜第二2008年3月 MS-SQL Server大版内专家分月排行榜第二2008年1月 MS-SQL Server大版内专家分月排行榜第二2007年12月 MS-SQL Server大版内专家分月排行榜第二
本版专家分:5507
本版专家分:140721
2008年 总版技术专家分年内排行榜第六
2007年12月 总版技术专家分月排行榜第二
2011年7月 荣获微软MVP称号2009年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号2008年7月 荣获微软MVP称号
2008年4月 MS-SQL Server大版内专家分月排行榜第二2008年3月 MS-SQL Server大版内专家分月排行榜第二2008年1月 MS-SQL Server大版内专家分月排行榜第二2007年12月 MS-SQL Server大版内专家分月排行榜第二
本版专家分:441372
年度总版至少三次排名前十即授予名人勋章
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2009年3月 总版技术专家分月排行榜第一2008年12月 总版技术专家分月排行榜第一2008年3月 总版技术专家分月排行榜第一2007年12月 总版技术专家分月排行榜第一2007年10月 总版技术专家分月排行榜第一
本版专家分:140721
2008年 总版技术专家分年内排行榜第六
2007年12月 总版技术专家分月排行榜第二
2011年7月 荣获微软MVP称号2009年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号2008年7月 荣获微软MVP称号
2008年4月 MS-SQL Server大版内专家分月排行榜第二2008年3月 MS-SQL Server大版内专家分月排行榜第二2008年1月 MS-SQL Server大版内专家分月排行榜第二2007年12月 MS-SQL Server大版内专家分月排行榜第二
本版专家分:140721
2008年 总版技术专家分年内排行榜第六
2007年12月 总版技术专家分月排行榜第二
2011年7月 荣获微软MVP称号2009年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号2008年7月 荣获微软MVP称号
2008年4月 MS-SQL Server大版内专家分月排行榜第二2008年3月 MS-SQL Server大版内专家分月排行榜第二2008年1月 MS-SQL Server大版内专家分月排行榜第二2007年12月 MS-SQL Server大版内专家分月排行榜第二
本版专家分:0
本版专家分:441372
年度总版至少三次排名前十即授予名人勋章
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2009年3月 总版技术专家分月排行榜第一2008年12月 总版技术专家分月排行榜第一2008年3月 总版技术专家分月排行榜第一2007年12月 总版技术专家分月排行榜第一2007年10月 总版技术专家分月排行榜第一
本版专家分:140721
2008年 总版技术专家分年内排行榜第六
2007年12月 总版技术专家分月排行榜第二
2011年7月 荣获微软MVP称号2009年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号2008年7月 荣获微软MVP称号
2008年4月 MS-SQL Server大版内专家分月排行榜第二2008年3月 MS-SQL Server大版内专家分月排行榜第二2008年1月 MS-SQL Server大版内专家分月排行榜第二2007年12月 MS-SQL Server大版内专家分月排行榜第二
本版专家分:1632
本版专家分:0
本版专家分:441372
年度总版至少三次排名前十即授予名人勋章
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2009年3月 总版技术专家分月排行榜第一2008年12月 总版技术专家分月排行榜第一2008年3月 总版技术专家分月排行榜第一2007年12月 总版技术专家分月排行榜第一2007年10月 总版技术专家分月排行榜第一
本版专家分:2249
本版专家分:0
匿名用户不能发表回复!
其他相关推荐
最近点对问题定义:已知上m个点的集合,找出对接近的一对点。
在二维空间里,可用分治法求解最近点对问题。预处理:分别根据点的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y中的点就是S中的点。
情况(1):点数小于等于三时:
情况(2):点数大于三时:
首先划分集合S为
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:zyq.cpp
者:赵彦庆
*完成日期:日
*版 本 号:v1.0
*问题描述:用一般函数设计点类求两点之间的距离
*输入描述:
*程序输出:两点间距离
作者:xxw9485
参考资料:参考资料1、参考资料2
之前遇到过这样的问题:手里有一批患者的具体居住地点以及对应的经纬度,我想分析下患者的具体分布情况,不同患者之间的距离关系,这时就需要根据某两点的经纬度来求该两点的实际距离了。下面就是计算公式和代码:
球面上任意两点的距离计算公式可以参考维基百科上的下述文章。
Great-circle...
转自:http://blog.csdn.net/hackbuteer1/article/details/7484746
给定平面上N个点的坐标,找出距离最远的两个点。
类似于“最近点对问题”,这个问题也可以用枚举的方法求解,时间复杂度O(n^2)。
“寻找最近点对”是用到分治策略降低复杂度,而“寻找最远点对”可利用几何性质。注意到:对于平面上有n个点,这一对最远点必然存在于这
sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离sqlserver根据经纬度计算两点间距离
&br /& &br /&#include&iostream&
#include&cmath&
int distance1;
double distance2;
int t_distance(int x1,int x2,int y1,int y2);
double t_distance(double x1,double x2,double y1,double y2);
int main()
int a,b,c,d;
float f,i,j
在学习过程中一直都在迷惑,两点之间的距离到底是怎么计算的,如果只是使用两点之间的坐标相减,只能的到一个向量,然后计算向量的模? 经过查找一直没有查到如何计算向量的模,unity中计算平方和开方是十分费资源的。后来查看到Vector3的一个API,其中有一个方法:
Returen the length of vector(Read Only).
然后经过测试:
题目地址 hdu 1007http://acm.hdu.edu.cn/showproblem.php?pid=1007题目描述Problem DescriptionHave you ever played quoit in a playground? Quoit is a game in which flat rings are pitched at some toys, with all the
#导入math包
import math
#定义点的函数
class Point:
def __init__(self,x=0,y=0):
def getx(self):
return self.x
def gety(self):
return self.y
#定义直线函数
Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。Output
对于每组输入数据,输出一行,结果保留两位小数。Sample Input
0 1 1 0Sample Output
1.41需要使用M

我要回帖

更多关于 附近的人距离几天前 的文章

 

随机推荐