Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypcik 'zarządzający'
Forum PHP.pl > Forum > Przedszkole
morawcik89
Piszę mały skrypt w pliku index.php :
  1. <?php
  2. if(file_exists('config/db.ini')) 
  3. {
  4.  if(!$_SERVER['PATH_INFO']) header('Location: index.php/maincore');
  5. }
  6. elseif(!$_SERVER['PATH_INFO']) header('Location: index.php/setup/1');
  7.  
  8. $gets = explode( '/', substr( $_SERVER['PATH_INFO'], 1) );
  9. if(!file_exists('action/'.$gets[0].'.action.php'))
  10. {
  11.  if(!$_SERVER['PATH_INFO']) header('Location: index.php/error/1');
  12. }
  13. else include('action/'.$gets[0].'.action.php');
  14. ?>


Plik ma za zadanie:
- sprawdzić czy istnieje plik db.ini w katalogu config
- -jeśli tak to przekierowuje na adres z maincore
- -jeśli nie to przekierowuje na setup/1
- dzieli 'ścieżkę' umieszczając dane w tablicy gets - pierwsze pole jest nazwą pliku
- sprawdza czy istnieje plik (maincore lub setup .action.php) w katalogu action
- -jeśli nie to przekierowuje do error/1
- -jeśli tak to includuje ten plik

- pliku db.ini nie ma
- w katalogu action są pliki maincore, setup i error .action.php

Po wejściu na stronę przekierowuje mnie od razu do pliku error. Jak wpiszę w adresie ręcznie setup/1 lub maincore to wyświetla mi ich zawartość (znaczy się to co ma wyświetlić).
Czemu mi nie chce includować pliku setup ?

Dodam, że usuwając:
  1. <?php
  2. if(!file_exists('action/'.$gets[0].'.action.php'))
  3. {
  4.  header('Location: index.php/error/1');
  5. }
  6. else
  7. ?>

wszystko działa normalnie

PS Jak utworzę plik db.ini i jest ten kod co wyżej to ten sam błąd.
dyniaq
Moja rada jest taka. Jeżeli coś Ci nie działa to zawsze wydrukuj sobie zmienne i warunki w pętlach. Może np coś być nie tak ze ścieżką do pliku ...action.php. Wydrukuj sobie, sprawdź poprawność, wcześniej obejmij header() komentarzem, żeby Cię od razu nie przekierowało i na pewno znajdziesz przyczynę. Pozdrawiam i życzę powodzenia :]
morawcik89
Jak już wspomniałem to jeżeli użyję tylko
  1. <?php
  2. include('action/'.$gets[0].'.action.php');
  3. ?>

bez sprawdzania czy ten plik istnieje to działa normalnie.
Wyświetlałem też zawartość zmiennej $gets[0] i jest taka jak powinna (setup, maincore lub error)
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.