Autor | Zpráva | ||
---|---|---|---|
Berny Profil |
#1 · Zasláno: 6. 11. 2005, 19:45:54 · Upravil/a: Berny
Nazdárek
Mám tady 2 problémy a potřeboval bych poradit. Podle mne se bude jednat o nastavení Apache nebo PHP. Nedávno jsem si nainstaloval Apache 2.0.54 a PHP 4.3.11 (dřív jsem měl PHPTriad) a když jsem v něm otevřel moje stránky, tak naskákaly chyby spojené s proměnýma: Notice: Undefined variable: pocet_stranek in E:\xy\index.php on line xy Notice: Undefined variable: PHP_SELF in E:\xy\menu.php on line xy Notice: Undefined variable: QUERY_STRING in E:\xy\menu.php on line xy atp... Tohle mi naskočilo ve stránkách a nevím jak to mám odstranit. Pomůže jen nastavení hodnoty proměnné, která hází chybu, ale to mi potom nebudou správně fungovat scripty... Začal jsem scriptovat galerii a potřeboval jsem script na vytváření náhledů. Script jsem si stáhl, ale jak jsem ho chtěl vyzkoušet, tak mi tam kupodivu naskočili chyby. Myslel jsem si, že je to ve verzi PHP, a tak jsem si nainstaloval novější (viz. nahoře) a nečekaně mi chyby zůstala. Nevím, co mám dělat, abych to rozchodil...
chyba: Fatal error: Call to undefined function: imagecreatetruecolor() in E:\xy\image_thumbnail.php on line xy Děkuji |
||
Dolphi Profil |
#2 · Zasláno: 6. 11. 2005, 20:26:44 · Upravil/a: Dolphi
Zdravim,
Ad 1) V php.ini zvolit moznost zobrazovani chyb error_reporting = E_ALL & ~E_NOTICE (zobrazovate vsechny chyby krome poznamek) Ad 2) Pravdepodobne neni nainstalovana knihovna GD2, viz. http://cz.php.net/imagecreatetruecolor |
||
xixli Profil |
#3 · Zasláno: 6. 11. 2005, 20:44:18
2) treba odkomentovať riadok s textom ;extension=php_gd2.dll (odstrániť znak ; )
|
||
llook Profil |
#4 · Zasláno: 6. 11. 2005, 21:23:46 · Upravil/a: llook
Nastav si v php.ini tohle:
register_globals = On A nebo místo $PHP_SELF používej $_SERVER['PHP_SELF'], místo $QUERY_STRING používej $_SERVER['QUERY_STRING'] a k GET proměnným přistupuj přes $_GET['název']. Register_globals je ve výchozím nastavení vypnuté myslím že od verze 4.2.0. |
||
Berny Profil |
#5 · Zasláno: 6. 11. 2005, 22:44:10
Nazdárek,
tak s těmi chybovýma hlaškami jste měli pravdu :-) a ty global proměnné, mě fakt nenapadli. Moc Vám děkuji! Ale mám tady ještě malinkatý problém s tou knihovnou. Načítání modulu jsem povolil, ale hlásí to, že nebyl nalezen. Asi se musí stáhnout. Tak lehce jsem se díval na ten server (http://cz.php.net) a nikde se mi ten modul nepodařilo najít. A ještě drobnost. Asi nejde povolit, přes nějaký příkaz, tato funkce na serveru (hostingu), kde mi tento script nejde, co? Ještě jednou díky |
||
Hugo Profil |
#6 · Zasláno: 7. 11. 2005, 05:59:28
llook
IMHO není moc dobré zapínat register_globals. Lepší je používat pole $_POST, $_GET ... Skript je přehlednější a je vidět, odkud ty proměnné pocházejí. Navíc je to i mírně bezpečnější. |
||
xixli Profil |
#7 · Zasláno: 7. 11. 2005, 19:21:19
> ale hlásí to, že nebyl nalezen
skús si skontrolovať cesty, konkrétne extension_dir (php.ini), resp. ak uvedený adresár je nesprávny, tak to bude C:/tvoja_cesta_k_php/extensions/ > Asi nejde povolit, přes nějaký příkaz, tato funkce na serveru (hostingu), kde mi tento script nejde, co? Dá sa to cez funkciu dl(), ale tá býva vypnutá (na serveroch) |
||
Hugo Profil |
#8 · Zasláno: 7. 11. 2005, 20:07:29
Berny
Musíš si přehrát tu knihovnu do systémového adresáře (c:/windows) |
||
Berny Profil |
#9 · Zasláno: 7. 11. 2005, 21:48:22
skús si skontrolovať cesty, konkrétne extension_dir (php.ini), resp. ak uvedený adresár je nesprávny, tak to bude C:/tvoja_cesta_k_php/extensions/
v php.ini, které je umístěné ve windovs, mám extension_dir = "./" v adresáři PHP žádný adresář extensions nemám... Dá sa to cez funkciu dl(), ale tá býva vypnutá (na serveroch) Mohl by jsi to pls rozepsat, jak pro amatéra, k tomuto modolu? Musíš si přehrát tu knihovnu do systémového adresáře (c:/windows) zkoušel jsem modul "php_gd2.dll" najít někde v PC, abych to mohl překopírovat a nic jsem nenašel... btw. objevil jsem další problém. Když hledám údaje v MySQL DB pomocí jména, které předávám scriptu přes metodu GET a obsahuje diakritiku, tak mi to hodí Internal Server Error. Nevíte co s tím? Moc děkuji |
||
Hugo Profil |
#10 · Zasláno: 8. 11. 2005, 05:08:03
Tak základní dotaz. Jak jsi instaloval apache/mysql/php? Použil jsi nějaký balíček (easy php, phptriad ...)?
|
||
Berny Profil |
#11 · Zasláno: 8. 11. 2005, 14:24:14
Tak základní dotaz. Jak jsi instaloval apache/mysql/php? Použil jsi nějaký balíček (easy php, phptriad ...)?
PHPTriad jsem měl dřív. Chtěl jsem si nainstalovat novější verze, a tak jsem sáhl po nějakém návodu. Zkoušel jsem to nespočetněkrát už dřív, ale ani jeden z návodů, co jsem použil, mi na localu nefungoval. Pak jsem narazil na tento návod: http://pecan.wz.cz/index.php?clanek=php_aps A takhle vypadá struktura: E:\Apache\Apache2 E:\Apache\MySQL E:\Apache\PHP C:\WINDOWS\php.ini Ale jak jsem říkal. Nikde v PC tu knihovnu nemám... "php_gd2.dll" |
||
Hugo Profil |
#12 · Zasláno: 8. 11. 2005, 14:33:06
Tak si stáhni php z www.php.net. Nakopíruj ho do E:\Apache\PHP (který předtím vyprázdni). V adresáři ext bude ta knihovna, tu nahraj do c:/windows a odkomentuj ji v php.ini (které taky musíš zkopírovat do systémového adresáře). Restartuj apache a mělo by to jet.
|
||
Berny Profil |
#13 · Zasláno: 8. 11. 2005, 22:15:21 · Upravil/a: Berny
Takže problém s modulem na úpravu obrázku jsem úspěšně vyřešil. Napíši tady postup, kdyby měl někdo stejný problém jako já...
Podle tohoto návodu jsem si nainstaloval Apache, PHP, MySQL. Doposud jsem nenašel jiný návod, podle kterého by se mi to podařilo nainstalovat. [url=http://pecan.wz.cz/index.php?clanek=php_aps ]http://pecan.wz.cz/index.php?clanek=php_aps [/url] Poté z adresáře PHP zálohujte adresář "sessiondata", protože ve verzi, kterou budem instalovat později není a bez tohodle adresáře mi to nějak haprovalo a házelo chyby. Ze stránek http://www.php.net/ stáhnete zabalenou verzi PHP 4.4.1 (asi jediná verze, ve které jsou tu moduly - [url=http://www.php.net/get/php-4.4.1-Win32.zip/from/a/mirror ]http://www.php.net/get/php-4.4.1-Win32.zip/from/a/mirror). [/url] ZIP rozbalíte do adresáře PHP a do něj nakopírujete složku "sessiondata". Editujte PHP.ini: error_reporting = E_ALL & ~E_NOTICE register_globals = On extension_dir = "E:\Apache\PHP\extensions" (nastavit na adresář s modulama - pokud se naché vychozí nastavení, tak modulu musí být ve složce Windovs) extension=php_gd2.dll Tak a tohle je vše. Snad jsem na něco nezapomněl. |
||
Berny Profil |
#14 · Zasláno: 8. 11. 2005, 22:34:14
Bohužel mám stále jeden problém, který je pro mne dost závažný.
Když ve scriptu pracuji s proměnnou, která obsahuje diakritiku, tak mi vůbec stránka nenačte a objeví se Server Error. Nevíte jak zapnout tu češtinu? |
||
Hugo Profil |
#15 · Zasláno: 9. 11. 2005, 05:30:52
Ta proměnná je jen ve skriptu nebo v URL? Já jsem takový problém nikdy neviděl. V httpd.conf (apache) se dá nastavit defaultní kódování, ale to asi tento problém nevyřeší a v php.ini IMHO nic takového není.
|
||
Berny Profil |
#16 · Zasláno: 9. 11. 2005, 12:59:04
Tak tedy... Mám databázi ve které jsou nějaké kategorie. Když kliknu na odkaz určité kategorie, tak scriptu předám proměnnou (třeba $kategorie) metodou GET a pomocí scriptu vyberu z databáze k té kategorii příslušná data (name = $kategorie). Jméno kategorie je třeba "Počítače"
url: http://localhost/index.php?kategorie=Počítače data z MySQl: select * from site where name = $kategorie (případně využívám výběr pomocí "like" když se jedná o řetězec) Když tohle samé provedu s názvem kategorie bez diakritiky, tak vše funguje jak má... |
||
Hugo Profil |
#17 · Zasláno: 9. 11. 2005, 13:10:38
a není spíš problém v nastavení kódování u mysql? Vyhodí to chybu, nebo ti to jen nic nevrátí? If to vyhodí chybu tak jakou?
|
||
Hugo Profil |
#18 · Zasláno: 9. 11. 2005, 13:11:59
A jo, to je ten Server Error. Tak opravdu netuším, kde může být chyba. Pohledej na netu.
|
||
kyselina Profil * |
#19 · Zasláno: 9. 11. 2005, 21:25:48
jeste pred poslanim do dotazu mysql, kdyz uz teda musis mit diakritiku v url, to prozen pres funkci urldecode() ..
|
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0