Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Dołączanie plików typu index.php?strona=x
Mefiuu
post 18.06.2009, 12:43:00
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam. Przeczytałem temat o PHPEDII, żeby ją przeczytać. Szczególnie zainteresowało mnie to zagadnienie co w temacie, a mianowicie : "Dołączanie plików typu index.php?strona=x". W PHPEDII rzeczywiście jest taki artykuł, jednak nie jest on opisany ^^ . Czy ktoś mógłby mi podać jakiś link albo wytłumaczyć "jak to się robi" ? w google'ach nic nie znalazłem...
Go to the top of the page
+Quote Post
golaod
post 18.06.2009, 12:46:48
Post #2





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Odsyłamy do php.net/include smile.gif
Go to the top of the page
+Quote Post
Zawiej
post 18.06.2009, 12:58:46
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 13.08.2008

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


hmmm czy o to Ci może chodzi ?


Jest wiele możliwości użycia PHP do zarządzania linkami na stronie, teraz podam jeden sposób, który wydaje mi się jest bardzo prosty i przyjemny w stosowaniu.

Zmieniamy nazwe naszego index.html na index.php, w miejscu gdzie mają być otwierane działy wklejamy kod:

  1. <?php
  2.  
  3. if(isset($dzial)){
  4.  
  5. if(file_exists($dzial.".php")){
  6.  
  7. $plik = $dzial.".php";
  8.  
  9. include($plik);
  10.  
  11. }else{
  12.  
  13. echo "Wystąpił błąd - brak pliku";
  14.  
  15. }
  16.  
  17. }else{
  18.  
  19. include("newsy.php");
  20.  
  21. }
  22. ?>
Ten oto kod odpowiada za wciąganie wartości z plików do naszego index’u - jest to tak zwane includowanie,
w skrócie dzięki temu kodowi otierają nam się działy w naszym index’e.
Warto podkreślić, że po wciągnięciu działu do index’u nie zmieniamy
pliku, nadal jestesmy w index.php, jednak zmieniliśmy jego zawartość.

Zobaczcie na szóstą linijke od końca, zawiera ona kod:
echo “Wystąpił błąd - brak pliku”;
odpowiada on za wyświetlenie komunikatu “Wystąpił błąd - brak pliku” gdy plik nie zostanie odnaleziony w danym miejscu.

Link, który pozwala nam wciągnąć zawartośc pliku do index’u powinien wyglądać następująco.

<a href=”index.php?dzial=scieża do pliku”>dowolny tekst</a>

scieża do pliku - ten element należy już do Ciebie, jeżeli powiedzmy plik auto.php leży w tym samym folderze co index.php to ścieżka do niego wyglądać będzie “index.php?dzial=auto”

W tym przypadku nie podajemy rozszerzenie .php, tak został napisany mechanizm pobierania kodu żeby nie wolno podać rozszerzenia.

Na konieć trzeba dodac, że index.php powinien mieć chmody ustawione na 666 a pliki, które “zostają wciągane” do index’u nie powinny zawierać takich elementów jak: HTML, HEAD, BODY - ze względów kosmetycznych. W końcu zostaną one wciągnięty w środek index.php.


Źródło: webdiary.pl
Go to the top of the page
+Quote Post
Spawnm
post 18.06.2009, 13:01:22
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




a o LFI to pan słyszał ?
Go to the top of the page
+Quote Post
Wicepsik
post 18.06.2009, 13:09:45
Post #5





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


  1. <?php
  2. if (!empty($_GET['id'])) {
  3.        $name = urldecode($_GET['id']);
  4.        $reg = '/^[a-zA-Z0-9]+$/';
  5.        if (preg_match($reg, $name)) {
  6.            if (file_exists($name.'.php')) {
  7.                include($name.'.php');
  8.            }else{
  9.                echo '<center>Plik nie istnieje!</center>';
  10.            }
  11.        }else{
  12.            echo 'Niedozwolone znaki w nazwie pliku';
  13.        }
  14.    }else{
  15.        include('news.php');
  16.    }
  17. ?>


--------------------
Go to the top of the page
+Quote Post
Mefiuu
post 21.06.2009, 17:35:18
Post #6





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam ponownie. Poczytałem to i owo i zrobiłem rzecz następującą. Stworzyłem plik index.php (proszę nie patrzeć na układ strony na tabelkach i brak DOCTYPE'a - to jest strona próbna):


Kod
<html>
<head>
<title>Tytuł mojej strony</title>
</head>
<body>
<table cellpadding="0" cellspacing="0" width="100%" border="1">
<tr><td colspan="3">LOGO</td></tr>
<tr>
<td>
<?
include"lewe.inc";
?>
</td>
<td>

<? if(!isset($show)) {
include"newsy.inc"; }
else if ($show=='1') {
include"texty.inc"; }
else if($show=='2') {
include"php.inc"; }
else {
echo("Nie ma takiej strony"); } ?>

</td>
<td>
<?
include"prawe.inc";
?>
</td>
</tr>
<tr><td colspan="3">STOPKA</td></tr>
</body>
</html>


a następnie wszystkie wymienione w kodzie pliki, czyli prawe.inc, lewe.inc itd. Na lewe.inc miało być menu główne. Wklepałem tam linki, czyli:
Kod
<center>
MENU NAWIGACYJNE
</center>
<a href="index.php?show=1">Texty</a>
<a href="index.php?show=2">PHP</a>


No i po kliknięciu w obojętnie jaki link następuje przeładowanie strony, w pasku adresu ukazuje się adres mojastronadomowa.pl/index.php?show=2lub inny, tyle że nie wczytuje mi danych z pliku php.inc tylko zostają te dane z pliku newsy.inc . Dlaczego tak się dzieje ?

Witam ponownie. Poczytałem to i owo i zrobiłem rzecz następującą. Stworzyłem plik index.php (proszę nie patrzeć na układ strony na tabelkach i brak DOCTYPE'a - to jest strona próbna):


Kod
<html>
<head>
<title>Tytuł...</title>
</head>
<body>
<table cellpadding="0" cellspacing="0" width="100%" border="1">
<tr><td colspan="3">miejsce na logo</td></tr>
<tr>
<td>
<?
include"lewe.inc";
?>
</td>
<td>

<? if(!isset($show)) {
include"newsy.inc"; }
else if ($show=='1') {
include"texty.inc"; }
else if($show=='2') {
include"php.inc"; }
else {
echo("Nie ma takiej strony"); } ?>

</td>
<td>
<?
include"prawe.inc";
?>
</td>
</tr>
<tr><td colspan="3">Podpis pod stroną</td></tr>
</body>
</html>


a następnie wszystkie wymienione w kodzie pliki, czyli prawe.inc, lewe.inc itd. Na lewe.inc miało być menu główne. Wklepałem tam linki, czyli:
Kod
<center>
MENU NAWIGACYJNE
</center>
<a href="index.php?show=1">Texty</a>
<a href="index.php?show=2">PHP</a>


No i po kliknięciu w obojętnie jaki link następuje przeładowanie strony, w pasku adresu ukazuje się adres mojastronadomowa.pl/index.php?show=2lub inny, tyle że nie wczytuje mi danych z pliku php.inc tylko zostają te dane z pliku newsy.inc . Dlaczego tak się dzieje ?

Ten post edytował Mefiuu 21.06.2009, 17:36:39
Go to the top of the page
+Quote Post
Wicepsik
post 21.06.2009, 17:49:13
Post #7





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


  1. <? if(!isset($_GET['show'])) {
  2. include"newsy.inc"; }
  3. else if ($_GET['show'])=='1') {
  4. include"texty.inc"; }
  5. else if($_GET['show'])=='2') {
  6. include"php.inc"; }
  7. else {
  8. echo("Nie ma takiej strony"); } ?>


--------------------
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: 14.08.2025 - 02:47