Masalah
Kadang-kadang fungsi imagettfbbox() menghasilkan jawaban ngawur, misalnya nilai negatif yang besar.
array(8) {
[0]=>
int(5)
[1]=>
int(-1610627808)
[2]=>
int(-1610628216)
[3]=>
int(134958127)
[4]=>
int(136904992)
[5]=>
int(12)
[6]=>
int(-1610628152)
[7]=>
int(1075156968)
}
Solusi
Menurut referensi [1], penyebabnya mungkin adalah masalah threading.
Untuk mengakalinya, di kode Anda, ulangi pemanggilan imagettfbox() beberapa kali hingga memperoleh jawaban yang tidak ngawur.
Contoh, kode berikut:
$textbox = imagettfbbox($font_size, 0, $this->font, $code);
bisa Anda tambahkan sehingga menjadi:
while (1) {
$textbox = imagettfbbox($font_size, 0, $this->font, $code);
if ($textbox[2] > 0) break;
}
Joomla, komponen D-Mack RecommendFriends
Bug ini menyebabkan CAPTCHA tidak muncul tulisannya, hanya latar belakang dan garis-garisnya saja.
versi yang dicek: Version v2.0.3
Pada baris 607, ganti:
$textbox = imagettfbbox($font_size, $angle, $font, $code) or die('Error in imagettfbbox function");
menjadi:
while (1) {
$textbox = imagettfbbox($font_size, $angle, $font, $code) or die('Error in imagettfbbox function");
if ($textbox[2] > 0) break;
}