Fix captcha generator securimage.php to work with php 8

- basically use intval() everywhere to avoid implicit conversion from
  float
This commit is contained in:
towards-a-new-leftypol 2024-05-07 10:54:59 -04:00
parent 4f5dcd1773
commit b118588a82
1 changed files with 7 additions and 5 deletions

View File

@ -338,6 +338,8 @@ class Securimage
/*%*********************************************************************%*/
// Properties
public $config_file;
public $gdnoisecolor;
/**
* The width of the captcha image
@ -2232,9 +2234,9 @@ class Securimage
$py = array(); // y coordinates of poles
$rad = array(); // radius of distortion from pole
$amp = array(); // amplitude
$x = ($this->image_width / 4); // lowest x coordinate of a pole
$x = round($this->image_width / 4); // lowest x coordinate of a pole
$maxX = $this->image_width - $x; // maximum x coordinate of a pole
$dx = mt_rand($x / 10, $x); // horizontal distance between poles
$dx = mt_rand(intval($x / 10), $x); // horizontal distance between poles
$y = mt_rand(20, $this->image_height - 20); // random y coord
$dy = mt_rand(20, $this->image_height * 0.7); // y distance
$minY = 20; // minimum y coordinate
@ -2277,7 +2279,7 @@ class Securimage
$x *= $this->iscale;
$y *= $this->iscale;
if ($x >= 0 && $x < $width2 && $y >= 0 && $y < $height2) {
$c = imagecolorat($this->tmpimg, $x, $y);
$c = imagecolorat($this->tmpimg, intval($x), intval($y));
}
if ($c != $bgCol) { // only copy pixels of letters to preserve any background image
imagesetpixel($this->im, $ix, $iy, $c);
@ -2298,7 +2300,7 @@ class Securimage
$theta = ($this->frand() - 0.5) * M_PI * 0.33;
$w = $this->image_width;
$len = mt_rand($w * 0.4, $w * 0.7);
$len = mt_rand(intval($w * 0.4), intval($w * 0.7));
$lwid = mt_rand(0, 4);
$k = $this->frand() * 0.6 + 0.2;
@ -2318,7 +2320,7 @@ class Securimage
for ($i = 0; $i < $n; ++ $i) {
$x = $x0 + $i * $dx + $amp * $dy * sin($k * $i * $step + $phi);
$y = $y0 + $i * $dy - $amp * $dx * sin($k * $i * $step + $phi);
imagefilledrectangle($this->im, $x, $y, $x + $lwid, $y + $lwid, $this->gdlinecolor);
imagefilledrectangle($this->im, intval($x), intval($y), intval($x + $lwid), intval($y + $lwid), $this->gdlinecolor);
}
}
}