Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]include, ścieżki do plików - problem, $open='plili/'.$_GET['id'].'.php';
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


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
Go to the top of the page
+Quote Post
Prezesik
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 3.07.2010

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


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>
Go to the top of the page
+Quote Post
adi456
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


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

Ten post edytował adi456 24.09.2010, 20:36:12
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


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'].

Ten post edytował bastard13 24.09.2010, 20:39:53


--------------------
Go to the top of the page
+Quote Post
adi456
post
Post #5





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


dzięki bastard13 potrafisz logicznie wytłumaczyć, problem z linkami na zawsze rozwiązany

Prosił bym jeszcze o pomoc przy dodaniu folderu do $open
Go to the top of the page
+Quote Post
bastard13
post
Post #6





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


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ą.


--------------------
Go to the top of the page
+Quote Post
adi456
post
Post #7





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


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

Ten post edytował adi456 24.09.2010, 21:42:12
Go to the top of the page
+Quote Post
bastard13
post
Post #8





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


To w takim wypadku kod, który ci napisałem będzie odpowiedni.


--------------------
Go to the top of the page
+Quote Post
adi456
post
Post #9





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


wszystko działa rewelacyjnie dzięki wielkie, pomoc dla amatora jest naprawdę bezcenna



Ten post edytował adi456 15.10.2010, 13:42:48
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 Aktualny czas: 21.08.2025 - 23:33