Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Prosty problem ze stroną.
adam2506
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.12.2006

Ostrzeżenie: (0%)
-----


Witam, mam dość prosty problem. Znalazłem sobie bezpłatny serwer w internecie obsługujący php. Aby sprawdzić czy rzeczywiście php zadziała wypróbowałem na serwerze skrypt "Hello World" no i działa. Zacząłem pisać przykładową stronę od prostego szablonu, który będę edytował kiedy już będzie wszystko śmigać. Składa się ona z trzech kolumn - w lewej jest menu, w środkowej ma zmieniać się główna treść strony a w prawej kolumnie będzie drugie menu. Problem jest taki, że edytując plik index.php na swoim komputerze wszystko działa a po wrzuceniu na serwer nie zmienia mi się główna treść strony - nie wiem dlaczego.

Plik index.php :

a) odsyłacze w menu (1 kolumna) :

Kod
<div class="menu">
<a href="index.php?id=a1>Potrawy</a>
<a href="index.php?id=a2">Plyty</a>
<a href="index.php?id=a3">Programy</a>
<a href="index.php?id=a4">Kapcie</a>
</div>


(IMG:http://forum.php.pl/style_emoticons/default/cool.gif) Kod php w głównej części strony (2 kolumna) :

Kod
<?php
    
    if(empty($id) or $id=="a1"){
        include("dane/nowosci.html");
    }
    
    if($id=="a2"){
        include("dane/galeria.html");
    }

    if($id=="a3"){
        include("dane/programy.html");
    }

    if($id=="a4"){
        include("dane/ksiazki.html");
    }
    
    ?>


Położenie folderów jest prawidłowe, wpisanie w odnośnikach pełnej ścieżki (razem z adresem serwera) nic nie daje i nazwy też są jednakowe.. Gdzie może być błąd?

Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Maciekbjw
post
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


zmienne powinieneś przesyłać metodą GET

czyli będzie
  1. <?php
  2. if(isset($_GET['nazwa'] == costam)) { include 'strona.php'; }
  3. ?>
Go to the top of the page
+Quote Post
adam2506
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.12.2006

Ostrzeżenie: (0%)
-----


Cytat(Maciekbjw @ 25.12.2007, 01:28:36 ) *
zmienne powinieneś przesyłać metodą GET

czyli będzie
  1. <?php
  2. if(isset($_GET['nazwa'] == costam)) { include 'strona.php'; }
  3. ?>




Napisałem tak i edytor (E-Net) pokazał mi taki błąd:

Cytat
Parse error: parse error, expecting `','' or `')'' in c:\documents and settings\lol\pulpit\tymczasowy\prosta-strona-w-php\php\index.php on line 50


Napisz może dokładnie jak użyć metody GET w tym poniżej :

  1. <?php
  2. if(empty($id) or $id=="nowosci"){
  3. include("dane/nowosci.html");
  4. }
  5.  
  6. if($id=="galeria"){
  7. include("dane/galeria.html");
  8. }
  9. ?>
Go to the top of the page
+Quote Post
Maciekbjw
post
Post #4





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


więc tak:

  1. <?php
  2.  
  3. if(isset($_GET['p']=='nowosci')) 
  4. /* index.php?p=nowosci czyli jesli zmienna typu GET, o nazwie p przyjmuje wartosc 'nowosci' */
  5. {
  6. include 'newsy.html';
  7. }
  8. elseif(isset($_GET['p']=='autorzy')) //index.php?p=autorzy
  9. {
  10. include 'autorzy.html';
  11. }
  12. else { jesli nie przyjmuje zadnej wartosci, czyli bedzie to pewnie index.php
  13. include 'plik.html';
  14. }
  15. ?>

to tylko taki ogolny zarys. mozesz to rozbudować o dowolną ilość elseifów, lub zrobić na switchach. wszystko kwestia upodobania. pozdrawiam.
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #5





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Ja to bym rozwiązał jedną linijką:

  1. <?php
  2.  
  3. include(basename($_GET["page"]).".html");
  4.  
  5. ?>


Jeśli podasz www.adrestrony.pl?skrypt.php?page=strona , zaincludowana zostanie strona o nazwie strona.html, dasz page=glowna, wczytana zostanie glowna.html. Myślę, że jest to dość uniwersalne rozwiązanie. Jeśli chcesz jakąś ścieżkę podać to:

  1. <?php
  2.  
  3. include(basename("sciezka/".$_GET["page"]).".html");
  4.  
  5. ?>


basename, robi tu za zabezpieczenie. O to chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ?
Go to the top of the page
+Quote Post
Maciekbjw
post
Post #6





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jeśli chodzi o coś uniwersalnego, to rozsądnie będzie użyć tego skryptu:

  1. <?php
  2.  
  3. $strony = array("strona1", "strona2", "strona3", "strona4"); // dozwolone strony
  4. $domyslna = "index"; // strona domyslna (gdy nie ma zdefiniowanego $_GET['go'])
  5. $strona = isset($_GET['go']) ? $_GET['go'] : $domyslna;
  6.  
  7. if(in_array($strona, $strony)) { include($strona . ".php"); }
  8. else { include ('strona5.php'); }
  9. /*jesli index.php to includujemy strona5.php; czesto to stosuje do includowania n
    ewsow w index.php */
  10.  
  11.  
  12. ?>


Linki będą wygładały w ten sposób: index.php?go=strona1 //zaincludowana zostanie strona
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #7





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Przenoszę na Przedszkole
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #8





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


Cytat(Maciekbjw @ 25.12.2007, 11:16:16 ) *
Jeśli chodzi o coś uniwersalnego, to rozsądnie będzie użyć tego skryptu:

  1. <?php
  2.  
  3. $strony = array("strona1", "strona2", "strona3", "strona4"); // dozwolone strony
  4. $domyslna = "index"; // strona domyslna (gdy nie ma zdefiniowanego $_GET['go'])
  5. $strona = isset($_GET['go']) ? $_GET['go'] : $domyslna;
  6.  
  7. if(in_array($strona, $strony)) { include($strona . ".php"); }
  8. else { include ('strona5.php'); }
  9. /*jesli index.php to includujemy strona5.php; czesto to stosuje do includowania n
    ewsow w index.php */
  10. ?>


Linki będą wygładały w ten sposób: index.php?go=strona1 //zaincludowana zostanie strona

Linijki 4 i 5 - niepotrzebne. Nigdy index.php nie zostanie zaincludowana. Wg to co napisałeś domyślną stroną w przypadku nie ustawienia zmiennej $_GET['go'], lub wprowadzenia stringu, który nie znajduje się w talicy - będzie strona5.php
Go to the top of the page
+Quote Post
Maciekbjw
post
Post #9





Grupa: Zarejestrowani
Postów: 217
Pomógł: 23
Dołączył: 2.12.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No racja, dlatego w komentarzu napisałem, że używam tego do wyświetlania newsów na stronie głownej;) można również tam jakiś tekst echnąć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
adam2506
post
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 27.12.2006

Ostrzeżenie: (0%)
-----


Ok, zrobiłem na switch i śmiga (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzieki za pomoc.


Kod
<?php
switch ($_GET['str'])
{
case "g0":
include ("witaj.html");
break;

default:
include ("witaj.html");
}
?>


P.S. Jeśli ktoś zna metode, dzięki której szybciej będzie śmigać to proszę przerobić powyższy kod na odpowiedni (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdro

Ten post edytował adam2506 26.12.2007, 01:20:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 12:17