CruellaDeVille Skrevet 31. mai 2006 Del Skrevet 31. mai 2006 Jeg har tatt utgangspunkt i en captcha som en her på forum har laget (https://www.diskusjon.no/index.php?showtopic=583400 ), redesignet det til å bruke klasser og testet. Funker fint på min winxp sp2 med gd 2.0.28 og freetype 2.1.9. I skriptet brukes funksjonen imagettftext, hvor et av parameterene skal være en font-fil (av typen .tff). I skriptet jeg tok utgangspunkt i refereres det til "./Arial.tff", jeg kan også endre den til eks verdana eller en annen true type. Så kommer problemet mitt. Jeg ska laste dette over på en produksjonsserver, som kjører linux red hat, og nå virker ikke skriptet mitt mer. Jeg får feilmelding om at fontfilen ikke kan åpnes. Jeg har googlet meg frem til at jeg kan sette GDFONTLIBRARY til current directory, men uten hell. Noen ideer om hvordan jeg kan løse dette? For de som er glad i å lese kode: http://nibbler.no/files/capcha/ Lenke til kommentar
MC2 Skrevet 31. mai 2006 Del Skrevet 31. mai 2006 (endret) er du sikker på at filen er der? For at ifølge koden skal den være i samme mappe, ikke sant? Og jeg får bare opp 404 når jeg prøver: http://nibbler.no/files/capcha/WorstveldSlingExtra.tff og for enkelhetenskyld, sett $gdpath til dirname($_SERVER["SCRIPT_FILENAME"]) Endret 31. mai 2006 av MC2 Lenke til kommentar
Peter Skrevet 31. mai 2006 Del Skrevet 31. mai 2006 what he said^^ dirname(__FILE__) er min favoritt Lurer forresten hvilken PHP-versjon du koder mot? Utifra stilen vil jeg anta PHP4? Sist men ikke minst så burde du oppgi størrelsen på bildet som Content-Length, ikke bare Content-Type. Lenke til kommentar
CruellaDeVille Skrevet 31. mai 2006 Forfatter Del Skrevet 31. mai 2006 er du sikker på at filen er der? For at ifølge koden skal den være i samme mappe, ikke sant? Og jeg får bare opp 404 når jeg prøver: http://nibbler.no/files/capcha/WorstveldSlingExtra.tff og for enkelhetenskyld, sett $gdpath til dirname($_SERVER["SCRIPT_FILENAME"]) 6216908[/snapback] Hmm, en liten skrivefeil, nå rettet opp i. og $gdpath har jeg endret til det du sa.... Still nothing. Jeg tenkte kanskje det var fordi jeg hadde en "rar font" jeg ville vise, så jeg overførte arial istedet, men med samme resultat. Jeg tror det har noe med hvor skriptet skal lete etter .tff-filer, og putenv-funksjonen. Men jeg er tom for ideer om hva jeg kan google på. Alle steder jeg har letet bruker de putenv("GDFONTPATH=".<sti>) og filnavn uten ttf, men hos meg funker det ikke. Lenke til kommentar
CruellaDeVille Skrevet 31. mai 2006 Forfatter Del Skrevet 31. mai 2006 what he said^^ dirname(__FILE__) er min favoritt Lurer forresten hvilken PHP-versjon du koder mot? Utifra stilen vil jeg anta PHP4? Sist men ikke minst så burde du oppgi størrelsen på bildet som Content-Length, ikke bare Content-Type. 6217270[/snapback] versjon 4.3.1.0 Lenke til kommentar
MC2 Skrevet 31. mai 2006 Del Skrevet 31. mai 2006 tror jeg fant feilen: for($i=0;$i<5;$i++) { $nm = rand(0, 50); $col = imagecolorallocate($image, $nm, $nm, $nm); $str = $code[$i]; $font = 1; du setter jo $font til 1 etter at du har satt til arial.tff. Kan det være grunnen? Lenke til kommentar
Peter Skrevet 31. mai 2006 Del Skrevet 31. mai 2006 (endret) Merk dette: Depending on which version of the GD library PHP is using, when fontfile does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path. /*In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems. <?php // Set the enviroment variable for GD*/ putenv('GDFONTPATH=' . realpath('.')); // Name the font to be used (note the lack of the .ttf extension) $font = 'SomeFont'; ?> Prøv derfor å fjerne ./ og .ttf fra Image::$font Slik: $font = 'WorstveldSlingExtra'; Endret 31. mai 2006 av Nazgul Lenke til kommentar
CruellaDeVille Skrevet 31. mai 2006 Forfatter Del Skrevet 31. mai 2006 tror jeg fant feilen: for($i=0;$i<5;$i++) { $nm = rand(0, 50); $col = imagecolorallocate($image, $nm, $nm, $nm); $str = $code[$i]; $font = 1; du setter jo $font til 1 etter at du har satt til arial.tff. Kan det være grunnen? 6217378[/snapback] Definitivt! Dette er pinlig :$ Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå