Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 4 Dołączył: 18.09.2010 Ostrzeżenie: (0%)
|
Witam,
Do tej pory stosowałem $_SERVER['PATH_INFO'], ale jak się okazuje, nie na każdym serwerze jest ono dostępne. Przykładowo, na jednym z serwów, z których korzystam, zamiast PATH_INFO jest ORIG_PATH_INFO, zaś na nginx nie ma obu tych indeksów. Ciekaw jestem czego wy używacie w swoich projektach. Myślałem na URL_REQUEST. Są jakieś przeciwwskazania? Wymagania co do działania: - PHP 5.2.17 lub nowsze - serwer Apache, IIS oraz nginx - przyzwoity wygląd linków bez korzystania z htc Proszę o propozycję (IMG:style_emoticons/default/smile.gif) Ten post edytował Inscure 21.06.2012, 20:13:31 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 4 Dołączył: 18.09.2010 Ostrzeżenie: (0%)
|
Linki mam tworzone dynamicznie dzięki implementacji odpowiedniej funkcji, którą rejestruję w systemie szablonów OPT, przez co może byc używana w plikach tpl.
Działa to mniej więcej na takiej zasadzie, że jako argumenty przesyłam nazwe kontrolera, akcję oraz parametry, a skrypt sam albo dodaje index.php do zwracanego adresu, albo nie - w zależności od wyniku metody systemowej, sprawdzającej czy mod rewrite jest załadowany. Co do sytuacji pustej zmiennej, to oczywiście mam to uwzględnione, bo to przecież podstawowa sprawa (IMG:style_emoticons/default/smile.gif) Potrzebna była jeszcze drobna poprawka. Ostatecznie wygląda to tak: Kod protected function setEnv() { $dirname = dirname($_SERVER['SCRIPT_NAME']); if ($dirname === $this->_sep) { $to_replace = $this->_sep.'index.php'; } else { $to_replace = array($dirname, $this->_sep.'index.php'); } define('PATH_INFO', str_replace($to_replace, '', $_SERVER['REQUEST_URI'])); } Takie kwestie jak index.php czy separator jako zmienna klasy to już kwestia podejścia do sprawy, więc przyjmijmy że to pomijamy (IMG:style_emoticons/default/smile.gif) Śmiga aż miło, niestety nie na nginx. Czyli cała praca z przepisywaniem na marne. Okazuje się, że nginx nie przyjmuje niczego co jest po pliku. Czyli przyjmuje: /index.php ale już nie index.php/ a tym bardziej nie index.php/ctrl/act/ Chyba trzeba dla tego serwera dac tradycyjne linki: index.php?page=ctrl&action=act. Jakieś inne pomysły? Ten post edytował Inscure 25.06.2012, 17:33:10 |
|
|
|
Inscure Path info vs inne rozwiązania do routingu 21.06.2012, 19:37:48
by_ikar Cytatzaś na nginx nie ma obu tych indeksów.
Są, je... 22.06.2012, 03:48:13 
Inscure Cytat(by_ikar @ 22.06.2012, 04:48:13 ... 22.06.2012, 09:37:47
by_ikar OK, więc albo zabawa z query_string, albo najprośc... 22.06.2012, 16:41:37
Gligamesh [PHP] pobierz, plaintext $dir = substr($_SERVE... 24.06.2012, 15:38:25
by_ikar @UP osobiście proponowałbym takie rozwiązanie:
[P... 24.06.2012, 19:16:11
Inscure Muszę uwzględnic jeszcez sytuację, gdy mod rewrite... 25.06.2012, 10:22:10
by_ikar A to w takim wypadku wystarczy dodać do dirname in... 25.06.2012, 11:49:17
by_ikar Po co ci wówczas router, jeżeli będziesz miał te l... 25.06.2012, 18:39:08
toaspzoo __FILE__ 25.06.2012, 20:04:05
Inscure No panowie... dzięki za pomoc, chyba tak jak teraz... 25.06.2012, 21:30:20 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 20:55 |