Autor Zpráva
Pavel Kr.
Profil *
Dobrý den,
mám webovou aplikaci v php, která tři měsíce šlape naprosto bez problémů. Dneska se chci přihlásit a vyskočí na mě:

Fatal error: Cannot redeclare jePrihlasen() (previously declared in /funkce.php:7) in /funkce.php on line 11

Do kódu jsem nijak nezasahoval (!), tak proč mi to píše, že mám vícekrát deklarovanou funkci. Tento soubor funkce se includuje do všech stránek (jsou v něm všechny funkce).

Je možné, z ničeho nic aby to udělalo? Popřípadě jak to řešit?

Děkuji.
Joker
Profil
Pavel Kr.:
Nevloží se na té stránce vícekrát?

Jak vypadá soubor funkce.php v oblasti řádků 7-11?
Pavel Kr.
Profil *
Joker:
funkce vypadá takto (první řádek je řádek č.6 a poslední je č.11):

function jePrihlasen(){
     include "prihlaseni_k_db.php";
     if (!isset($_SESSION["id"])) return false;
     $zjisteni_prihlasen222 = mysqli_query($mysqli, "select id from uzivatele where je_admin=0 and id=".$_SESSION["id"]."");     
        if(mysqli_num_rows($zjisteni_prihlasen222) == 1) {return true;} else {return false;}      
    }



Taky mě zajímá, jak je možné, že 3 měsíce to takhle fungovalo a ze dne na den proč bác.
Pavel Kr.
Profil *
Tak vyřešeno, v jiném includovaném souboru jsem volal taktéž funkce.php, include_once to vyřešilo.

Ale fakt je mi záhadou, jak je kurňa možné, že to 3 měsíce běželo úplně normálně a vlastně přes noc se to rozhodlo stávkovat :-) stalo se to někomu? Jak to?
Joker
Profil
Pavel Kr.:
jak je kurňa možné, že to 3 měsíce běželo úplně normálně a vlastně přes noc se to rozhodlo stávkovat

Třeba tak, že jeden z těch include se dělal jen za určitých podmínek, které předtím nenastávaly.
Manny
Profil
Pavel Kr.:
stalo se to někomu?
Na mě před nedávnem vyskočila podobná hláška. Pak jsem zjistil, že odkazuju na soubor s funkcemi opakovaně. require_once to vyřešilo.
Pavel Kr.
Profil *
Joker:
Ten druhý include nahrával menu, které se nahrávalo vždycky :-) nějaký další nápad? Fakt je mi to záhadou...
Pavel Kr.
Profil *
Manny:
Myslel jsem jestli se někomu stalo, že ta hláška vyskočila až po několika měsících bezchybného používání...
rafej
Profil
Myslím, že něco podobného jsem viděla při upgradu starších verzí PHP a změnách konfigurace na serveru. To ovšem neznamená, že "funkční skript" byl zároveň i bezchybný.
Pavel Kr.
Profil *
rafej:
Verze PHP se na serveru neaktualizovala. Skript bezchybný nebyl, ale prostě proč se to objevilo až po třech měsících bezchybného chodu?
jenikkozak
Profil
Pravděpodobnější je, že jste si chyby dosud nevšiml (spoléhat na to, že návštěvníci by chybu nahlásili, se nevyplatí) nebo že došlo ke změně, které jste nevěnoval pozornost.
Pavel Kr.
Profil *
jenikkozak:
Právě, že návštěvníci chybu nahlásili, protože skrz ni se nedalo přihlásit :-) a do té doby jsem se skoro každý den přihlašoval i já a fungovalo to bez problému.

Pro jistotu se ještě zeptám na wedosu, ale verze PHP se rozhodně neměnila. Je to prostě záhada.
Pavel Kr.
Profil *
Nic nic nic. Prostě blesk z čistého nebe. Stal se zázrak, chci Nobelovku. V programování se přece nic neděje jen tak.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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