Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][CSS] Ładowanie zawartości plików .php, sttrona na DIVach, includowanie plików z menu
eol
post
Post #1





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

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


Witam.
Zbudowałem stronę na czterech DIVach: baner,menu, środek i prawa (wszystko na position:absolute - jestem początkujący, więc na razie jest tak), która wygląda tak:

strona

Chciałbym, aby po wybraniu czegoś z menu (np. Spis treści), ładowało się to, do środkowego DIVa.

Obecnie na serwerze jest index.html

Wyczytałem już, że najłatwiej początkującym jest zrobić to za pomocą include(). Szperałem dalej i nawet udało mi się coś stworzyć. Jednak gdy załaduje plik index.php (teoretycznie zawierający skrypt do wczytywania zawartości do DIVa środkowego) pojawia się całkowicie biała strona, a firebug pokazuje że nic w pliku nie ma...

Oto kod index.php

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
<title>cos tam</title>
<link rel="stylesheet" href="style.css" type="text/css" />
<!--[if gte ie 5]>
<link rel="stylesheet" href="exstyle.css" type="text/css">
<![endif]-->
                  
</head>

<body>

<div id="banner"> Tekst w banerze </div>        
<div id="menu">

<h2>Menu</h2>

<ul>
<li><a href="index.php?id=home.php">HOME</a></li>
<li><a href="index.php?id=spis.php">Spis treść</a></li>
<li><a href="index.php?id=nowosci.php">Nowości</a></li>
<li><a href="index.php?id=kontakt.php">Kontakt</a></li>
</ul>

<h2>Menu 2</h2>

</div>

<div id="tresc">
<?php
if($_GET['id']!="")
{
     switch( $_GET['id']) {
         case 'home':
             include 'home.php'
         break;
         case 'spis':
             include 'spis.php';
         break;
         case 'nowosci':
             include 'nowosci.php';
         break;
         case 'kontakt':
            include 'kontakt.php';
         break;
        
         default:
             include 'home.php';
     }    
}
else{
     include 'home.php'      
     };
?>
</div>

<div id="prawa">
<p><span>Superważna wiadomość</span>
To jest naprawdę ważna wiadomośc, tak ważna,
że nawet nie moge jej tu napisać:-)</p>
<p><span>Imieniny:</span>
Dziś imieniny obchodzą Bonifacy i Kunegunda</p>
</div>
      
</body>
</html>


Jedyna różnica między index.html, a index.php jest taka, że w miejscu wstawienia kodu php (zaraz pod div id="treść") w pliku .html jest tekst, który obecnie znajduje się na stronie w środkowym DIVie.

Nie wiem, może trzeba coś do head wstawić, żeby to to widziało php czy cóś?

PS. prv.pl obsługuje php
PS2. nadal nie wiem jak zrobić, żeby we wklejanym na forum kodzie wiersze były ponumerowane (używam pajączka)

Ten post edytował eol 23.09.2008, 21:54:36
Go to the top of the page
+Quote Post
Spirit86
post
Post #2





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Ten kod był masochistyczny. Sprawdź ten:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "htt://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  6. <title>MSGIE</title>
  7. <link rel="stylesheet" href="style.css" type="text/css" />
  8. <!--[if gte ie 5]>
  9. <link rel="stylesheet" href="exstyle.css" type="text/css">
  10. <![endif]-->
  11.                  
  12. </head>
  13.  
  14. <body>
  15.  
  16. <div id="banner"> Tekst w banerze </div>        
  17. <div id="menu">
  18.  
  19. <h2>Menu</h2>
  20.  
  21. <ul>
  22. <li><a href="index.php?id=home.php">HOME</a></li>
  23. <li><a href="index.php?id=spis.php">Spis treść</a></li>
  24. <li><a href="index.php?id=nowosci.php">Nowości</a></li>
  25. <li><a href="index.php?id=kontakt.php">Kontakt</a></li>
  26. </ul>
  27.  
  28. <h2>Menu 2</h2>
  29.  
  30. </div>
  31.  
  32. <div id="tresc">
  33. <?php
  34.     $fileToInclude = 'home.php';
  35.     if(!empty($_GET['id']){
  36.        if(file_exitst(empty($_GET['id'].'.php')){
  37.            $fileToInclude = $_GET['id'].'.php';
  38.        }
  39.        else{ //dzieki temu bedziesz mógł tu wstawić własną stronę z błędem
  40.            $fileToInclude = 'error.php';
  41.        }
  42.     }
  43.     include($fileToInclude);
  44. ?>
  45. </div>
  46.  
  47. <div id="prawa">
  48. <p><span>Superważna wiadomość</span>
  49. To jest naprawdę ważna wiadomośc, tak ważna,
  50. że nawet nie moge jej tu napisa:-)</p>
  51. <p><span>Imienin:</span>
  52. Dziś imieniny obchodzą Bonifacy i Kunegunda</p>
  53. </div>
  54.      
  55. </body>
  56. </html>


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #3





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

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


Coś jest nie tak...

Rzeczywiście Twój jest bardziej przystępny, ale...

po umieszczeniu w index.php zawartości Twojego kodu także wyświetla pustą stronę (taką jak teraz jest pod linkiem do mojej strony z pierwszego postu).

Nie wiem gdzie jest błąd. Co ciekawe, gdy usunę część kodu dotyczącą php (od <?php do ?>), czyli to co dodałeś, to strona już ładuje się prawidłowo (z tym, że bez tego skryptu, czyli jest po staremu - po kliknięciu na element z menu, nie ładuje do środkowego, tylko na nowo wszystko)

Gdzie zatem może leżeć błąd?

Ten post edytował eol 21.09.2008, 16:04:46
Go to the top of the page
+Quote Post
Spirit86
post
Post #4





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


heh, tak jak się pisze z palca smile.gif. Teraz poprawiłem.
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "ht://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3.  
  4. <head>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  6. <title>MSGIE</title>
  7. <link rel="stylesheet" href="style.css" type="text/css" />
  8. <!--[if gte ie 5]>
  9. <link rel="stylesheet" href="exstyle.css" type="text/css">
  10. <![endif]-->
  11.                
  12. </head>
  13.  
  14. <body>
  15.  
  16. <div id="banner"> Tekst w banerze </div>        
  17. <div id="menu">
  18.  
  19. <h2>Menu</h2>
  20.  
  21. <ul>
  22. <li><a href="index.php?id=home.php">HOME</a></li>
  23. <li><a href="index.php?id=spis.php">Spis treść</a></li>
  24. <li><a href="index.php?id=nowosci.php">Nowości</a></li>
  25. <li><a href="index.php?id=kontakt.php">Kontakt</a></li>
  26. </ul>
  27.  
  28. <h2>Menu 2</h2>
  29.  
  30. </div>
  31.  
  32. <div id="tresc">
  33. <?
  34.    $fileToInclude = 'home.php';
  35.    if(!empty($_GET['id'])){
  36.       if(file_exitst($_GET['id'].'.php')){
  37.           $fileToInclude = $_GET['id'].'.php';
  38.       }
  39.       else{ //dzieki temu bedziesz mógł tu wstawić własną stronę z błędem
  40.           $fileToInclude = 'error.php';
  41.       }
  42.    }
  43.    include($fileToInclude);
  44. ?>
  45. </div>
  46.  
  47. <div id="prawa">
  48. <p><span>Superważna wiadomość</span>
  49. To jest naprawdę ważna wiadomośc, tak ważna,
  50. że nawet nie moge jej tu napis:-)</p>
  51. <p><span>Imieni:</span>
  52. Dziś imieniny obchodzą Bonifacy i Kunegunda</p>
  53. </div>
  54.    
  55. </body>
  56. </html>


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #5





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

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


kurcze, dalej coś nie do końca jest w porządku, bo znika prawa ramka...

EDIT:
Zaraz po załadowaniu jest ok, bo wyświetla tak jak należy home.php. Ale jak tylko kliknie się na coś z menu, to znika prawa strona, środek się kurczy i nic nie wyświetla niestety


jeszcze raz link do strony, żeby nie wracać na górę
moja strona

Ten post edytował eol 21.09.2008, 18:29:57
Go to the top of the page
+Quote Post
Spirit86
post
Post #6





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Nie wiem jakie są ustawienia php na serwerach prv. Zrób na początku kodu strony:
  1. <? error_reporting(E_ALL); ?>

Kolejną rzeczą jaką zauważyłem to, że w pliku home.php umieszczasz:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
  3. </head>
  4. <body>...


wywal to, tylko fragment kodu jaki ma się wyświetlić w tym divie, czyli samo:
  1. <p>Witamy na stronie</p>

Ciężko mi tak zdalnie Ci odpowiedzieć, gdzie jest błąd. Kod jaki Ci podałem u mnie działa jak należy. Wygląda jakby był błąd w php bo anuluje wykonywanie strony w momencie gdzie zaczyna się php. Wrzuć tego errora to zobaczmy.

No i kwestia linków w menu powinno być:
  1. <li><a href="index.php?id=home">HOME</a></li>
  2. <li><a href="index.php?id=spis">Spis treść</a></li>
  3. <li><a href="index.php?id=nowosci">Nowości</a></li>
  4. <li><a href="index.php?id=kontakt">Kontakt</a></li>


Edit: Z tego co widzę, to działa to poprawnie.

Ten post edytował Spirit86 21.09.2008, 18:40:56


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #7





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

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


Wrzuciłem to na początku, ale po <html> (nie wiem, czy o to miejsce chodziło)

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "ht://www.w3.org/TR/html4/strict.dtd">
<html>
<? error_reporting(E_ALL); ?>
<head>


Działa dobrze, ale tylko przy pierwszym ładowaniu; jak już klikniesz coś z menu, to prawa znika, a środek prawie też znika (a na pewno nie wyświetla tak jak powinien

A w poszczególnych plikach skojarzonymi z menu, wyrzuciłem wszystko oprócz tekstu właściwego (zgodnie z Twą radą - dzięks)

PS. A swoją drogą... może ktoś polecić darmowy stabilny serwer (najlepiej bez reklam - może będzie lepszy od prv.pl). Może być zagraniczny.

Ten post edytował eol 21.09.2008, 18:50:45
Go to the top of the page
+Quote Post
Spirit86
post
Post #8





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


Primo stwórz plik error.php.

A dopisz coś takiego:

  1. <?
  2.   $fileToInclude = 'home.php';
  3.   if(!empty($_GET['id'])){
  4.      if(file_exists($_GET['id'].'.php')){
  5.          $fileToInclude = $_GET['id'].'.php';
  6.      }
  7.      else{ //dzieki temu bedziesz mógł tu wstawić własną stronę z błędem
  8.          $fileToInclude = 'error.php';
  9.      }
  10.   }
  11.   include($fileToInclude);
  12. ?>

heh, literówka smile.gif.

Ten post edytował Spirit86 21.09.2008, 19:05:06


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #9





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

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


Jest progres...

Stworzyłem error.php
Wstawiłem też nowy/stary kod i jest lepiej, coś wyświetla w środku - co prawda nie to co powinien, ale... Jednak nadal znika prawa

link
Go to the top of the page
+Quote Post
Spirit86
post
Post #10





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


  1. <?
  2.   $fileToInclude = 'home.php';
  3.   if(!empty($_GET['id'])){
  4.      if(file_exists($_GET['id'].'.php')){
  5.          $fileToInclude = $_GET['id'].'.php';
  6.      }
  7.      else{ //dzieki temu bedziesz mógł tu wstawić własną stronę z błędem
  8.          $fileToInclude = 'error.php';
  9.      }
  10.   }
  11.   include($fileToInclude);
  12. ?>

heh, literówka smile.gif.


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #11





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

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


Jesteś WIELKI... bo... już prawie witamy się z gąską smile.gif

Prawa ramka już jest:). Tylko teraz na środku ładuje się error.php.

link

EDIT: oczywiście wszystkie pliki (tj. home.php, spis.php, nowosci.php i kontakt.pnp) są już na serwerze

Ten post edytował eol 21.09.2008, 19:13:06
Go to the top of the page
+Quote Post
ShadowD
post
Post #12





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Nie odsyłaj do strony:
http://www.msgie.prv.pl/index.php?id=home.php
Tylko do:
http://www.msgie.prv.pl/index.php?id=home

I będzie wszystko śmigało...


--------------------
Mój blog - o wszystkim i niczym ale zazwyczaj związane z informatyką! ;-)
Githube

Usługi spawalnicze i monterskie | Park linowy Lublin i Okunince
Go to the top of the page
+Quote Post
Spirit86
post
Post #13





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

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


No dokładnie, popraw linki (bez końcówek php) i po problemie.
Powodzenia.


--------------------
Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ.
Go to the top of the page
+Quote Post
eol
post
Post #14





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

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


YES! YES! YES!

Dzięki chłopaki. Czy wy wiecie ile czasu, mnie zielonemu przedszkolakowi, zajęłoby dochodzenie do tego co wypracowaliście?? Dni całe, a może nawet tygodnie.

Dzięki wielkie:)

PS. Teraz spokojnie będę mógł spróbować zmodyfikować jeszcze .css, żeby był na float... a potem zacznę zgłębiać tajniki php i kolejnych języków.

Jeszcze raz wielkie dzięki. May the force be with you:)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:58