![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%)
|
Mam problem następującego typu:
w tablicy $dozwolone mam wpisane strony które są "includowane" do okna głównego przeglądarki. Jest tych stron oczywiście sporo, dlatego mam pytanie czy można ten fragment kodu przerobić tak aby nazwy stron były includowane z zewnętrznego pliku, a nie wypisane jak poniżej. Jeżeli można tak zrobić to w jaki sposób i jak miałby wyglądać plik zewnętrzny (tzn. jakim separatorem , i czy w ogóle miały by być oddzielone te nazwy stron. Kod $dozwolone=array('sites/glowna',
'sites/strona1', 'sites/strona2'; ); if (isset($_GET['pokaz'])) $pokaz=$_GET['pokaz']; else $pokaz=$dozwolone[0]; if (in_array($pokaz,$dozwolone)) include($pokaz.'.php'); else include($dozwolone[0].'.php'); |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 20 Dołączył: 14.06.2007 Ostrzeżenie: (0%)
|
można tak: w pliku wpisy.txt zrób tak:
Kod sites/strona1 sites/strona2 strona3 czyli oddzielane spacjami. a w pliku gdzie indludujesz strony: Kod $separator=" "; $dozwolone=explode($separator, file_get_contents($wpisy.txt)) if (isset($_GET['pokaz'])) $pokaz=$_GET['pokaz']; else $pokaz=$dozwolone[0]; if (in_array($pokaz,$dozwolone)) include($pokaz.'.php'); else include($dozwolone[0].'.php'); oczywiście to jakiego separatora użyjesz, to zalezy od ciebie, ja zaproponowałem spację, ale może to być np. przecinek itp. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%)
|
Zmieniłem kod na taki:
Kod $wpisy="strony.php"; $separator=","; $dozwolone=explode($separator, file_get_contents($wpisy)); if (isset($_GET['pokaz'])) $pokaz=$_GET['pokaz']; else $pokaz=$dozwolone[0]; if (in_array($pokaz,$dozwolone)) include($pokaz.'.php'); else include($dozwolone[0].'.php'); plik strony.php : Kod sites/glowna, sites/strona1, sites/strona2, i jest problem :-( strona glowna otwiera się bez problemu, ale inne w ogóle (po nasiśnięciu w menu, obojętnie którą stronę by się nie wybrało zawsze ładuje stronę glowna - tak jakby inne "były niedozwolone". Probowalem też z cudzyslowami, ale dalej ta sama sytuacja. Wyglada to tak jakby iine strony poza glowną nie były wczytywane. W czym problem. wydaje mi się że coś jest nie tak z tą linijka, ale sam już nie wiem : Kod $dozwolone=explode($separator, file_get_contents($wpisy));
Ten post edytował shreker 14.07.2008, 16:20:07 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 012 Pomógł: 109 Dołączył: 26.09.2003 Skąd: nexis.pl Ostrzeżenie: (0%)
|
A nie łatwiej utworzyć katalog z dozwolonymi podstronami - powiedzmy podstrony/, a następnie w nim trzymać odpowiednie pliki i przy includowaniu sprawdzać czy plik istnieje?
Ten post edytował nexis 14.07.2008, 16:34:24 |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 270 Pomógł: 0 Dołączył: 21.05.2008 Ostrzeżenie: (0%)
|
Nie bardzo mogę tak zrobić, bo strony są rozmieszczone w różnych katalogach, więc ta koncepcja odpada. Zostaje tylko ta poprzednia, tylko dlaczego inne pliki nie są wczytywane, próbowałem je też zapisać jeden, za drugim w tablicy, ale dalej jest ta sama sytuacja, wczytywana jest tylko strona glowna.
Dopiero raczkuję w PHP ale wydaje mi się że coś jest nie tak z tą linijką: Kod $dozwolone=explode($separator, file_get_contents($wpisy));
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 20 Dołączył: 14.06.2007 Ostrzeżenie: (0%)
|
Kod sites/glowna, sites/strona1, sites/strona2, zauważ że separator to nie tylko przecinek, ale też znak nowej linii, więc separator powinien wyglądać: Kod $separator=",\n";
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 15.12.2005 Ostrzeżenie: (0%)
|
Mysle że połaczenie tego:
http://pl2.php.net/manual/en/function.file-get-contents.php i tego: http://pl2.php.net/manual/en/function.explode.php powinno rozwiązać sprawe. Ocztwiście przed wczytaniem zawartości pliku powinno się go otworzyć ale myśle, że to sobie już znajdziesz (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 19:48 |