Autor | Zpráva | ||
---|---|---|---|
Nailen Profil |
#1 · Zasláno: 5. 2. 2019, 19:20:06
Zdravím, už se celé poledne trápím asi s banalitou.
Mám nějaký script. Pak mám soufor funcs.php kde mám funkce. Mám tam např. tuto funkci: function resultBlock($errors,$successes){ //Error block if(count($errors) > 0) { ... } //Success block if(count($successes) > 0) { ... } } Ve scriptu ji volám takto: echo resultBlock($errors,$successes); Doteď funguje vše v pořádku. Takto používám ve scriptu spoustu funkcí. Dlouho jsem ale na projektu nedělal a teď jsem chtěl dodělat novou funkci. Takže jsem do funcs.php doplnil toto: function test($successes) { echo "testovaci funkce</br>" . $successes . "<br>test"; } Do scriptu napsal toto: echo test($successes); Po spuštění stránky dostávám následující chybu: Fatal error: Uncaught Error: Call to undefined function test() in /home/www/.../test.php:151 Stack trace: #0 {main} thrown in /home/www/.../test.php on line 151 Tuší někdo čím by to mohlo být, že mám funkci stejně jak ostatní a přitom každá nová mi začíná tímto hlášením? Na FTP se soubor přepíše a je tam aktuální kód. Zkoušel jsem jiné prohlížeče, takže cash, to taky asi nebude. PS: funkce i adresy jsem zkrátil, aby ukázka nebyla tak dlouhá. |
||
Nailen Profil |
#2 · Zasláno: 6. 2. 2019, 18:24:20
Opravdu tu není nikdo kdo by mi poradil jak dál?
Dnes jsem zkusil vzít funkční funkci. Jen ji okopírovat a pojmenovat jinak. tato nová kopie hlásí stejnou chybu. Psal jsem na hosting. Prý žádnou keš nemají co by to dělala. Data která nahraji na FTP se musí hned projevit. |
||
Tomášeek Profil |
Nailen:
V uvedeném popisu/kódu chyba neni. Odmýšlim to, ze funkce by nemela echovat, ale returnem vracet hodnotu. To ale tuto chybu nezpůsobuje. |
||
Kajman Profil |
#4 · Zasláno: 6. 2. 2019, 19:14:34
Když dáte tuto funkci hned na začátek souboru funcs.php, tak to také nefunguje?
|
||
Nailen Profil |
Tomášeek:
ano, mám ji použitou a returnem vrací hodnotu do podmínky. S tím echem to bylo jen na ukázku. Kajman: ano nefunguje ani na začátku. Chápu, že by mohla být někde v kódu chyba a tím se nenačíst celý soubor funkcí. Funguje to ale tak divně, že klidně vezmu poslední funkci v souboru. Tu okopíruji a dám opět na konec. Přejmenuji pouze název (připíši jedničku) a v tu chvíli tato nová už nefunguje. Mohu ji vzít a dát na začátek a také nefunguje. Fakt je to pro mě záhada čím by to mohlo být. |
||
Davex Profil |
Nailen:
Opravdu upravuješ správný soubor, který je někam vložený pomocí include nebo require ? Není na webserveru zapnuté OPcache s vysokou hodnotou v konfigurační volbě opcache.revalidate_freq nebo vypnutým opcache.validate_timestamps ?
|
||
Keeehi Profil |
#7 · Zasláno: 7. 2. 2019, 20:36:03
Nailen:
Co se stane když nějakou funkci co funguje v tom kódu jen rozbiješ. Například tam dáš function some_name() { echo "killed"; exit; // zbytek obsahu |
||
Nailen Profil |
Keeehi:
tak nastavení serveru OK Keeehi: funkci to nerozbilo a díky tomu jsem přišel na, to kde je problém. v rootu mám script, který volá funkce. V něm mám require_once("models/config.php"); a v tomto configu mám require_once("funcs.php");
tento funcs.php je také v adresáři models . Celou dobu jsem editoval tento funcs.php v models . Teď jsem ale zjistil, že je ještě jeden stejný soubor funcs.php přímo v rootu . Tam když dělám změny, tak už to frčí. Takže problém vyřešen. Nechápu jak se ale tento soubor dostal do rootu . Když jsem to programoval, tak jsem pracoval jen s tím v models .
Chci ho tedy zpět vrátit do models adresáře. Když ho ale volám v models/config.php pomocí require_once("funcs.php"); tak se načítá ten z rootu. Když to přepíšu na require_once("models/funcs.php"); tak to píše failed to open stream: No such file or directory
Poradí mi někdo jak je správný zápis? Děkuji a omluvte moje neznalosti. možná někdo napíše že jsem lama, že jsem si nevyhledal kde všude jsou funkce použité :-) To jsem hledal, ale na lokále ne na FTP a na lokále jsem si myslel že mám kopii 1:1. Bohužel ale na lokále v rootu tento soubor chyběl. |
||
Časová prodleva: 6 let
|
0