srok@ 0 Zgłoś post Napisano Luty 5, 2006 Część kodu jest z jakiejś (niepamiętam adresu) strony Może się komuś przyda. (ja pisałem ). Pewnie często przeglądając strony zauważyliście przyjazne url`e. Np. zamiast index.php?show=news&action=all&id=35435&lang=pol było index.php/news/all/35435/pol - takie link zdecydowanie woli google, łatwiej wypozycjonować taką stronę. Tylko jak to osiągnąć bez mod_rewrite (np. na darmowych serwerach lub np. home.pl ). Wystarczy użyć tego kodu: <?php $path = array(); // Tworzenie tablicy $strDefaultPath = '/welcome'; // Standardowa wartość $_SERVER['PATH_INFO'] = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath; // Jeśli puste ustawia standardową wartość $path = explode( '/', substr( $_SERVER['PATH_INFO'], 1) ); // Rozbija PATH_INFO co znak / if(file_exists($path['0'].'.php')) // Sprawdzanie czy istnieje plik z pierwszego /asfk/ { require($path['0'].'.php'); // Jeśli tak to go includuje dodając .php } else { require('welcome.php'); // Jeśli nie to includuje plik welcome.php } ?> W tym kodzie $path['0'] jest zajęte dla pliku który ma być includowany reszta wedle uznania. plik wyjściowy to index.php Kolejne dane są przechowywane w zmiennych $path['liczba']; Np. www.strona.pl/index.php/news/show/all/11/pl Daje w konsekwencji: includowanie pliku news.php jeśli istnieje nadanie zmiennym wartości: <?php $path['1'] = 'show'; $path['2'] = 'all'; $path['3'] = '11'; $path['4'] = 'pl'; ?> Myśle, że już każdy rozumie ten kod. Oczywiście adresy obrazków, plików trzeba dawać ścieżką bezwzględną, np. <img src="http://strona.pl/img/obrazek.gif"> Gdyż w innym wypadku szuka obrazka tam gdzie go zapewne nie ma Proszę o komentarze dot. tego artykułu. Sam napisałem ten art Udostępnij ten post Link to postu Udostępnij na innych stronach
anarchy 0 Zgłoś post Napisano Luty 5, 2006 z php.pl ten kod a w zasadzie czesc, nie wiem po co to powielac.... Udostępnij ten post Link to postu Udostępnij na innych stronach
srok@ 0 Zgłoś post Napisano Luty 5, 2006 możliwe, właśnie nie wiedziałem skąd mam ten kod a mi się nudziło więc napisałem ten art. Udostępnij ten post Link to postu Udostępnij na innych stronach
Discover 0 Zgłoś post Napisano Styczeń 16, 2009 Mam taki kod <?php $path = array(); // Tworzenie tablicy $strDefaultPath = 'news'; // Standardowa wartość $_SERVER['PATH_INFO'] = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath; // Jeśli puste ustawia standardową wartość $path = explode( '/', substr( $_SERVER['PATH_INFO'], 1) ); // Rozbija PATH_INFO co znak / if(file_exists($path['0'].'.php')) // Sprawdzanie czy istnieje plik z pierwszego /asfk/ { require($path['0'].'.php'); // Jeśli tak to go includuje dodając .php } else { require('news.php'); // Jeśli nie to includuje plik welcome.php } ?> i linki np <li><a href="index.php/contact" style="font-size: 16px;">KONTAKT</a></li> A co jeśli chiałbym link do katalogu np img ? http:...../index.php/img/contact nie działa Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Styczeń 16, 2009 W bardzo brzydkiej przeróbce powyższego: if ((count($path) == 2) && (file_exists($path['0'].'/'.$path['1'].'.php'))) { require($path['0'].'/'.$path['1'].'.php'); } elseif ((count($path) == 1) && (file_exists($path['0'].'.php'))) { require($path['0'].'.php'); } else { require('news.php'); } Udostępnij ten post Link to postu Udostępnij na innych stronach
Discover 0 Zgłoś post Napisano Styczeń 16, 2009 W bardzo brzydkiej przeróbce powyższego: if ((count($path) == 2) && (file_exists($path['0'].'/'.$path['1'].'.php'))) { require($path['0'].'/'.$path['1'].'.php'); } elseif ((count($path) == 1) && (file_exists($path['0'].'.php'))) { require($path['0'].'.php'); } else { require('news.php'); } Dzięki wielkie, dlaczego brzydkiej ? Działa dobrze prosty Udostępnij ten post Link to postu Udostępnij na innych stronach
p 3 Zgłoś post Napisano Styczeń 16, 2009 Dzięki wielkie, dlaczego brzydkiej ? Działa dobrze prostyBo w php A tak poważniej, to działa tylko na dwóch poziomach (aktualny katalog i podkatalog), nie ma żadnych zabezpieczeń, przez co można dołączyć pliki .php z katalogu 'powyżej' aktualnego katalogu (http://xxx.pl/../info.php), itd. Właściwie odrazu to popraw if ((count($path) == 2) && ($path['0'] != "..") && (file_exists($path['0'].'/'.$path['1'].'.php'))) { require($path['0'].'/'.$path['1'].'.php'); } elseif ((count($path) == 1) && (file_exists($path['0'].'.php'))) { require($path['0'].'.php'); } else { require('news.php'); } Udostępnij ten post Link to postu Udostępnij na innych stronach