Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]includowanie stron
shreker
post
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');
Go to the top of the page
+Quote Post
loganek
post
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.
Go to the top of the page
+Quote Post
shreker
post
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
Go to the top of the page
+Quote Post
nexis
post
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?

  1. <?php
  2. $dir = './podstrony/';
  3.  
  4. if (isset($_GET['pokaz']) && file_exists($dir.$_GET['pokaz'])) {
  5.  include $dir.$_GET['pokaz'] . '.php';
  6. }
  7. ?>


Ten post edytował nexis 14.07.2008, 16:34:24
Go to the top of the page
+Quote Post
shreker
post
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));
Go to the top of the page
+Quote Post
loganek
post
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";
Go to the top of the page
+Quote Post
Kristof
post
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)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.12.2025 - 19:48