Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty problem ze stroną.
Forum PHP.pl > Forum > Przedszkole
adam2506
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>


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 snitch.gif
Maciekbjw
zmienne powinieneś przesyłać metodą GET

czyli będzie
  1. <?php
  2. if(isset($_GET['nazwa'] == costam)) { include 'strona.php'; }
  3. ?>
adam2506
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. ?>
Maciekbjw
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.
sniezny_wilk
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 smile.gif ?
Maciekbjw
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
Cysiaczek
Przenoszę na Przedszkole
sniezny_wilk
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
Maciekbjw
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ąć smile.gif
adam2506
Ok, zrobiłem na switch i śmiga 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 winksmiley.jpg Pozdro
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.