Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Warunek if else zawarty w odzielnych plikach
Forum PHP.pl > Forum > PHP
Gwynnbleid1
Witam!
Chciałbym uzyskać taki efekt:
mam plik r_start.php o takim kodzie:
  1. <?php
  2. $uw="u".$poziom_uprawnien;
  3. ?>
  4. <?php if($session->${$uw} ==1): ?>


Drugi plk o nazwie r_end.php zawiera:
  1. <?php else : ?>
  2. brak uprawnień
  3. <?php endif; ?>


Chciałbym je wykorzystać aby w zależności od wyniku warunku if treść strony pojawiała się lub wyświetlało się ostrzeżenie. Skrócona wersja strony test2.php:
  1. <html>
  2. <head>
  3. Tresc head
  4. </head>
  5. <?php include("r_start.php"); ?>
  6. <body>
  7. Dużo kodu html I trochę php
  8. </body>
  9. </html>
  10. <?php include("r_end.php"); ?>


po wywołaniu test2. otrzymuje komunikat:
Parse error: syntax error, unexpected $end in /emed/r_start.php on line x.
Jeżeli treść plików r_start i r_end wkleję w miejsce includów w pliku test2.php
to bledu nie ma. Mam wiele stron, które chciałbym tak zabezpieczyć, ale jak widać include nie działa tak jakbym się tego spodziewał. Wygląda bowiem na to, że parser php (nie jestem pewien nazwy) próbuje przetworzyć plik php od razu w r_start, oraz r_end i wykonany kod wkleja do pliku test2.php. Co zrobić by najpierw wczytał oba pliki i dopiero potem je przetworzył ?

PS. Próbowałem znaleźć rozwiązanie poprzez wyszukiwarkę tego forum, a także przez Google, ale jedyne co znalazłem to post, w którym ktoś opisuje dokładnie taki sam problem jak mój (nie uzyskując niestety odpowiedzi…).
patryczakowy
A nie lepiej tak?
  1. <?php
  2. if(.........)
  3. include('dlaZalogowanych.html');
  4. else
  5. include('dostempWzbroniony.html');
  6. ?>
Gwynnbleid1
Tak owszem byłoby łatwiej, ale problem w tym, że stron jest już bardzo wiele, a także ich nazwa jest trzonem struktury budowanej witryny. Właśnie dlatego potrzebuje takiej a nie innej konstrukcji...
patryczakowy
Zawsze możesz czytać stronę do zaincludowania ze zmiennej na przykład w taki sposób:
  1. <?php
  2. $strona=$_GET['strona']'.php';
  3. if(file_exists($strona))
  4. include($strona);
  5. else
  6. include('error.php');
  7. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.