Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak to zrobić w PHP
-exit-
post 10.12.2004, 12:34:45
Post #1





Goście







Witam jestem początkującym userem php. Dobrze znam html, ale chce czegoś więcej. Co mam zrobić, żeby pliki, które dołączam za pomocą polecenia "include" nie wskazywały za każdym razem innego miejsca.
Mam plik o nazwie index.php a wnim na przykład coś takiego
...
<?php
include(dane/menu.inc)
?>
...
ten plik jak widać jest w innym katalogu niż index.php. Plik dołącza się bardzo ładnie ale jeśli w menu napisany jest adres np <a href=index.php"> to po zaincludowaniu ten sam adres w przeglądarce pokazuje <a href="dane/index.php"> i wszystko sie wali.

Wiem, że to co napisałem jest zakręcone jak baranie rogi, ale jak by ktoś wiedział jak sobie z tym poradzić to niech się ujawni:-)
Go to the top of the page
+Quote Post
silent
post 10.12.2004, 12:46:33
Post #2





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


Coś widocznie pokręciłeś, bo nie może się tak dziać. Daj listingi kodu takie jak masz.
Go to the top of the page
+Quote Post
shizo
post 10.12.2004, 12:55:00
Post #3





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Lubin

Ostrzeżenie: (10%)
X----


Po includowaniu plik staje się "jakby częścią pliku" index.php. Dlatego jeżeli plik *.inc masz w katalogu np. dnae, to jak linki pisz np.
  1. <a href="../index.php">INDEX<?a>


--------------------
Save you mouth for windows!
Go to the top of the page
+Quote Post
-Guest-
post 10.12.2004, 14:38:33
Post #4





Goście







Wielkachne dzieki shizo. Teraz działa jak talala:-). I own U.
Go to the top of the page
+Quote Post
redman2
post 10.12.2004, 17:56:32
Post #5





Grupa: Zarejestrowani
Postów: 104
Pomógł: 3
Dołączył: 13.10.2004

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


I own U - posiadam ciebie

I owe U - jestem ci cos winny.

Piszcie po polsku.
Troche to smiesznie wyglada...
Go to the top of the page
+Quote Post
-exit-
post 11.12.2004, 10:55:12
Post #6





Goście







Hi. Ktoś tam napisał, że chodzi jak talala? No może i chodzi (faktycznie tak jest), ale tylko w podkatalogu dane. W innych podkatalogach znowu nie działa bo pokazuje inny adres. Nie wiem jak to zrobić. Teraz zapodam listingi kodu, noże ktoś sie połapie?
No wiec tak:

Plik index.php wygląda następująco
  1. <html>
  2. <head>
  3. <META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html\";charset=\"ISO-8859-2\">
  4. <?php
  5. include(&#092;"style/main_style.inc\")
  6. ?>
  7. <title>Internetowy Serwis Informacyjny</title>
  8. </head>
  9. <body topmargin=0 align=\"center\" bgcolor=white>
  10. <?php
  11. include(&#092;"header/naglowek.inc\")
  12. ?>
  13. <table width=\"100%\" border=0 cellspacing=0 cellpadding=2>
  14. <tr>
  15. <td align=\"center\" colspan=\"3\">
  16. <?php
  17. include(&#092;"header/menu.inc\")
  18. ?>
  19. </td>
  20. </tr>
  21. </table>
  22. <table width=\"100%\" border=0 cellspacing=0 cellpadding=2>
  23. <tr align=\"center\">
  24. <td width=\"180px\" valign=\"top\">
  25. <?php
  26. include(&#092;"glowna/left/menuleft.inc\")
  27. ?>
  28. </td>
  29. <td valign=\"top\">
  30. <?php
  31. include(&#092;"glowna/center/aktual.inc\")
  32. ?>
  33. </td>
  34. <td width=\"180px\" valign=\"top\">
  35. <?php
  36. include(&#092;"glowna/right/events.inc\")
  37. ?>
  38. </td>
  39. </tr>
  40. <tr>
  41. <td colspan=\"3\" class=\"fotter\">
  42. <?php
  43. include(&#092;"fotter/stopka.inc\")
  44. ?>
  45. </td>
  46. </tr>
  47. </table>
  48. </body>
  49. </html>

Plik menuleft.inc, który jest w katalogu glowna/left - wygląda następująco
  1. <?php
  2.  
  3. <table border=1 width=&#092;"174px\" cellspacing=0 cellpadding=1 class=\"noborders\">
  4. <tr>
  5.  <td class=&#092;"colorslr\">
  6.  <div id=&#092;"menu_gora\">.:: MENU ::.
  7.  </div>
  8.  </td>
  9. </tr>
  10. <tr>
  11. <td class=&#092;"all_borders\">
  12. <div id=&#092;"menu\">
  13. <a href=&#092;"dane1.php\" class=\"menu\">DANE 1</a><br>
  14. <a href=&#092;"dane2.php\" class=\"menu\">DANE 2</a><br>
  15. <a href=&#092;"dane3.php\" class=\"menu\">DANE 3</a><br>
  16.  </div>
  17. </td>
  18. </tr>
  19. </table>
  20.  
  21. ?>

Problem jest w tym, że po wyświetleniu strony index.php link DANE 1 pokazuje adres http://www.mojastrona.pl/dane1.php a po przejściu do dowolnego podkatalogu pokazuje np http://mojastrona.pl/glowna/left/dane1.php - czyli dodaje tą wredną, perfidną, podfłą ścieżkę (nienawidze jej!). Pokazuje tym samym inny adres. Nie moge zrobić tego, co proponuje shizo bo wtedy adres DANE 1 na stronie głównej (index.php) pokazuje inną lokalizację.
Jeśli ktoś jest na tyle fanatyczny, żeby zamiast iść na spacer w sobotę siedzi przed kompem to zapraszam.
PS: Jak ktoś chce to mogę naewt całość spakować i opchnąć mailem.

Uff.... ale sie spisałem

Zmoderowane przez: seaquest
BBCode
Opisałeś się, opisałeś, a ja i tak musiałem poprawić...
Go to the top of the page
+Quote Post
shima
post 11.12.2004, 11:22:31
Post #7





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


Cytat(exit @ 2004-12-11 10:55:12)
Jeśli ktoś jest na tyle fanatyczny, żeby zamiast iść na spacer w sobotę siedzi przed kompem to zapraszam.

Niektórzy pracują :-(

Niewiele zrozumiałrm z Twoich postów, sformatuj je, bo tak czytanie zabiera zbyt dużo czasu. Co zrozumiałem (popraw mnie, jeżeli coś zrozumiałem źle):
1. Masz stronę podzieloną na sekcje
----------------------------------------------------------------
naglowek |
----------------------------------------------------------------
lewa | centralna |
| |
| |
----------------------------------------------------------------
stopka |
----------------------------------------------------------------

reszta mało istotna.
2. Chcesz, żeby działało dla różnych podkatalogów. Nagłówek i stopka sie nie zmieniają (questionmark.gif) więc moga byc na twardo, nazwę katalogu podaj jako zmienną i includuj w ten sposób

  1. <?php
  2. $nazwa_katalogu='dane';
  3. include('pliki/'.$nazwa_katalogu.'/centralny.php');
  4.  
  5. ?>

a nazwę katalogu przesyłaj np. poprzez GET

PS. I formatuj kod!


--------------------
Nie ma nic stałego prócz zmiany...
Go to the top of the page
+Quote Post
-exit-
post 11.12.2004, 11:58:48
Post #8





Goście







Ha, ja też jestem w robocie:-(

Dobrze mnie zrozumiałeś z tymi sekcjami shima.
Tylko powiedz jeszcze jak przesłać nazwę katalogu poprzez GET. Może to jest łatwe, ale na razie mój poziom znajomości php (czyli dno, 3 metry mułu i wodorosty na wierzchu ) nie pozwala na zrobienie tego.

Przeformatowałem kod strony, może teraz łatwiej będzie patrzeć.

  1. <html>
  2. <head>
  3. <META HTTP-EQUIV=\"Content-type\" CONTENT=\"text/html\";charset=\"ISO-8859-2\">
  4. <?php include(&#092;"style/main_style.inc\") ?>
  5. <title>Internetowy Serwis Informacyjny</title>
  6. </head>
  7. <body topmargin=0 align=\"center\" bgcolor=white>
  8. <?php include(&#092;"header/naglowek.inc\") ?>
  9. <table width=\"100%\" border=0 cellspacing=0 cellpadding=2>
  10. <tr>
  11. <td align=\"center\" colspan=\"3\">
  12. <?php include(&#092;"header/menu.inc\") ?>
  13. </td>
  14. </tr>
  15. </table>
  16. <table width=\"100%\" border=0 cellspacing=0 cellpadding=2>
  17. <tr align=\"center\">
  18. <td width=\"180px\" valign=\"top\">
  19. <?php include(&#092;"glowna/left/menuleft.inc\") ?>
  20. </td>
  21. <td valign=\"top\">
  22. <?php include(&#092;"glowna/center/aktual.inc\") ?>
  23. </td>
  24. <td width=\"180px\" valign=\"top\">
  25. <?php include(&#092;"glowna/right/events.inc\") ?>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td colspan=\"3\" class=\"fotter\">
  30. <?php include(&#092;"fotter/stopka.inc\") ?>
  31. </td>
  32. </tr>
  33. </table>
  34. </body>
  35. </html>

Plik menuleft.inc, który jest w katalogu glowna/left - wygląda następująco

  1. <?php
  2. <table border=1 width=&#092;"174px\" cellspacing=0 cellpadding=1 class=\"noborders\">
  3. <tr>
  4. <td class=&#092;"colorslr\">
  5. <div id=&#092;"menu_gora\">.:: MENU ::.
  6. </div>
  7. </td>
  8. </tr>
  9. <tr>
  10. <td class=&#092;"all_borders\">
  11. <div id=&#092;"menu\">
  12. <a href=&#092;"dane1.php\" class=\"menu\">DANE 1</a><br>
  13. <a href=&#092;"dane2.php\" class=\"menu\">DANE 2</a><br>
  14. <a href=&#092;"dane3.php\" class=\"menu\">DANE 3</a><br>
  15. </div>
  16. </td>
  17. </tr>
  18. </table>
  19. ?>


Acha gdybyś mógł jeszcze wyjaśnić mi linijkę

include('pliki/'.$nazwa_katalogu.'/centralny.php');

z tego co wiem to kropka służy do sklejania ciągów. Wydaje mi się, że jest to ścieżka dostępu do katalogu, tylko co oznacza nazwa ‘pliki/’ i dlaczego jest w tych apostrofach. Czy jest to nazwa mojego głównego katalogu na serwerze czy coś z zupełnie innej beczki.

Acha x2, żebym nie zapomniał, co masz na myśli mówiąc „formatuj kod” – copyright by shima;-)

Ten post edytował seaquest 11.12.2004, 14:19:13
Go to the top of the page
+Quote Post
shima
post 11.12.2004, 13:13:52
Post #9





Grupa: Zarejestrowani
Postów: 245
Pomógł: 0
Dołączył: 9.09.2002

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


Cytat
Tylko powiedz jeszcze jak przesłać nazwę katalogu poprzez GET

W linku. Jeżeli chcesz ładowac różne sekcje to najlepiej zrobić to tak:
  1. <?php
  2. if (!isset($_GET['sekcja']) //jeśli zmienna sekcja z tablicy GET nie jest ustawiona
  3. include('jakas_stala_sciezka_w_ktorej_sa_wszystkie_sekcje/sekcja_domyslna/plik_centralny.php'); //zainkluduj to
  4. else //a może jest ustawiona
  5. include('jakas_stala_sciezka_w_ktorej_sa_wszystkie_sekcje/'.$_GET['sekcja'].'/plik_centralny.php'); //załącz żądaną sekcję
  6.  
  7. ?>

a przesłanie w linku:
http://standardowa_sciezka/plik_w_ktorym_i...adowana<?php
Czyli to:
Cytat
  1. <?php
  2. include(&#092;"glowna/center/aktual.inc\")
  3. ?>

mogłoby wyglądać
  1. <?php
  2. if (!isset($_GET['sekcja'])
  3. include(&#092;"glowna/center/aktual.inc\");
  4. else 
  5. include(&#092;"glowna/'.$_GET['sekcja'].'/aktual.inc\");
  6.  
  7. ?>


a to:
Cytat
  1. <?php
  2. <a href=&#092;"dane1.php\" class=\"menu\">DANE 1</a><br>
  3. <a href=&#092;"dane2.php\" class=\"menu\">DANE 2</a><br>
  4. <a href=&#092;"dane3.php\" class=\"menu\">DANE 3</a><br>
  5.  
  6. ?>

tak:
  1. <?php
  2. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 1</a><br>
  3. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 2</a><br>
  4. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 3</a><br>
  5.  
  6. ?>

Oczywiście musisz to przetrawić, zmienić nazwy zmiennych, sprawdzić literówki etc.
Cytat
Acha gdybyś mógł jeszcze wyjaśnić mi linijkę

include('pliki/'.$nazwa_katalogu.'/centralny.php');

jw. zamiast ładować na stałe ten sam katalog ładuję żadany, a jego nazwa siedzi w zmiennej $nazwa_katalogu

Cytat
Wydaje mi się, że jest to ścieżka dostępu do katalogu, tylko co oznacza nazwa ‘pliki/’ i dlaczego jest w tych apostrofach. Czy jest to nazwa mojego głównego katalogu na serwerze czy coś z zupełnie innej beczki.

Dokładnie jak piszesz, a w apostrofach, bo podwójne "uszy" powodują, że string jest parsowany, a pojedyncze - nie. Możesz zamienić na podwójne, też będzie działać.

Cytat
co masz na myśli mówiąc „formatuj kod”


pisz tak, zeby było łatwo czytać


--------------------
Nie ma nic stałego prócz zmiany...
Go to the top of the page
+Quote Post
-exit-
post 11.12.2004, 14:18:21
Post #10





Goście







No to dałeś mi zadanie na niedziele! W poniedziałek okaże się czy dałem radę czy nie.
Wielkie dzięki za podpowiedzi.
Jak by mmi nie szło to jeszcze bede pisał.
THX 4 ALL.
Go to the top of the page
+Quote Post
Speedy
post 11.12.2004, 15:19:59
Post #11





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Witam.
W Waszą dyskusję zbytnio się nie zgłebiałem. Wiem , że o chodzi o poprawne wyświetlanie i odczytywanie danych (chyba) .

W związku z tym również dorzucę swój mały wkład winksmiley.jpg

Następujący kod :

  1. <?php
  2. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 1</a><br>
  3. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 2</a><br>
  4. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 3</a><br>
  5.  
  6. ?>


Powinien wyglądać tak :

  1. <?php
  2. <a href=\"index.php?sekcja=dane1\" class=\"menu\">DANE 1</a><br>
  3. <a href=\"index.php?sekcja=dane1\" class=\"menu\">DANE 2</a><br>
  4. <a href=\"index.php?sekcja=dane1\" class=\"menu\">DANE 3</a><br>';
  5.  
  6. ?>


lub ewentualnie tak :

  1. <?php
  2. print &#092;"
  3. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 1</a><br>
  4. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 2</a><br>
  5. <a href=&#092;"index.php?sekcja=dane1\" class=\"menu\">DANE 3</a><br>\";
  6.  
  7. ?>


Aczkolwiek nie wiem, jak to jest skoordynowane z całością , więc może i dobrze smile.gif .

Pozdrawiam .


--------------------
Sygnatura niezgodna z regulaminem.
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 Wersja Lo-Fi Aktualny czas: 6.07.2025 - 17:09