Forum CDRinfo.pl

Forum CDRinfo.pl (https://forum.cdrinfo.pl/)
-   Off topic (https://forum.cdrinfo.pl/f5/)
-   -   [php] - błąd - "Call to undefined function" (https://forum.cdrinfo.pl/f5/php-blad-call-undefined-function-61970/)

Patrix 05.02.2006 19:35

[php] - błąd - "Call to undefined function"
 
Chciałem się zabezpieczyć przed spamem (roboty klepia też po www procz maili). Skuteczna metoda to tzw. wizualne potwierdzenie.
Dla wyjasnienia - pojawia się obrazek z ciągiem znaków, ktory trzeba przepisać w odpowiednie pole, wtedy kod wykonuje się dalej, przy błednym wpisaniu (badz pominieciu tego) zapętla się od nowa.


Znalazłem w internecie niby działający skrypt:

Kod PHP:

<?

session_start();

$txt = $_SESSION***91;"kod"***93;;

$x = 85; // szerokość obrazka

$y = 25; // wysokość  obrazka

$rozmiarczcionki = 10;

$czcionka = "./bookosb.ttf";

$pochylenie = 5;



// co druga litera duża + spacje między literami

for ($i=0; $i<strlen($txt); $i++) {

  if ($i%2==0) $txt***91;$i***93; = strtoupper($txt***91;$i***93;);

  else $txt***91;$i***93; = strtolower($txt***91;$i***93;);

}

$txt = trim(preg_replace("/(.{1})/","{while.result} ", $txt));



$wymiary = imagettfbbox($rozmiarczcionki,$pochylenie,$czcionka,$txt);

$szerokosc = $wymiary***91;2***93;-$wymiary***91;0***93;;

$wysokosc = $wymiary***91;1***93;-$wymiary***91;7***93;;



$im = imagecreatetruecolor($x, $y);

imagefill($im, 0,0, imagecolorallocate($im, 255, 128, 128)); // tło

$kolor = imageColorAllocate($im, 0, 0, 0); // czarne litery

imagettftext($im, $rozmiarczcionki, $pochylenie, ($x-$szerokosc)/2,

($y+$wysokosc)/2, $kolor, $czcionka, $txt);



// rozsianie kropek w przypadkowych kolorach i miejscach

srand((double)microtime()*1000000);

for($i=1;$i<100;$i++) {

  $kolor = imagecolorallocate($im, rand(0,255), rand(0,255), rand(0,255));

  imagesetpixel($im, rand(0,$x), rand(0,$y), $kolor);

}



header("Content-type: image/png");

imagepng($im);

imagedestroy($im);

?>


losowanie hasla wyglada tak:

Kod PHP:

srand((double)microtime()*1000000);
for(
$i=0;$i<5;$i++) {
$znak=chr(rand(48,122));
if (
eregi("***91;0-9a-zA-Z***93;",$znak)) $haslo .= $znak;
else 
$i--;
}
$_SESSION***91;"kod"***93; = $haslo


weryfikacja hasła:

Kod PHP:

if (strtolower($_POST***91;"weryfikacja"***93;)<>strtolower($_SESSION***91;"kod"***93;)
and isset(
$_POST***91;"weryfikacja"***93;)) $a++; 

Chyba widać coś z tych kawałków ;)


Czcionka bookosb.ttf jest zaraz obok tego pliku w tym samym katalogu.
Po wyświetleniu tego dostaję błąd:
"Fatal error: Call to undefined function: imagettfbbox() in /home/konto/katalog/obrazek.php on line 17"

Taki błąd pojawia się jeśli użyto funkcję, która nie jest zdefiniowana, tylko teraz czy ja jej nie zdefiniowałem czy co ? bo na serwerze biblioteka GD jest zainstalowana i wiem, że działa...

jakies pomysły do tego ? do imagettfbbox() ?

Patrix 05.02.2006 20:41

Ilość załączników: 2
dobra moze inaczej, sorry za dubla ale zamieszczam tu pliczki, które u mnie nie działają (znalazłem na czeskiej stronie)
pojawia mi się błąd:
Fatal error: Call to undefined function: imagettftext() in /home/katalog/html/test/obrazek.php on line 13

reszta na obrazku...

jeśli to zadziała to znaczy, że musze pogadać z adminem ;)

qfir 06.02.2006 18:38

na pierwszy rzut oka wydaje mi sie, ze skoro w skrypcie jest:
Kod:

ImageTTFText($podklad, rand(25,30), rand(-40,40), 20, 40, $barva, "./SHOWG.TTF", $znak[0]);
to plik z czcionka powinien byc jeden katalog wyzej, niz plik php :), ale moge sie mylic :P

Patrix 06.02.2006 18:54

wkleiłem oryginał, kombinowałem z plikiem ttf (wywalajac tez './')
problem, lezy po stronie serwera, owszem GD na nim stoi ale widać nie działa w nim wszystko co ma działać. Wiem bo na koncie Smartka paczka "test.rar" działa bez kombinowania - a u mnie tak czy siak nie.

jak pomęcze admina to napisze czy miałem racje :D


Wszystkie czasy w strefie CET. Aktualna godzina: 01:49.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.