ďťż
Podstrony
|
telcocafeWitamJak mozna zrobic w php cos takigo ze po klikineciu w link zmienia sie tylko cesc strony (powiedzmy srodek) a resta poostaje bez zmian. Pytam sie o rozwiaznie w php, ze wzgledu na to ze nie wszystkie przegladarki obsluguja ramki .... z gory thx W miejscu gdzie chcemy coś includować: $id=$_GET["id"]; if( empty( $id )) {include("start.php");} elseif( $id == "str1" ) {include("str1.php");} elseif( $id == "str2" ) {include("str2.php");} elseif( $id == "str3" ) {include("str3.php");} elseif( $id == "str4" ) {include("str4.php");} else { include("start.php"); } Linki w menu: <a href="index.php">Home</a> <a href="index.php?id=str1">str1</a> <a href="index.php?id=str2">str2</a> <a href="index.php?id=str3">str3</a> <a href="index.php?id=str4">str4</a> To jest przykład na include, ale działa bardzo dobrze. Przykład? Link Użytkownik szyma2 edytował ten post 28 styczeń 2006, 10:31 super !! :) , zaraz sie tym pobawie . Dzieki :) a zapytam sie z ciekawosci - sa jeszce jakies inne sposoby ? Ps. fajna stronka :) Użytkownik rafa edytował ten post 28 styczeń 2006, 10:36 a zapytam sie z ciekawosci - sa jeszce jakies inne sposoby ? Nie wiem, ja znam tylko ten. Ps. fajna stronka smile.gif Dzięki ;) ja używam takiego sposobu: <? if(isset($_GET["mod"])){ $dzial = basename($_GET["mod"]); if(file_exists($dzial .".php")){ $dzial .= ".php"; }else{ $dzial = "news.php"; } }else{ $dzial = "news.php"; } include ($dzial); ?> użycie: <a href="index.php?mod=jakislink">Link</a> Użytkownik ARJ edytował ten post 28 styczeń 2006, 11:44 Jak ktoś jeszcze nie zauważył to ten sposób wymaga przeładowania całej strony. Na szczęście nowoczesne przeglądarki cache'ują ze stron wiele elementów graficznych, dlatego często to odświeżanie stałych elementów jest niezauważalne. Da sie to jedak zrobić bez przeładowywania używając technologi AJAX (użycie Javascriptu). Technologia AJAX w PHP Na tej stronie podane są też odnośniki do innych źródeł :) Wadą tego rozwiązania jest to, że technologia te nie działa w przeglądarkach bez JS lub z wyłączoną obsługą JS. W miejscu gdzie chcemy coś includować: $id=$_GET["id"]; if( empty( $id )) {include("start.php");} elseif( $id == "str1" ) {include("str1.php");} elseif( $id == "str2" ) {include("str2.php");} elseif( $id == "str3" ) {include("str3.php");} elseif( $id == "str4" ) {include("str4.php");} else { include("start.php"); } Linki w menu: <a href="index.php">Home</a> <a href="index.php?id=str1">str1</a> <a href="index.php?id=str2">str2</a> <a href="index.php?id=str3">str3</a> <a href="index.php?id=str4">str4</a> To jest przykład na include, ale działa bardzo dobrze. Przykład? Link Można też zastosować instrukcję switch(): $strona = $_GET['strona']; switch ($strona) { case 1: include('strona1.php'); break; case 2: include('strona2.php'); break; case 3: include('strona3.php'); break; default: include('index.php'); break; } Linki wyglądają wtedy tak: <a href="index.php?strona=1">Strona1</a> <a href="index.php?strona=2">Strona2</a> ... <? $id=$_GET["id"]; if( empty( $id )) {include('domyslna.php');} elseif( $id == "page1" ) {include('page1.php');} elseif( $id == "page2" ) {include('page2.php');} else { include('domyslna.php'); } ?> Linki w menu: <a href="index.php">Home</a> <a href="index.php?id=page1">page1</a> <a href="index.php?id=page2">page</a> Powinno działać. Co do sprawności - ten Kod jest wystarczająco dobrze zabezpieczony przed XSS, i powinien szybko działać. Porównaj sobie z poprzednimi, i sprawdź czas generowania, wybierz najbardziej optymalny, i najlepiej nas o swoim wyborze powiadom. Użytkownik pawkow edytował ten post 28 styczeń 2006, 21:06 Hehe @pawkow przecież to prawie to samo napisał @szyma2 na samym początku :P Bo to właśnie pawkow wysłał mi to na PW, a jako że ja byłem wcześniej to mój post znalazł się wyżej ;] Przepraszam, nie przeczytałem. Więc powiem tak: szyna2 - jesteś sprytna, przebiegła i nieomylna, o czym świadczy twój kod. Poza tym jeszcze jedna porada ode mnie, której szyna2 nie podała: Co do sprawności - ten Kod jest wystarczająco dobrze zabezpieczony przed XSS, i powinien szybko działać. Porównaj sobie z poprzednimi, i sprawdź czas generowania, wybierz najbardziej optymalny, i najlepiej nas o swoim wyborze powiadom. //Edit: A no fakt Szyna, faktycznie. Wysłałem Ci to jak potrzebowałaś pilnej pomocy a ja miałem bana. Pozdrawiam :P Użytkownik pawkow edytował ten post 28 styczeń 2006, 21:05 To ja dodam jeszcze coś od siebie ;) <?php $page = $_GET['page']; if(!empty($page)) { Â if(is_file("pages/$page.php")) include "pages/$page.php"; Â Â else include('pages/blad404.php'); Â Â Â // błąd 404 - brak pliku } else include 'pages/main.php'; ?> Pliki ze stronami przechowujesz w katalogu pages. Więc jesli w pliku znajdzie się np. plik kontakt.php, to wywołujesz index.php?page=kontakt, jeśli xxxx.php, to index.php?page=xxxx. Jeśli user wpisze zły adres (tj. np. index.php?page=ekspert), a pliku ekspert.php nie będzie - wczyta się strona dla błędu 404 - blad404.php z katalogu pages. Domyślną stroną jest main.php; np. jeśli user wpisze index.php - to takowa strona się właśnie wczyta ;) Proste :D Użytkownik Coldpeer edytował ten post 28 styczeń 2006, 21:45 To ja dodam jeszcze coś od siebie ;) ... Pliki ze stronami przechowujesz w katalogu pages. Więc jesli w pliku znajdzie się np. plik kontakt.php, to wywołujesz index.php?page=kontakt, jeśli xxxx.php, to index.php?page=xxxx. Jeśli user wpisze zły adres (tj. np. index.php?page=ekspert), a pliku ekspert.php nie będzie - wczyta się strona dla błędu 404 - blad404.php z katalogu pages. Domyślną stroną jest main.php; np. jeśli user wpisze index.php - to takowa strona się właśnie wczyta ;) Proste :D @Coldpeer twój kod jest podatny na bug include() Najlepszy kod jest autorstwa zbiga27. Nie jest od podatny i w razie ataku "zachowa zimną krew" :P @Coldpeer twój kod jest podatny na bug include() :huh: :blink: Masz coś do mego kodu? :P Kod zbiga27 jest trochę mało usprawniony... Bo przy każdym dodaniu pliku trza modyfikować kod. A jeśli on ma 150 stron? :D Użytkownik Coldpeer edytował ten post 28 styczeń 2006, 22:03 :huh: :blink: Masz coś do mego kodu? :P Kod zbiga27 jest trochę mało usprawniony... Bo przy każdym dodaniu pliku trza modyfikować kod. A jeśli on ma 150 stron? :D kurcze, nie mialem pojecia ze temat sie tak rozwinie. Nie mam pojecia ktora opcje wybrac. na zabezpieczeniach si jeszcze nie znam ... kurcze, nie mialem pojecia ze temat sie tak rozwinie. Nie mam pojecia ktora opcje wybrac. na zabezpieczeniach si jeszcze nie znam ... :huh: :blink: Masz coś do mego kodu? :P Kod zbiga27 jest trochę mało usprawniony... Bo przy każdym dodaniu pliku trza modyfikować kod. A jeśli on ma 150 stron? :D to użyje CMS i strony będzie trzymał w bazie danych :) jeszcze nieopanowalem korzystania z bazy z poziomu php :D , przerabiam swoja stronke domową, uczac sie nowyc rzeczy :) Użytkownik rafa edytował ten post 29 styczeń 2006, 00:31 Tak, tylko że on tworzy pod jakąś swoją tam stronkę ;) A po co od razu CMS? Lepiej napisać samemu na bazie :) Może chodziło o swojego CMS-a ?? :P Może ;) Ale on napisał "użyję", a nie "napiszę" :P Więc raczej miał to być gotowiec :) Ale kto wie... Koleś nie jest zaawansowanym webmasterem pracującym na zlecenie, i pewnie nawet nigdy nie pisał CMSa poza tym zaadaptować dowolnego CMS-a do jakiejś stronki może być czasami koszmarnie trudno. Ja zawsze piszę KAŻDĄ stronke odnowa :P cms-ami sie bawlem i stwerdzam, ze niepotrzebuje takiego 'kombajnu' :) kombajnu?? Widziałeś kombajn?? Nie napisał bś komabjnu tak ot sobie :P przeciez CMS to potezne narzedzie, wiec oco chdzi .... ? przeciez CMS to potezne narzedzie, wiec oco chdzi .... ? czy jesli mam kod np taki : $strona = $_GET['strona']; switch ($strona) { case 1: include('strona1.php'); break; case 2: include('strona2.php'); break; case 3: include('strona3.php'); break; default: include('index.php'); break; } to musze go umieszczas w kazdej podstronie ? Nie. Tylko w miejscu, gdzie chcesz żeby wyświetlały się podstrony. aha dzieki |
|||
Sitedesign by AltusUmbrae. |