PHP Manual
/

Konstrukcja obejmuje

2019-09-11T08:14:16.000Z

Obsah článku

Obsługa PHP 4, PHP 5, PHP 7
Krótki opis Dołącza do skryptu inny plik tekstowy lub skrypt.
Wymagania Inny plik tekstowy lub skrypt, który ma zostać wstawiony.
Uwaga Nie można załadować plików zewnętrznych.

Opis

Wstawia do strony inny plik tekstowy lub skrypt. Obsługuje pliki zwykłe/tekstowe.

Pliki osadzone zachowują się tak, jakby znajdowały się bezpośrednio na stronie.

Wbudowane skrypty są wykonywane automatycznie.

Wbudowany skrypt przekazuje wartości zmiennych.

Nie można załadować z pamięci zewnętrznej. Może odczytywać tylko zwykły niesformatowany tekst i pliki PHP.

Dozwolone formaty ścieżek:

  • script.php - plik w tym samym katalogu, zostanie wykonany
  • script.html - plik w tym samym katalogu, nie zostanie wykonany
  • ./file.php - plik w tym samym katalogu, zostanie wykonany
  • ../strona.html.
  • folderfile.php - zapis w systemie Windows
  • address/DalsiAddress/file.php - zapis w systemach Unix

Ukośniki typu **** i **/** mogą być konwertowane, więc nie trzeba się tym zajmować.

Niewłaściwy wpis w ścieżce: https://domena.pripona/slozka/soubor.php.

Podobne funkcje

Przykład

include 'file.php';

Wstawia on skrypt file.php na stronę i uruchamia go.

vars.php.

$color = 'zielony';
$fruit = 'jabłko';

test.php.

$color = '';
$fruit = '';
echo 'A' . $color . '' . $fruit; // A
include 'vars.php';
echo 'A' . $color . '' . $fruit; // Zielone jabłko

UWAGA: Poniższa notacja nie jest możliwa, należy przekazywać zawartość zmiennych poprzez ich definiowanie!

include 'file.php?parameter=neco';

Wartości zwracane

Brak, po prostu umieszcza plik.

UWAGA: Umożliwia porównywanie zawartości plików, ale stanowi to zagrożenie dla bezpieczeństwa. Kolejność nawiasów ma znaczenie! Przykład:

if ((include 'file.php') == 'OK') {
echo 'Wartością jest "OK".';
}

Jest to potencjalne zagrożenie bezpieczeństwa!

Można to rozwiązać za pomocą file_get_contents(), readfile() lub fopen(). Funkcja Fopen() powinna być używana tylko do plików .txt i .html.

Bezpieczniejsze odczytywanie pliku można rozwiązać, definiując własną funkcję.

Przykład:

$string = get_include_contents('somefile.php');
function get_include_contents(string $filename): ?string
{
if (is_file($filename)) {
ob_start();
include (string) $filename;
return ob_get_clean();
}
return null;
}

Uwagi i wskazówki od innych programistów

Jakub Vrána wysłał mi e-mail:

include 'artykuły/' . $_GET['Artykuł'] . '.html';

Jest to bardzo niebezpieczne.

Atakujący może przekazać łącze do innego katalogu, używając ../ lub czegoś podobnego jako nazwy artykułu, a czasami możliwe jest pozbycie się końcówki przez przekazanie na końcu bajtu null.

Powinieneś przynajmniej użyć funkcji basename(), ale lepiej dopuścić tylko wartości z białej listy.

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
4.
Status:
All systems normal.
2025