Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Skrypcik 'zarządzający'
morawcik89
post 24.07.2008, 17:43:44
Post #1





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 15.07.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
dyniaq
post 24.07.2008, 18:39:39
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 4
Dołączył: 31.07.2006
Skąd: Oława

Ostrzeżenie: (0%)
-----


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 :]


--------------------
~ kim jest Ta, co mi w oczach zasadza takie drzewo? ~
Go to the top of the page
+Quote Post
morawcik89
post 24.07.2008, 18:46:29
Post #3





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 15.07.2008

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 13:26