报错
Notice: Array to string conversion in C:\phpStudy\PHPTutorial\WWW\DVWA\dvwa\includes\dvwaPage.inc.php
强迫症不想看到。
而且会影响到dvwa某些页面内容的正常渲染。
简而言之,是php7.3版本之前和之后设置cookie的方式有些差异,dvwa源码里采用的是后者,将参数作为关联数组传递给函数。而在使用例如php5.5.38的时候,这种方式会报Notice。
改一下就好,不打算去深究。
解决办法
找到 dvwa\includes\dvwaPages.inc.php, 将54行附近的
session_set_cookie_params([
'lifetime' => $maxlifetime,
'path' => '/',
'domain' => $domain,
'secure' => $secure,
'httponly' => $httponly,
'samesite' => $samesite
]);
改为
//被我更改。7.3以前的php要分别设置samesite属性,前面6个属性用另一个函数设置。
/*session_set_cookie_params([
'lifetime' => $maxlifetime,
'path' => '/',
'domain' => $domain,
'secure' => $secure,
'httponly' => $httponly,
'samesite' => $samesite
]);*/
session_set_cookie_params($maxlifetime, '/', $domain, $secure, $httponly);
session_start();
// 设置 SameSite 属性
setcookie(session_name(), session_id(), time() + $maxlifetime, '/', $domain, $secure, $httponly);
打算使用php7.3的时候改回去就好。