![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Nie od dziś już piszę w php ale natknąłem się na pewien problem, i mam pytanie jak to w końcu jest z include jeżeli mamy pewne drzewo katalogowe. Załóżmy że:
w pliku index.php mamy instrukcje i wszystko jest ok. Jak teraz powinna wyglądać instrukcja include w pliku plik.php aby załączyć plik1.php: czy Pytanie wynika z stąd iż pierwsze rozwiązanie drugie poprawnie na mojej lokalnej maszynie natomiast rozwiązanie pierwsze znalazłem w osCommerce, a nie działa u mnie. Jak to w końcu powinno być poprawnie? Może mam coś nie tak w konfiguracji PHP? Logika nibyjest prosta, do index wrzuca jest wszystko co jest w plik.php więc niby rozwiązanie drugie na logike wydaje się być poprawne. Dlaczego więc w osCommerce zrobione jest inaczej? Jak w końcu jest naprawdę z plikami includowanymi? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 23.01.2010 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Witam. Nie od dziś już piszę w php ale natknąłem się na pewien problem, i mam pytanie jak to w końcu jest z include jeżeli mamy pewne drzewo katalogowe. Załóżmy że:
w pliku index.php mamy instrukcje i wszystko jest ok. Jak teraz powinna wyglądać instrukcja include w pliku plik.php aby załączyć plik1.php: czy Pytanie wynika z stąd iż pierwsze rozwiązanie drugie poprawnie na mojej lokalnej maszynie natomiast rozwiązanie pierwsze znalazłem w osCommerce, a nie działa u mnie. Jak to w końcu powinno być poprawnie? Może mam coś nie tak w konfiguracji PHP? Logika nibyjest prosta, do index wrzuca jest wszystko co jest w plik.php więc niby rozwiązanie drugie na logike wydaje się być poprawne. Dlaczego więc w osCommerce zrobione jest inaczej? Jak w końcu jest naprawdę z plikami includowanymi? Zauważ, że plik.php siedzi w katalogu "katalog1", w związku z tym, jeśli w plik.php ustawisz ściężkę includowania na "katalog/katalog1/plik1.php" to zostanie to potraktowane tak, że skrypt zacznie Tobie szukać takiej ścieżki: "katalog/katalog/katalog1/plik1.php". Mógłbyś jeszcze odwołać się do pliku "plik1.php" w sposób taki: "../katalog1/plik1.php" - tylko po co? Wydaję mi się, że tylko takie rozwiązanie jest najlepsze: "katalog1/plik1.php". |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
'plik.php' siedzi w 'katalog' nie w 'katalog1'
niby wszystko ok, tylko dlaczego nie działa mi to w ten sposób? zwalona konfiguracja apache? php? Przypomina mi się ze już chyba miałem kiedyś z tym problem przy małym skrypcie ale pozmieniałem parę wpisuwi było ok, i jakoś nie przywiązałem do tego większej uwagi a teraz już chce to wyjaśnić do końca. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Odpowiedź jest prosta... zrezygnuj z ścieżek względnych na rzecz bezwzględnych... nigdy nie będziesz miał problemu wynikającego z kontekstu użycia ścieżki względnej. A żeby nie pisać każdorazowo:
Kod /path/to/my/project/root/dir Możesz sobie zadeklarować jakąś stałą na samym początku index.php:A potem przy podawaniu ścieżek dawać:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
ok, jak najbardziej ok, ścieżki bezwzględne są super, ale moja dociekliwość nie daje mi spokoju, jak to powinno być w rzeczywistość z tym include?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Przed każdym wywołaniem include daj sobie: To będziesz wiedział dokładnie w jakim miejscu w systemie plików obecnie się znajdujesz = będziesz wiedział na co wskazuje dana ścieżka względna. ![]() Przed jednym i drugi include jest to samo. Includowanie nie zmienia miejsca w drzewie katalogowym. Ale to nie wyjaśnia dlaczego w gotowym skrypcie osCommerce zastosowane jest rozwiązanie które teoretycznie powinno działać, a nie działa, a drugie rozwiązanie działa, a teoretycznie nie powinno. To moja konfiguracja serwera jest skopana, czy chłopaki od osCommerce mają coś nie halo? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Być może w osc zmodyfikowane jest include_path
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 17.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Raczej nie jest. A jak to jest u was z tym include, która konstrukcja jest poprawna?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 09:06 |