Micchaleq
20.09.2011, 14:12:31
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
20.09.2011, 14:19:09
Hasło: ładne url'e lub nice url
Pełno tego w necie
Micchaleq
27.09.2011, 11:03:17
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
27.09.2011, 11:05:58
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
27.09.2011, 11:11:13
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.htmlJeż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
27.09.2011, 11:21:42
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
27.09.2011, 11:34:05
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
27.09.2011, 11:36:25
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
27.09.2011, 12:10:42
Witam ponownie,
Dzięki za dużą cierpliwość

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
27.09.2011, 12:12:35
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
27.09.2011, 12:22:41
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
27.09.2011, 12:26:28
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
27.09.2011, 12:38:01
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.