Captcha- nezobrazenie obrazku

Programovacie jazyky, rady, poradňa...
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Captcha- nezobrazenie obrazku

Príspevok od používateľa Gepid »

Caute! Zase ja :D
Tak teraz mam problem s captchov. Nejde mi zobrazit obrazok. Kde je chyba?

Captcha.php

Kód: Vybrať všetko

<?php 
session_start(); 
header('Content-type: image/png'); 
$im = imagecreatetruecolor(340, 70); 
$white = imagecolorallocate($im, 100, 100, 100); 
$grey = imagecolorallocate($im, 155, 155, 155); 
$grey1 = imagecolorallocate($im, 051, 204, 051); 
$black = imagecolorallocate($im, 255, 255, 000); 
imagefilledrectangle($im, 0, 0, 399, 70, $white); 
function nahodny_text () 
{ 
$moznosti= array("1","2","3","4","5","6","7","8","9",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","W","Y","Z"); 
$mista="8"; 
$heslo=""; 
for ($i=0 ;$i<=$mista-1 ;$i++) 
{ 
$nahoda=rand(0, count($moznosti)-1); 
$heslo.=$moznosti[$nahoda]; 
} 
return $heslo; 
} 
$text = nahodny_text(); 
$_SESSION['captcha'] = $text; 
$text_oklamanie = nahodny_text(); 
$text_oklamanie_2 = nahodny_text(); 
$font = 'pismo.ttf'; 
$font1 = 'pismo1.ttf'; 
imagettftext($im, 50, 10, 31, 35, $grey, $font, $text_oklamanie); 
imagettftext($im, 50, -10, -31, 35, $grey1, $font, $text_oklamanie_2); 
imagettftext($im, 50, 0, 10, 50, $black, $font1, $text); 
imagepng($im); 
imagedestroy($im); 
?>
Test.php

Kód: Vybrať všetko

<iframe id="myframe" src="captcha.php" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none" name="myframe"></iframe> 
<a href="captcha.php" target="myframe">Refresh obrázka</a> 
<br>Opíšte žltý text z obrázku. 
<br><font color="red"><strong>POZOR:</strong></font>Text neobsahuje nulu! 
<br>Systém je citlivý na veľkosť písmen!<br> 
<form method="post" action=""> 
<input type="text" name="captcha"> 
<input type="submit" value="OK"> 
</form> 
<? 
session_start(); 
      if (isset($_POST['captcha'])){ 
      if ($_POST['captcha']==$_SESSION['captcha']){ 
echo "Váš kód bol správny"; 
      }else { 
echo "Váš kód nebol správny";       
      } 
      } 
?>
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Skúšal si si ten obrázok stiahnuť a pozrieť sa, či je dobrý (alebo či pred ním napr. nie je BOM)?
Inak nemyslím si, že je rozumné najskôr poslať hlavičku a až oveľa neskôr poslať samotný obrázok (keď tam nastane nejaká chyba, alebo sa vypíše upozornenie, vloží sa tá hláška medzi hlavičku a samotný obrázok).
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

Príspevok od používateľa chmirko »

si si isty ze fonty font1.ttf a ten druhy mas pri subore captcha, pozeral som to len zbezne ale ja ked som sa s tim hral som mu tam zabudol font subory nahrat

a spustas to na lokale ci na serveri
(nejak zistit ci ma povolene prace s obrazkami)
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

to chrono: Ahaaaa. Fakt to som si to nevsimol. Mam problem aj so zobrazenim samostatneho captcha obrazku. Pozri na http://www.gepid.ic.cz/captcha/Captcha.php
to chmirko: Fonty na FTP mam. Frcim na ic.cz

Tuto mam zlozku: www.gepid.ic.cz/captcha/
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Skús pozrieť výpis funkcie phpinfo() a hľadaj tam, či je v GD knižnici povolená podpora ttf fontov (na niektorých hostingoch totiž povolená nebýva).
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1

Ktore z nich? Ani jedno? :D
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

Zakomentuj riadok header('Content-type: image/png'); a pozri aku chybu ti vypise?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Stiahni si ten obrázok a uvidíš, aká chyba tam je. :)
Warning: imagettftext() : Could not find/open font in ***/captcha/Captcha.php on line 28

Warning: imagettftext() : Could not find/open font in ***/captcha/Captcha.php on line 29

Warning: imagettftext() : Could not find/open font in ***/captcha/Captcha.php on line 30
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

Aha, chyby mi to nehodilo. Teda až keď som si to otvoril v IE. Normalne pouzivam Operu-musim prestat :D

Takze staci zmenit font a je to?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

možno že nie. chrono ti jasne písal nech si zistíš či ti ten font vôbec bude schopné otvoriť (pozri v phpinfo). Možno ti neotvorí ani iný font
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1

to bolo jedine co malo nieco spolocne so slovikom type :D Co ine tam mam hladat? Nic s TTF ti nenaslo-
Nadeo
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2202
Registrovaný: 04 nov 2006, 19:38
Bydlisko: BA/LV
Kontaktovať používateľa:

Príspevok od používateľa Nadeo »

Skus dat absolutnu cestu k fontu ...
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

Nepomohlo. Skúšal som aj iný typ písma(Arial a Times new roman)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Skús tam dať:

Kód: Vybrať všetko

$font = './pismo.ttf'; 
$font1 = './pismo1.ttf';
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

to chrono: Skusal som aj tak aj napisat priamu cestu. Este nejake napady? :(
Server asi fonty podporuje. Skusal som to ja na druhom hoste a ani tam nejde.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Na serveri, kde som ten tvoj skript skúšal, "pismo.ttf" nefungovalo (písalo to rovnakú chybu ako tebe), ale "./pismo.ttf" fungovalo normalne. Takže ak ti to nefunguje netuším, v čom je problém.
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

Aha. Tak chyba je tým pádom v hostingu.
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Nemusí byť. Ale mne žiadna iná chyba nenapadá (podpora pre ttf by tam byť mala, keďže gd je skompilované aj s freetype).
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Príspevok od používateľa Gepid »

Tuto mám phpinfo(): www.gepid.ic.cz/info.php
Skús to pozrieť. Niečo odtiaľ možno vyčítaš.
Napísať odpoveď