简单的表单登陆代码,了解sql注入,禁止单引号还有反斜杠\ # and or order关键字的提交php
数据库:html
简单的源码:
<!DOCTYPE html>
<html>
<head>
<title>后台表单登陆页面</title>
<meta charset=UTF-8>
</head>
<body>
<center>
<h3>后台登陆</h3>
<form action="" method="POST">
账号: <input name='username' type='text'><br />
密码: <input name='password' type='password'><br />
<input type='submit' value='登陆'>
</form>
</center>
</body>
</html>前端
<!--先后端都在一个页面上-->mysql
<?phpsql
//判断有数据才执行后端代码,什么都不输入仍是前端登录界面,防止前端没有数据,后端验证总是弹出
if(!empty($_REQUEST)){
//数据不为空和空格,赋值帐号和密码,都转化为小写,两边去除空格,不然报错
$user = ! empty(trim($_REQUEST['username'])) ? trim(strtolower($_REQUEST['username'])) : die("<script>alert('帐号不能为空!')</script>");
$passwd = ! empty(trim($_REQUEST['password'])) ? trim(strtolower($_REQUEST['password'])) : die("<script>alert('密码不能为空!')</script>");数据库
//禁止输入单引号
if(stristr($user,'\'') || stristr($passwd,'\'') ){
die("<script>alert('帐号密码有恶意符号,请从新输入')</script>");
}后端
//禁止添加能够sql注入的关键词
if(preg_match_all("/\/|#|and|or|order/",$user) || preg_match_all("/\/|#|and|or|order/",$passwd)){
die ("<script>alert('帐号密码有非法字符,请从新输入')</script>");
}数组
$conn = mysqli_connect('127.0.0.1','root','root','db_form'); //链接数据库
$sql = "select * from admin where username='$user' and password='$passwd'"; //查询语句,只要能找到该条记录,说明匹对正确,判断为真,登录成功ide
$result = mysqli_query($conn,$sql); //取出查询结果,是个对象
$array = mysqli_fetch_array($result); //把结果对象变为数组取出数据
//var_dump($array);fetch
//经过取数组里的键值,获得相应结果//(能查到对应的用户名,结果为ture,显示登录成功,取不到对应的结果,显示错误)if($array['username']) {echo '登录成功!';}else{echo '帐号密码错误!';}$conn->close();//关闭链接}?>