![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
widziałem, że są już tematy o podobnej nazwie, ale nie znalazłem tam odpowiedzi na swoje pytanie. Mianowicie robię stronkę opartą na DIV'ach i w jednym z nich umieściłem uwarunkowanie załadowania konkretnych plików, niestety pojawia się komunikat o błędzie. Oto fragment kodu index.php: CODE <div id="prawa"> <div id="prawa_tresc"> <?php $adres = $_SERVER[REQUEST_URI]; $etap1 = '/index.php?etap=1'; $etap2 = '/index.php?etap=2'; $etap3 = '/index.php?etap=3'; $etap4 = '/index.php?etap=4'; $etap5 = '/index.php?etap=5'; if($adres == $etap1) { include '/pliki/prawa1.php'; } elseif($adres == $etap2) { include '/pliki/prawa2.php'; } elseif($adres == $etap3) { include '/pliki/prawa3.php'; } elseif($adres == $etap4) { include '/pliki/prawa4.php'; } elseif($adres == $etap5) { include '/pliki/prawa5.php'; } else { include '/pliki/prawa1.php'; } ?> </div> </div> Przejrzałem już mnóstwo różnych kursów, postów na forach etc., ale i tak nie mogę dostrzec błędu. Proszę o pomoc. Co mogłem zrobić źle? Pozdrawiam ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 3 Dołączył: 14.04.2009 Skąd: Wziąć piwo? Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 1 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
w poniższej linii dodaj apostrofy:
Kod $adres = $_SERVER[REQUEST_URI]; czyli ma to wyglądać tak: Kod $adres = $_SERVER['REQUEST_URI']; lub $adres = $_SERVER["REQUEST_URI"]; w zależności od konwencji jaką przyjmujesz w przeciwym wypadku REQUEST_URI jest interpretowana jako zdefiniowana stała. Oprócz tego na wszelki wypadek podaj treść błędu, to co Ci wyświetla przeglądarka podczas przetwarzania, bo nie wiem czy to błąd nieznalezienia pliku, błędnej ścieżki, braku dostępu czy właśnie błąd opisany powyżej. Przydatne zanim się przejdzie do analizy kodu. Oprócz tego proponuję skorzystanie z php'owskiego switch, case. Kod <?php switch ($adres) { default: case $etap1: break; case $etap2: break; case $etap3: break; case $etap4: break; } ?> Wewnątrz case zastosuj funkcje include . Ten post edytował insecure 2.05.2009, 16:27:38 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Treść błedu:
-------------------- Warning: main() [function.main]: open_basedir restriction in effect. File(/pliki/prawa1.php) is not within the allowed path(s): (/var/www/sites:/var/www/tmp:/var/www/advertisements/:/var/www/cadvertisements/) in /var/www/sites/yoyo.pl/2/l/2loteam/index.php on line 82 Warning: main(/pliki/prawa1.php) [function.main]: failed to open stream: Operation not permitted in /var/www/sites/yoyo.pl/2/l/2loteam/index.php on line 82 Warning: main() [function.include]: Failed opening '/pliki/prawa1.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/sites/yoyo.pl/2/l/2loteam/index.php on line 82 -------------------- Dodałem apostrofy, ale to nie pomogło. Osobiście nie rozumiem tego co jest napisane w powyższym komunikacie, ale mam niemalże pewność, że chodzi o samą funkcję "include", ponieważ próbnie zastosowałem też funkcję "echo", która w tym samym miejscu działa bez zarzutu. ![]() Próbowałem też zastosować 'switch' , niestety również błędy (takie same jak wyżej z tym, że wartości "on line" się zmieniły na 60). Kod, który zastosowałem z ów funkcją: CODE <?php $adres = $_SERVER['REQUEST_URI']; $etap1 = '/index.php?etap=1'; $etap2 = '/index.php?etap=2'; $etap3 = '/index.php?etap=3'; $etap4 = '/index.php?etap=4'; $etap5 = '/index.php?etap=5'; switch ($adres) { default: case $etap1: include '/pliki/prawa1.php'; break; case $etap2: include '/pliki/prawa1.php'; break; case $etap3: include '/pliki/prawa1.php'; break; case $etap4: include '/pliki/prawa1.php'; break; } ?> Dziękuję za dotychczasową pomoc ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 869 Pomógł: 53 Dołączył: 20.10.2003 Skąd: Przeworsk Ostrzeżenie: (0%) ![]() ![]() |
Znasz podstawy angielskiego?
![]() -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tak, ale dlaczego tak się dzieje? Przecież plik o takim adresie na pewno istnieje...
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wyglada to jakbys chcial includowac pliki z poza twojego home, dlatego krzyczy o restrykcji z open_basedir. Albo zle chmody.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 15 Dołączył: 13.09.2003 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Działa!! ;D Wielkie dzięki
![]() Zmieniłem na "./pliki/..." i działa ;D |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 156 Pomógł: 15 Dołączył: 13.09.2003 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Nie ma za co. /pliki/prawa1.php to sciezka absolutna, ./pliki/prawa1.php to sciezka relatywna do katalogu w ktorym znajduje sie Twoj skrypt.
Przyklad: skrypt znajduje sie w katalogu /home/dev/mywebsite/index.php bez kropki probuje przeczytac plik /pliki/prawa1.php z kropka otwiera plik /home/dev/mywebsite/pliki/prawa1.php |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:03 |