Autor Zpráva
Switch
Profil *
Zdravim, muzete mi prosim poradit ohledne tohoto kodu...konkretne co je v nem spatne..zvlastni je ze na localhostu mi jede naprosto bez problemu ale na hostingu(konkretne ic.cz) mi vyhazuje hlášku: " Obrázek “http://nejaka_adresa.ic.cz/kapca.php” nelze zobrazit, protože obsahuje chyby." Font na serveru nahranej je... Predem diks za odpovedi..

Kod je nasledujici :

<?php
/* Deklarování proměnných */
$velikost_x = 200;
$velikost_y = 75;

/* Kontrola, zda je kód v URL */ 

if (!isset($_GET['code'])) {
 $text = "Neznamy";
} else {
 $text = substr($_GET['code'], 0, 8);
}

$misto_na_znak = $velikost_x / (strlen($text) + 1);

/* Tvorba plátna */
$obrazek = imagecreatetruecolor($velikost_x, $velikost_y);

/* Nastavení barev */
$pozadi = imagecolorallocate($obrazek, 255, 255, 255);
$okraj = imagecolorallocate($obrazek, 128, 128 ,128);
$barvy[] = imagecolorallocate($obrazek, 128, 64, 192);
$barvy[] = imagecolorallocate($obrazek, 192, 64, 128);
$barvy[] = imagecolorallocate($obrazek, 108, 192, 64);

/* Vyplnění pozadí */
imagefilledrectangle($obrazek, 1, 1, $velikost_x -2, $velikost_y -2, $pozadi);
imagerectangle($obrazek, 0, 0, $velikost_x - 1, $velikost_y -2, $okraj);

/* Kreslení textu */
for($i=0; $i < strlen($text); $i++) {
 $barva = $barvy [$i % count($barvy)];
 imagettftext($obrazek, 28 + rand(0,8), -20 + rand(0,40), ($i + 0.3) * $misto_na_znak, 50 + rand(0,10), $barva, 'arial.ttf', $text{$i});
}

/* Anti-alising */
imageantialias($obrazek, true);

/* Čárečky */
for($i=0; $i < 1000; $i++) {
 $x1 = rand(5, $velikost_x - 5);
 $y1 = rand(5, $velikost_y - 5);
 $x2 = $x1 - 4 + rand(0,8);
 $y2 = $y1 - 4 + rand(0,8);
 imageline($obrazek, $x1, $y1, $x2, $y2, $barvy[ rand( 0, count($barvy) - 1)]);
}

/* Odeslání hlavíčky */
header('Content-type: image/png');
imagepng($obrazek);

?>

peta
Profil
povol zobrazovani chyb uplne na zacatku
@ini_set('error_reporting',E_ALL);
@ini_set("display_errors","on");
@ini_set("display_errors",1);
@ini_set('display_startup_errors',1);
@ini_restore('display_errors');
error_reporting(E_ALL);
@ini_set("register_globals",0);
// neco z toho se chyb mozna netyka, ted nevim

pak si precti, co to pise za chyby. Predpokladam, ze ti pulka funkci nejede, protoze tam nemas GD knihovnu nebo povolene funkce php. Momentalne frci safe mode a spousta hostingu omezuje, co muze navic k tomu.
Switch
Profil *
@ini_set('error_reporting',E_ALL);
@ini_set("display_errors","on");
@ini_set("display_errors",1);
@ini_set('display_startup_errors',1);
@ini_restore('display_errors');
error_reporting(E_ALL);
@ini_set("register_globals",0);

Poté co jsem tam přidal taj ty chybový hlášení..tak se změnilo...hmm nečekaně nic xD furt to hází stejnou hlášku...GD knihovna povolená je, alespoň podle phpinfo()...takže fakt netuším :X
Alphard
Profil
Switch:
Zakomentujte header('Content-type: image/png'); a podívejte se, jestli to na začátku nevypíše nějakou chybu, následující rozsypaný čaj je správně.
Switch
Profil *
Mnoo..já bych to nazval spíš hatmatilka xD

K chybám:

Vyplivlo to na mě tohle :


Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /home/free/ic.cz/s/spectrik/root/www/kapca.php on line 41

což je z toho cyklu na kreslení textu....nemůže zpracovat font...hmm to je divné..na serveru nahranej je, je ve stejný složce, práva na čtení má, název má správnej...záludnost :X
panther
Profil
Switch
na serveru nahranej je, je ve stejný složce, práva na čtení má, název má správnej
jseš si skutečně jistý?
Switch
Profil *
Jsem si naprosto jistej. aspoň 100x sem to kontroloval
Switch
Profil *
Zkusim jiný font...
Switch
Profil *
Tak ani změna fontu nepomohla..=( jsem zoufalej
Alphard
Profil
Fonty nějak záleží na verzi GD, už si nevzpomínám, podívejte se do manuálu k té funkci.
Switch
Profil *
Manuál sem prošel, píšou tam že by mohlo pomoct tohle : putenv('GDFONTPATH=' . realpath('.')); jenomže nepomohlo ani to takže asi smůla...
bohyn
Profil
Switch
Nazev fontu se pouziva bez koncovky
imagettftext($obrazek, 28 + rand(0,8), -20 + rand(0,40), ($i + 0.3) * $misto_na_znak, 50 + rand(0,10), $barva, 'arial', $text{$i});
}
karbon
Profil *
Nazev fontu se pouziva bez koncovky
Na serveru běžícím na Windows funguje i zápis s koncovkou. Na Linuxu to ale může být jiné.
peta
Profil
Switch
odkaz na cely_kod.txt ?
Zrejme na serveru dany font neexistuje.
pokud existuje, dokaz to linkem na dany font :)
http://stranka.cz/FontName.ttf
U linuxu zalezi na velikosti pismen a pozor na diakritiku, mezery a pod. Vice o tomhle tematu jakpsatweb, nadpis nezobrazujici obrazky, google napovi.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0