Podgląd pojedynczego posta
Stary 05.02.2006, 19:35   #1
Patrix
Pingwin specjalista.
 
Avatar użytkownika Patrix
 
Data rejestracji: 22.06.2002
Lokalizacja: Central Park
Posty: 15,089
Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>Patrix ma z czego być dumnym <1000 - 1499 pkt>
[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() ?
__________________
amiga500site
Patrix jest offline   Odpowiedz cytując ten post

  #ads
CDRinfo.pl
Reklamowiec
 
 
 
Data rejestracji: 29.12.2008
Lokalizacja: Sieć globalna
Wiek: 31
Posty: 1227
 

CDRinfo.pl is online