ďťż

[php] Linki

       

Podstrony


telcocafe

Witam!

Tworzę stronę internetową z użyciem html i php. Widziałem na innych stronach, że po kliknięciu na odnośnik do adresu dodawany było (np.)

www.jakasstrona.pl/index.php[b]?pages=nazwastrony[/b]

I tu jest moje pytanie:

Jak coś takiego można zrobić? Nie umiem znam dobrze php, więc byłoby bardzo miło, gdyby ktoś zamieścił gotowy kod do wklejenia.
Zdaję sobie sprawę, że ktoś może nie chcieć umieścić "gotowca", ale byłbym na prawdę bardzo wdzięczny za takie coś :)
Zależy mi na czymś takim, aby strona z odnośnika wczytywana była do środkowej komórki w tabelce, ponieważ właśnie na tabeli oparłem moją stronę.

Pozdrawiam,
Szary User
Użytkownik Szary User edytował ten post 30 sierpień 2007, 13:33


Ehh... Google.pl?
<?PHP @$id = $_GET['id']; if(file_exists($id.'.php')); include($id.'.php'); else include('home.php');
Nie jest to najbezpieczniejszy sposób ale dziala...
Równie dobrze mozna zrobić coś takiego:
@$id = $_GET['id']; $strony = array('glowna', 'droga'); if(in_array($id, $strony) && file_exists($id,'.php')) include($id.'.php'); else include($strony['0']);
Jest to bezpieczniejszy sposób. W obu przypadkach kod podstron musisz przechowywac w plikach nazwa_podstrony.php a w drugim przypadku nazwy podstron musisz dodac w apostrofach odxzielone przecinkami do tablicy $strony

<a href="index.php?pages=nazwa strony">Link</a>
Do komórki? Może chodzi o frame?
Jeśli tak to
<a href="index.php?pages=nazwa strony" target="nazwa_framea">Link</a>
Użytkownik polasek edytował ten post 30 sierpień 2007, 13:47
Zapoznaj się z instrukcją switch, będzie większy porządek:

switch($_GET['mode']) { case "gallery": echo 'galeria'; break; case "news": echo 'newsy'; break; case "download": echo 'sciagnaie itp'; break; default echo 'strona glowna'; }

Linki: index.html?mode=gallery, index.html?mode=download, Jeśli nie łapiesz pytaj :P
Użytkownik m_uli edytował ten post 30 sierpień 2007, 13:56



Jeśli nie łapiesz pytaj :P

Więc pytam :P

Próbowałem wszystkich metod, ale żadna nie działała tak, jakbym chciał (może nie umiałem zastosować? nie wiem :P)

Moja strona wygląda tak:

http://images13.foto...749f5eac86b.jpg

I chciałbym, żeby linki z menu głównego (menu jest w osobnym pliku php, wczytuje się do komórki) otwierały strony (które mam w podfolderze 'strony') w komórce 'miejsce na tekst'.

Moja strona jest zbudowana z plików:
w gł. folderze strony:
*index.php (szkielet tabeli, z logiem i kolorem tła)
*menu (plik menu)
oraz z podfolderu 'strony'(jak już wcześniej pisałem) w którym mam pliki html'owskie stron (z rozszerzeniem .php, bo tego wymagał wcześniejszy kod), które mają się wczytywać do 'miejsca na tekst. Miałem już gotowy, działający kod php, który dodawałem w szkielecie, ale z nieistotnych powodów musze go zmienićna inny (bądź udowodnić, że jest on oglnodostępny, to wtedy będę mógł mieć go nadal).

W razie niejasności proszę pytać, dzisiaj będę długo na komputerze :P

Robisz tak: Tworzysz ten szkielet strony. W miejscu gdzie ma być treść strony dajesz:
<?php if ($page == glowna) { include('glowna.php'); exit; } else if ($page == strona2) { include('strona2.php'); exit; } else { include('error.php'); exit; } ?>
tam gdzie są linki dajesz w znaczniku "a href=":
<a href="index.php?page=glowna">Główna</a>
Itepe

Pisane z głowy, jak gdzieś są błędy to mówcie
Użytkownik sauron edytował ten post 30 sierpień 2007, 19:40
zastosowałem powyższy pomysł, i po wgraniu na serwer wyskakiwał mi błąd w linii, w której był fragment:

else { include(error.php); exit } @edit (dokładniej w samym 'else')

więc usunąłem to, i teraz serwer widzi błąd na samym końcu strony w

</html> i nie wiem czemu tak jest, skoro wszystko wcześniej działało...
Użytkownik Szary User edytował ten post 30 sierpień 2007, 19:35
Podaj 1 i 2 błąd :) Pewnie ostrzeżenie za 1 razem

edit: brak średnika za exit w ostatniej sekcji.
Użytkownik m_uli edytował ten post 30 sierpień 2007, 19:38
Kolego,a jakiż to błąd Ci pokazało? Jesteś początkujący w PHP więc warto by pomyśleć. Skąd Ci się wziął ten kod? Bo tam masz tak:
1. Brak średnika za exit.
2. Tekst za nawiasem ('@edit...')

Średnik rozwiązał sprawę, teraz strona przynajmniej się włącza ;)

Ale skrypt zasypał mnie błędami:

[b]Warning[/b]: main(errorphp) [[url="http://bartek.vdl.pl/tyniec_page/function.main"]function.main[/url]]: failed to open stream: No such file or directory in [b]/home/ftss/domains/bartek.vdl.pl/public_html/tyniec_page/index.php[/b] on line [b]49[/b] [b]Warning[/b]: main(errorphp) [[url="http://bartek.vdl.pl/tyniec_page/function.main"]function.main[/url]]: failed to open stream: No such file or directory in [b]/home/ftss/domains/bartek.vdl.pl/public_html/tyniec_page/index.php[/b] on line [b]49[/b] [b]Warning[/b]: main(errorphp) [[url="http://bartek.vdl.pl/tyniec_page/function.main"]function.main[/url]]: failed to open stream: No such file or directory in [b]/home/ftss/domains/bartek.vdl.pl/public_html/tyniec_page/index.php[/b] on line [b]49[/b] [b]Warning[/b]: main() [[url="http://bartek.vdl.pl/tyniec_page/function.include"]function.include[/url]] : Failed opening 'errorphp' for inclusion (include_path='.:/usr/local/lib/php') in [b]/home/ftss/domains/bartek.vdl.pl/public_html/tyniec_page/index.php[/b] on line [b]49[/b]
[/b]może chodzi o to, że próbuje [skrypt] pobrać podstrony z głównego folderu a nie z folderu "strony"?


@edit:
a u mnie linia 49 to
<?php if ($page == glowna) { include('glowna.php'); exit; } else if ($page == strona2) { include('strona2.php'); exit; } else { [b] include('error.php');[/b] exit; } ?>

a plik error.php jest w gł. folderze
Użytkownik Szary User edytował ten post 30 sierpień 2007, 19:48
daj w kodzie error.php w apostrofy, bo zapomniałem o nich. Wrzuć wszystkie pliki do głównego katalogu

ok ,dam te apostrofy, ale czy nie dałoby się zrobić tak, żeby skrypt pobierał strony z podkatalogu?
i żeby na starcie wczytywał plik index.php z podfolderu strony, ale to najmniejszy problem, bo ostatecznie alias dam do ...index.php?page=glowna :P

najbardziej zależy mi na podkatalogu, bo będę miał wtedy większy porządek na serwerze ;)

@edit
dałem apostrofy, i teraz wyświetla stronę 'error.php' w przypadku wpisania złego adresu, ale w zamian źle wyświetla stronę - rozciągnęło menu główne i nie wyświetla drugiego menu. chyba usunę ten element (o error.php) bo bez niego strona wyświetla się tak jak trzeba.

@edit2 down:

faktycznie... ehh... coś nie wychodzi mi dzisiaj myślenie :-p
Użytkownik Szary User edytował ten post 30 sierpień 2007, 20:05

i żeby na starcie wczytywał plik index.php z podfolderu strony, ale to najmniejszy problem, bo ostatecznie alias dam do ...index.php?page=glowna :P
if ($page == '') { include('../katalog/index.php'); exit; }

?? Sprawdź to

Teraz już prawie wszystko działa ok, ale pozostaje jedno "ale". Strony się wyświetlają tak jak trzeba, w środkowej komórce, ALE nie wyświetla mi drugiego menu!

To przez to menu główne jest rozciągnięte, bo strona jest dokładnie wyliczona na piksele.

Co i dlaczego 'zjada' mi drugie menu.

@edit:
Drugie menu jest 'zjadane' tylko wtedy, jeśli wywołam stronę przez "?page=", na "czystym" index.php menu jest i ma się dobrze ;)
A menu jest osadzone w komórce za pomocą

<?php include "menul.php" ?>
Użytkownik Szary User edytował ten post 30 sierpień 2007, 20:22
W codebox podaj kod html szablonu, menu i css.

szablon:

@edit w 'include' do prawego menu zmieniłem "<include "menul.html"> na <?php include "menul.php" ?> bo tak ma być, a html miałem tylko przez chwilę, żeby sprawdzić, czy tak zadziała.

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>Mainpage</title> <script type="text/javascript" src="imieniny.js"></script> </head> <body> <body bgcolor="#6090E0"> <div align="center"> <table border="0" width="900" id="table1" cellspacing="0" cellpadding="0"> <tr> <td colspan="3"> <p align="center"> <img border="0" src="img/top.jpg" width="902" height="175"></td> </tr> <tr> <th colspan="3" background="img/cell_bg2.jpg" height="25" width="900"><center><font color="white" face="verdana" style="font-size: 11pt"><script language="Javascript" type="text/javascript"> <!-- pokaz(); //--> </script></font></center> </th> </tr> <tr> <td background="img/menu_cell.jpg" width="151" align="center" valign="top" height="108"> <img src="img/menu.jpg"><?php include "menul.php" ?></td> <td width="600" class="srodek" valign="top" title="srodek"> <?php if ($page == glowna) { include('strony/aktualnosci.php'); exit; } else if ($page == strona2) { include('strony/where.php'); exit; } ?> </td> <td valign="top" background="img/menu_cell_r.jpg" width="151" height="108"> <img src="img/menu_rozne.jpg"><?php include "menul.php" ?> </td> </tr> <tr> <td colspan="3" background="img/cell_bg.jpg"> <p align="center"><font color="#6090E0" style="font-size: 11pt">Stopka</font></td> </tr> </table> </div> </body> </html>

menu

(niezmodyfikowane linki, po obu stronach to samo i działa tylko z lewej) <html> <head> <meta http-equiv="Content-Language" content="pl"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>menul</title> <script type="text/javascript" src="menu.js"></script> <link rel="Stylesheet" type="text/css" href="menu.css" /> </head> <body> <table border="0" width="100px" id="table1"> <tr> <td valign="top" align="left" width="100px"><style="font-size: 13pt"> <dl id="menu0"> <dt><a href="index.php?page=index" class="link">Strona główna</a></dt> <dt><a href="index.php?strony=where" class="link" target="srodek">Gdzie leży Tyniec?</a></dt> <dt>Artykuły</dt> <dd><a href="index.php?page=art1" class="link">Artykuł 1</a></dd> <dd><a href="index.php?page=art2" class="link">Artykuł 2</dd> <dt>Legendy</dt> <dd><a href="index.php?page=legenda1" class="link">Legenda 1</a></dd> <dd><a href="index.php?page=legenda2" class="link">Legenda 2</dd> <dt><a href="index.php?page=ciekawostki" class="link">Ciekawostki</a></dt> <dt><a href="index.php?page=mapka" class="link">Mapka Tyńca</a></dt> <dt><a href="index.php?page=aktualnosci" class="link">Aktualności</a></dt> <dt><a href="index.php?page=galeria" class="link">Galeria</a></dt> <dt><a href="index.php?page=jakpomoc" class="link">Jak możesz nam pomóc?</a></dt> <dt><a href="index.php?page=about" class="link">O stronie</a></dt> </dl> <script type="text/javascript"> // <![CDATA[ new Menu('menu0'); // ]]> </script> </a></span> </font> </th> </tr> </table> </body> </html>

i CSS

* { text-decoration: none; } #menu0 { width: 130px; margin: 3px; padding: 0; } #menu0 dt { color: #D2691E; text-align: left; cursor: pointer; padding: 2px; font-family:verdana } #menu0 dd { color: #D2691E; border-width: 0 0 0 0; border-style: solid; border-color: forestgreen; margin: 1; padding: 1px 5px; text-align: center; font-family: verdana; } a.link { color: darkolivegreen; } P { font-family: verdana; color: #556B2F; text-align: justify; } p.przypis { font-family: verdana; color: #556B2F; font-size: 10pt; text-align: right; } a.mapa { align: center; }
Użytkownik Szary User edytował ten post 30 sierpień 2007, 21:45
Wyrzuć exit i wszystko będzie grać.

Dziękuję, działa!

Dziękuję wszystkim, którzy pomogli mi rozwiązać mój problem, w szczególności użytkownikom sauron oraz andrzej_aa.
Jak tylko skończę stronę, pochwalę się nią w 'polu do popisu' i nie za pomnę wymienić osób, które mi pomogły.

Jeszcze raz bardzo za wszystko dziękuję,

Pozdrawiam i życzę miłej nocy,
Szary User.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.