Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PATH INFO
Forum PHP.pl > Forum > PHP
Randallmaster
Czytałem ten artykuł natomiast mam problem z wykorzystaniem tego na moim serwerze...

http://localhost/index.php?zmienna1=wartosc1& zmienna2=wartosc2&zmienna3=wartosc3

cały silnik jest na pliku index.php reszta jest includowana dodałem do pliku .htaccess ten tekst ForceType application/x-httpd-php aby usunąć index.php

link posiadam jak wyżej, natomiast co teraz muszę zrobić aby wyszło:

/wartosc1/wartosc2/wartosc3
nospor
No w przeglądarce tak gdzie podajesz adres strony masz wpisac:
http://localhost/index.php/wartosc1/wartosc2/wartosc3
Randallmaster
no ale ja dodałem tylko tamtą linijkę do pliku .htaccess w index.php nic nie wpisałem, ponieważ nawet nie wiem jak to uruchomić dodanie w body :

  1. <?php
  2. echo $_SERVER['PATH_INFO'];
  3. ?>


nic nie daje dalej szuka mi po katalogach

dodatkowo jak to będzie wyglądało jeśli

mam takie coś:

domena.pl/p=219
domena.pl/c=219


i co teraz jeśli są takie same wartości?
nospor
Cytat
i co teraz jeśli są takie same wartości?
Dlatego ja polecam używac /klucz1/wartosc1/klucz2/wartosc2

Tutaj opisałem alternatywe do tego co ty masz
http://nospor.pl/ladne-urle.html
jest tam w pełni działający kod do ściągniecia. Może ci to pomoże
Randallmaster
Zrobiłem tak jak jest napisane u ciebie i mi nie działa wpisuje

domena.pl/p/212

i nic
nospor
Kurcze... no ale co nic? Jak zrobiłeś jak u mnie? Wyrażaj się jaśniej, pokaż kod na jakim działasz.... chcesz pomocy to daj sobie pomóc i pamiętaj że wróżek nie ma.
Randallmaster
korzystam z twojego kodu:

  1. <?php
  2. $pathInfo = trim($_SERVER['PATH_INFO'], '/'); //usuwamy znak / z końca
  3. if (empty($pathInfo)) { //pusta ścieżka
  4. return true;
  5. }
  6. $arr = explode('/',$pathInfo); //rozbijamy naszą ścieżkę na podstawie /
  7. $count = count($arr);
  8.  
  9. //pierwsze dwa elementy to moduł i akcja
  10. $_GET['module'] = $arr[0];
  11. $_GET['action'] = isset($arr[1]) ? $arr[1] : ''; //tu małe zabezpieczenie, gdyby ktoś zapomniał podać akcji
  12.  
  13. //następne elementy to nazwy parametru i parametr i tak co dwa
  14. for ($i=2; $i < $count;$i+=2){
  15. $_n = $arr[$i]; //nazwa parametru
  16. $_v = isset($arr[$i+1]) ? $arr[$i+1] : ''; //wartość parametru
  17. $_GET[$_n] = $_v;
  18. }?>


Wiem że mam błąd w momencie module i action ( w ogóle tego nie rozumiem )

jak zmienić twój kod aby taki link: domena.pl/p=2012, pokazał się jako domena.pl/p/2012
nospor
W komentarzu z godziny i dnia: 2011-05-18 07:57:43
pokazałem jak zmodyfikować kod by wywalić moduł i akcje zostawiając samo /klucz/wartosc
Randallmaster
nospor jesteś wielki prawie mi się udało smile.gif pobiera mi już zmienną ale mam problem ze zdjęciami i stylami ponieważ wszystko jest zrobione na

style.css

zadziała dopiero jak wpisze

http://domena.pl/style.css

jest jakiś łatwiejszy sposób aby to obejść?
nospor
Dokładnie. Musisz podawać pełną ścieżkę do styli jak również do plików js.

Ponieważ adres wyglada tak: domenta.pl/cos/cosjeszcze to jak dasz samo style.css to on go szuka w :
domenta.pl/cos/cosjeszcze/style.css
Dlatego trzeba podawać pełną ścieżkę.
Randallmaster
a trzeba podawać domenę czy można coś skombinować z localhost? pytam z powodu gdyby kiedyś domena się zmieniła czy będę musiał wszystko edytować?
nospor
Skoro korzystasz z mojego kodu to ścieżkę główną niezależnie czy to localhost czy domena masz w : $nurl->Url();

Wiec korzystaj z niej
Randallmaster
Dzięki temat można zamknąć smile.gif
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.