Autor Zpráva
DC19
Profil *
Zdravím pánové (i dámy, případně).

Brouzdal jsem diskuzemi a zkoušel najít podobný topic, abych zbytečně neduplikoval vlákna již vyřešená, ale nepodařilo se mi najít problém který by souvisel s mým, proto se omlouvám, za vlákno další.

Mám ve struktuře indexu kód v tomto znění..

<? 
if(!(isset($s))){$s="uvod.php";}
if(!(is_file($s))){$s="chyba.php";}
include ("$s");
?>

..kdy veškerý obsah stránek chci mít nasměrovaný v divu obsahujícím tento include požadavek. Poprvé v životě se mi ovšem stalo, že mi include () ignoruje nahrané soubory na FTP. Otevírá se po kliknutí na odkaz pouze a jedině jeden soubor - uvod.php (+ jeho rozvětvené části, jako - uvod.php&podsekce=abcd a tak dále). Všechny ostatní odkazy se neotevřou (jakoby neexistovaly, přitom fyzicky na FTP jsou) a místo nich najede indexový uvod.php .. Jsem z toho v pravdě jelen, a netuším, čím to může být. Dříve při vytváření jiných webů mi vše fungovalo tak jak by mělo, za použití výše uvedeného include.

Vím, že moje otázka na radu/tip je asi troufalá, no nemá někdo prosím podobnou zkušenost a nevěděl by, čím to?

Děkuji moc za cokoliv co by mě dokázalo ulehčit od bolehlavu :-) Lukáš.

PS: kromě indexu, uvod.php a příslušných CSS stylů mám nahráno navíc jen 2 soubory o nevelkém obsahu (dotaz.php a chyba.php - kdysi sloužíval jako ochrana proti php injekci, což teď nedělá, díky problému s includem) a orientovat se tedy v případném "co a jak by mohlo být špatně" by nemusel být problém, ale kde je zakopaný pes, nevím. Dál se bez funkčního includu nepohnu, zdá se. Zkoušel sem i odstranit z těchto souborů vše co by nemuselo být in, a nechat tam jen text blabla, ovšem include nereaguje.
juriad
Profil
Kde se bere proměnná $s? Není náhodou problém s Nejčastější potíže s PHP (FAQ)?

Naopak, pokud se problém netýká přímo problému někoho jiného, ale jde o tvůj, je žádoucí vytvořit vlastní vlákno.
Opraven odkaz (regex zřejmě bere otazník jako součást odkazu, i když je ve fragment časti).
DC19
Profil *
Ať koukám jak koukám, proměnná $s je v kódu zmíněna jen u této funkce, nikde zvlášť definována není, a to jsem se díval i na starší projekty, kde vše funguje jak má. Že by byl problém v tom? Pak ale je nasnadě ptát se "nahlas" proč to v minulosti běželo, a nyní chyba.
Davex
Profil
DC19:
Pak ale je nasnadě ptát se "nahlas" proč to v minulosti běželo, a nyní chyba.
Možná proto, že se změnila konfigurace nebo verze PHP na webhostingu. Doporučuji to opravit podle PHP FAQ.
Joker
Profil
DC19:
Include neignoruje nahrané soubory. Vypište si obsah $s a skoro určitě tam bude uvod.php.

Jinak uvozovky se dělají jen kolem řetězců a ne kolem proměnných a include není funkce, ale příkaz, takže jsou tam zbytečné i ty závorky.

Možné vysvětlení je, že skript spoléhá na register_globals a hosting ho buď vypnul, nebo přešel na PHP 5.4+, kde už register_globals vůbec není.
- Jak píší kolegové.

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:

0