Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]include, ścieżki do plików - problem
Forum PHP.pl > Forum > Przedszkole
adi456
Przepraszam za amatorskie pytania.

mam coś takiego

  1. $open='pliki/'.$_GET['id'].'.php';
  2. If(is_file($open) and $_GET['id']!= "strona")
  3. include($open);


i chciałbym dodać jeszcze inną lokalizacje plików np oprócz folderu pliki chciałbym jeszcze cos jest to możliwe?

i mam problem ze ścieżkami do includowanych plików jeżeli strona odpala mi sie z katalogu serwer/pliki/ta_strona.php to jak powinna wyglądać względna ścieżka do pliku w folderze serwer/cos/inna_strona.php
Prezesik
Cytat(adi456 @ 24.09.2010, 21:13:32 ) *
Przepraszam za amatorskie pytania.

mam coś takiego

  1. $open='pliki/'.$_GET['id'].'.php';
  2. If(is_file($open) and $_GET['id']!= "strona")
  3. include($open);


i chciałbym dodać jeszcze inną lokalizacje plików np oprócz folderu pliki chciałbym jeszcze cos jest to możliwe?

i mam problem ze ścieżkami do includowanych plików jeżeli strona odpala mi sie z katalogu serwer/pliki/ta_strona.php to jak powinna wyglądać względna ścieżka do pliku w folderze serwer/cos/inna_strona.php


1. Tak, robisz to samo tylko że zmieniasz folder 'pliki' na inną nazwę

2.
  1. <a href="serwer/cos/inna_strona.php></a>
adi456
to chyba pomyliłem względna z bezwzględną chodzi o coś takiego

jestem na stronie http://www.costam.pl/pliki/ta_strona.php i jeżeli chce przejść do następnego folderu to zrobię nastepny_folder/plik.php a co zrobić jeżeli chce się cofnąć z folderu czy wtedy muszę użyć pełnej ścieżki tj http://www.costam.pl/cos/tenplik.php z tego co czytałem stosowanie takich odsyłaczy nie do końca jest dobre chociaż by z tego powodu że całą stronę będe przenosić na inny serwer.

dodam jeszcze że gdy zastosuje pełną ścieżkę
  1. include('http://www.costam.pl/pliki/ta_strona.php');
to nie działa
bastard13
Dodaj sobie do pliku index.php (z tego, co widzę to przypuszczam, że masz redirect z każdego adresu na index) jakąś zdefiniowaną stałą z nazwą hosta np:
  1. define('HOST','http://www.mojastrona.pl');

a w linkach nie wpisujesz wtedy całego adresu w postaci ciągu tylko np:
  1. <a href="<?php echo HOST; ?>/pliki/strona.php">link</a>

i w takim wypadku przy przeniesieniu zmieniasz tylko adres strony w stałej HOST.

A w twoim przypadku, to raczej nie adres hosta tylko ścieżka bezwzględna. Jeżeli wszystko idzie przez index to przyda ci się $_SERVER['DOCUMENT_ROOT'].
adi456
dzięki bastard13 potrafisz logicznie wytłumaczyć, problem z linkami na zawsze rozwiązany

Prosił bym jeszcze o pomoc przy dodaniu folderu do $open
bastard13
Dodanie folderu, to chodzi ci o include z innych katalogów, tak?
W takim wypadku możesz zrobić coś takiego:
  1. $my_folders=array('pliki','include'); //tablica z katalogami, z których może być includowany plik
  2. foreach($my_folders as $folder)
  3. {
  4. $open=$folder.'/'.$_GET['id'].'.php';
  5. if(is_file($open) and $_GET['id']!= "strona")
  6. break;
  7. unset($open);
  8. }
  9. if(isset($open))
  10. { include($open); }
  11. else
  12. {
  13. //kod do wykonania, jeżeli nie isteniej plik
  14. }

W takim wypadku musisz dbać, żeby pliki includowane nie miały takich samych nazw, bo np. masz dwa pliki: pliki/test.php i include/test.php, to skrypt dołączy pierwszy.
Możesz oczywiście nazwę katalogu również sobie przesyłać getem. Sprawdzasz wtedy, czy wartość $_GET['folder'] jest w tablicy $my_folders (foldery, z których można includować). Jeżeli jest to wywołujesz include, a jeżeli nie, to wywołujesz stronę domyślną.
adi456
już się zabieram do sprawdzania kodu

a chodzi o to żeby po kliknięciu w link
  1. <a href="strona.php?id=cos">link</a>
otwarła się strona cos.php z folderu pliki a jeżeli tam nie będzie tego pliku to otworzy z folderu include
bastard13
To w takim wypadku kod, który ci napisałem będzie odpowiedni.
adi456
wszystko działa rewelacyjnie dzięki wielkie, pomoc dla amatora jest naprawdę bezcenna

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.