3.5、后端开发基础PHP - PHP简介及PHP基本函数(下)【作业重写】 - 已锁定

你看不见我啊   ·   发表于 2018-07-09 17:07:05   ·   CTF&WP专版

登录表单

<!DOCTYPE HTML>
<html>
<body>
<title>Track安全社区</title>
<form action='a.php'methon='GET'><br>
用户名:<input type='text' name='username'><br>
密码:<input type='text' name='password'><br>
<input type='submit' value='登录'>

</form>

</body>
</html>

登录验证

<!DOCTYPE html>

<html>

<body>

<?php

// 创建连接

header('content-text:text/html;charset=utf-8');

$conn = mysqli_connect("localhost","root","root","mysql");

// 检查链接

if (!$conn) {

    die("连接失败: " . mysql_error);

}


$username=$_GET['username'];//获取用户名和密码

$password=$_GET['password'];
$newpers=mysqli_real_escape_string($conn,$username);


$sql = "select username,password from admin where username='$username'and password='$password'";

$result = mysqli_query($conn,$sql);


if(mysqli_num_rows($result) > 0) {

    echo "登录成功";

} else {

    echo "查询失败";

}

mysqli_close($conn);

?>

</body>

</html>

sql防注入,百度了好久,什么

 mysqli_real_escape_string() 函数

htmlentities()都没用,过滤不了'

pdo函数又看不懂

还有,课程让下的jspstudy2016全量包,我用了根本连接不了数据库,所以一直检查不了错误,现在换了phpstudy2018使用正常,希望可以指点一下PDO扩展的 prepare 方法,最好带完整代码,谢谢

打赏我,让我更有动力~

1 条回复   |  直到 2018-7-10 | 1228 次浏览

Track-方丈
发表于 2018-7-10

某些内容不能依赖程序本身,得靠自己写代码,要不然就不会有这么多问题了。

PDO使用方式如下:

//创建DSN变量

$dsn"mysql:host=localhost;dbname=dnbname;charset=utf8";

//连接数据库

//array(PDO::ATTR_PERSISTENT => true)表示使用持久化连接。

$pdo = new PDO($dsn, dbusername, rdpassword, array(PDO::ATTR_PERSISTENT => true)); 

//SQL预处理,查询的变量使用?占位。 

$sql = 'SELECT * FROM user WHERE username=? and password=?'; 

$st = $conn->prepare($sql); 

//传入变量,执行SQL。

$data = array("username","password");

$st->execute($data);

//获取查询结果行数。

$rowCount = $st->rowCount(); 

//获取查询结果数组。 

$rows = $st->fetchAll();


评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.