dvwa mysql_error()_DVWA--登录页面错误问题 469 | | PHP Fatal error: Uncaught exception 'PDOException' with me...

1 //MySQL PDO Prepared Statements (for impossible levels)

2 $db = new PDO(‘mysql:host=‘ . $_DVWA[ ‘db_server‘ ].‘;dbname=‘ . $_DVWA[ ‘db_database‘ ].‘;charset=utf8‘, $_DVWA[ ‘db_user‘ ], $_DVWA[ ‘db_password‘]);3 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);4 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

错误点如上 ↑

解决方法适用条件:

以下2项配置正确。

extension = php_pdo.dll

extension = php_pdo_mysql.dll

错误原因:

在:

DVWA\dvwa\includes\dvwaPage.inc.php

DVMA 默认的配置:

$_DVWA[ ‘default_security_level‘ ] = ‘impossible‘;

我们需要的实验环境一般都修改为:

$_DVWA[ ‘default_security_level‘ ] = ‘low‘;

注意这里有句注释:

// MySQL PDO Prepared Statements (for impossible levels) 意思是为PDO的预设impossible等级的检查,因为实际用的是low 所以可以 咔嚓掉了

正确做法:

//MySQL PDO Prepared Statements (for impossible levels)

//$db = new PDO(‘mysql:host=‘ . $_DVWA[ ‘db_server‘ ].‘;dbname=‘ . $_DVWA[ ‘db_database‘ ].‘;charset=utf8‘, $_DVWA[ ‘db_user‘ ], $_DVWA[ ‘db_password‘ ]);

//$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

关于PDO,百度百科解释如下:

PDO一是PHP数据对象(PHP Data Object)的缩写。

并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器。

PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层。

重要的分界点:

PDO需要PHP5核心OO特性的支持,所以它无法运行于之前的PHP版本。

在Unix环境下PHP5.X以上版本中。

在Lnux环境下PHP5.X以上版本中。

错误全码:

PHP Fatal error: Uncaught exception ‘PDOException‘ with message ‘could not find driver‘ in C:\web\DVWA\dvwa\includes\dvwaPage.inc.php:469Stack trace:

#0 C:\web\DVWA\dvwa\includes\dvwaPage.inc.php(469): PDO->__construct(‘mysql:host=loca...‘, ‘root‘, ‘123123‘)#1 C:\web\DVWA\login.php(8): dvwaDatabaseConnect()#2 {main}

thrown in C:\web\DVWA\dvwa\includes\dvwaPage.inc.php on line 469

由于是第一次接触PHP,没有注意到注释,导致查了一晚上,嗯可以这么说晚上7点到夜里1点27,真是够了。希望后来的不要出现这种问题,或许只是因为我是在自学哈哈。

原文:http://www.cnblogs.com/yyx001000000001010101100101/p/6076158.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值