Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zamiana GET na /
Forum PHP.pl > Forum > Przedszkole
Micchaleq
Witam serdecznie,

Mam pewien problem otóz nie wiem jak coś takiego do końca działa.

Większość stron ( moje wszystkie ) działają za pomocą metody get czyli informacje przesyłane są za pomocą ?info=costam
Nie mniej jednak ostatnio na kilku stronach oraz podczas czytania ksiązki wspomniano o czymś takim jak właśnie napisanie swojego systemu aby strona korzystała z /

Myślałem już trochę nad tym, jednak nie wiem do końca jak się za to zabrać.

Dawno temu jak pisałem stronę to może i korzystałem z / , ale każda strona zawierała ten sam szablon i przechodzenie ze strony na strone = wczytywanie grafiki od nowa.


Ktoś potrafi mi to jakoś wyjaśnić jak za pomocą / możemy wczytać dowolną treść?

nospor
Hasło: ładne url'e lub nice url
Pełno tego w necie
Micchaleq
Witam ponownie,

Otóż przeczytałem już troche tych artykółów na temat ładnych url-i jednak jedno mnie zastanawia i nie ma tego nigdzie napisanego.

Czy do gotowej strony w której są umieszczone odnośniki :
<a href="?web=home" class="home"></a>

i metoda interpretacji :
switch($_GET['web']){
case "home";
include("./go/home.php");
break;
}

to zadziała?

Prawie jestem pewien, że nie.

Proszę mi powiedzieć więc jak zbudować link i taką metodę interpretacji aby to działało? ( bo jakoś nie potrafię tego zrozumieć )
nospor
Cytat
Prawie jestem pewien, że nie.
Zadziała.
Ładne url zamieniają brzydkie linki
?web=home
na np.:
/home
lub na masę innych - wszystko zależy od tego jak twórca chce to mieć.

nie wiem jak ty szukałeś info o tym, ale pełno w necie po polsku info jak robić ładne urle. Jeden z linków masz choćby w moim podpisie, ale to i tak tylko wierzchołek góry lodowej tego co jest w necie.
Micchaleq
Dzięki za szybką odpowiedz,

Ogólnie chodzi konkretnie o to, że nie wiem jak to działa generalnie czytam :
http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html

Jeżeli możesz to powiedz mi :
1. Czy mając gotową stronę wystarczy odpowiednio skonfigurować tylko .htaccess, czy może trzeba jeszcze napisać odpowienią funkcje i podłożyć ją w kod?

2. Czy możesz podać przydład jak powinien wyglądać :
RewriteRule

dla takiego adresu :
http://www.domena.pl/webside/index.php?web=historia
nospor
wg. mojego arta, rewrite rule będzie takie samo niezależnie od linku.
Skoro pisałeś, że nic nie znalazłeś sam, to skoro podałem ci linka, to mogłeś się z nim zapoznać, a dopiero potem zadawać pytania.

edit: swojego posta pisałem ,gdy post powyżej wyglądał zupełnie inaczej, więc się nie dziwić, że teraz za bardzo nie pasuje

edit2:
staraj się nie edytować diametralnie postów, gdy ktoś już na nie odpowiedział.... pisz wówczas kolejny post

ad1) przy podejściu, co proponuje erix, musisz oprócz .htaccess modyfikować też kod. Linki w stronie same w magiczny sposób się nie pozmieniają.
Przy podejściu, które ja proponuję, że całość przechodzi przez ruter w php, htaccess zawsze wygląda tak samo, a zmienia się tylko ruter w php osbługujący linki.
Choć w sumie, przy podejściu erixa, też można napisać klasę do linków i wrazie czego zmieniać już tylko w tej klasie, a nie w całym kodzie
Micchaleq
Jedyne czego nie rozumiem, to gdzie podstawić te twoje klasy.

Użytkownik wchodząc na moją strone ma link:
domenta.pl/index.php
po kliknięciu w link tworzy się odpowiedni adres
domenta.pl/index.php?web=jakas_zakladka

( w sumie tak się dzieje wszędzie )

I teraz gdzie wywołanie tej klasy na początku ładowania jakas_zakladka.php?

z tego co rozumiem to ( w przypadku twojego skryptu )

mam podać : <a href="url(?web=home")></a> // oczywiście to jest błędnie zapisane
oraz na początku ładowania każdej strony w tym przypadku home.php załączyć includa z dekodowaniem?
nospor
No ale do mojego arta jest dołączona paczka, w pełni działającym kodem. Tam masz podane gdzie i jak co odpalać.

Klasa ma być odpalona na początku index.php - patrz przykład z paczki.
Micchaleq
Witam ponownie,

Dzięki za dużą cierpliwość smile.gif

Skrypt niby działa, jednak jak podpiąłem go pod swoją stronę to znika mi cała grafika.

W indexie są takie linki do banerów :
<div><img src="img/banner.png" border="0"></div>

Dlaczego?
nospor
Bo jesli zaczniesz używać linków w stylu /home to już zmienia się ściezka strony. Linki podawane na podstawie sciezki względnej przestaną wiec działać. Musisz podawać linki bezwględne, tj: http://mojastrona.pl/img/banner.png
Micchaleq
Na stronie w obrazkach podaje :
$baseUrl do tych które juz mam,
ale większość jest w stylach i nawet jak podaje ścieżkę bezwzględną to nie działa :
np
background-image: url(http://localhost/test/img/foot.png);


Oczywiście w przeglądarce sprawdzałem adres i działa
nospor
W css ścieżki mogą pozostać względne. W css ścieżka liczona jest względem pliku css. Jeśli więc plik css załadowałeś poprawnie ze ścieżką bezwględną, to juz w css możesz spokojnie używać ścieżek względnych
Micchaleq
Bardzo dziękuje za pomoc.

Wszystko już co potrzebowałem to rozumiem.
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.