Include script
33 berichten
• Pagina 1 van 3 • 1, 2, 3
Include script
Inleiding
Frames zijn oud. Ze worden nauwelijks ondersteund door XHTML. Dit betekent dat we op zoek moeten naar een andere oplossing.
Stel: je hebt een site ontworpen en alle inhoud erin gezet. Je hebt 30 HTML bestanden met uiteenlopende inhoud maar één design. Nu kom je erachter dat je één linkje bent vergeten in het menu. Nu kun je 30 html bestanden aan gaan passen.
Dit is natuurlijk niet wat we willen omdat een site dynamisch kan zijn. Dit betekent dat er vaak dingen veranderen.
Daarom heb ik deze tutorial geschreven. Het geeft je een manier om pagina's te includen met behulp van PHP.
De code
PHP
Nu ben jij misschien geen PHP scripter en snap je totaal niet wat dit script doet. Hieronder leg ik uit wat het script doet.
Uitleg
De makkelijkste manier van uitleggen is om nogmaals de code erbij te pakken. In de code zet ik met commentaren wat een bepaalde regel doet.
PHP
Instellingen
Voordat je het script kunt gebruiken zijn er een aantal instellingen die je aan moet passen. Het gaat om het volgende stukje code:
$path : de map waarin je de pagina's hebt staan, bijvoorbeeld 'pages'.
$default_page : de standaard pagina die wordt geladen wanneer een verkeerde of geen pagina wordt aangeroepen.
Integreren in je site
Nu je de instellingen goed hebt staan moet je de code nog ergens plaatsen. Hiervoor heb je een bestand nodig die de layout bevat. Op de plaats van de inhoud plaats je de code.
Voorbeeld:
PHP
De include pagina's
Uiteraard hebben we pagina's nodig die geinclude moeten worden. Met maken van deze pagina moet je rekening houden dat ze geinclude worden. Oftewel: ze worden midden in main.php geinclude.
Dit houdt in dat je de volgende tags niet gebruikt:
Voorbeeld
main.php
PHP
includebestand.shtml
HTML
Resultaat (main.php?page=includebestand)
HTML
Linken
Je hebt nu een aantal bestanden die je kunt includen. Je hebt je layout in main.php. Het is tijd om de links te maken in het menu.
Als voorbeeld neem ik een aantal pagina's die we willen includen:
HTML
Wat je dus ziet is: in dehref zijn er twee dingen die we doen. Eerst roepen we de pagina aan waarin de include code en de layout in staan (main.php). Vervolgens gebruiken we de query (page ) om de pagina aan te roepen (bijvoorbeeld: downloads). De query en de hoofdpagina worden gescheiden door een vraagteken (? ).
Linken naar een bestand in map
Het is ook mogelijk om te linken naar een bestand die in een map staat.
HTML
Je ziet dus dat we naar een bestand linken die in een andere map staat dan de 'normale' bestanden.
Let op!
Waar je rekening mee moet houden is dat de bestanden geinclude worden. Hierdoor wordt de code in het bestand main.php geplakt. Als je nu plaatjes invoegt dan moet het pad zijn gezien van main.php.
Voorbeeld:
Je wilt in bestand.php het plaatje img.jpg. Normaal zou je dat doen aan de hand van deze code:<img src="../pics/img.jpg" /> .
Nu moet je het bekijken vanaf main.php. Omdat het plaatje uiteindelijk daarin weergegeven moet worden. Je zult dus een andere link moeten maken, namelijk:<img src="pics/img.jpg" /> .
Dit geldt ook voor bijvoorbeeld javascripts, of andere externe bestanden.
Slot
Voordelen van deze methode:
Frames zijn oud. Ze worden nauwelijks ondersteund door XHTML. Dit betekent dat we op zoek moeten naar een andere oplossing.
Stel: je hebt een site ontworpen en alle inhoud erin gezet. Je hebt 30 HTML bestanden met uiteenlopende inhoud maar één design. Nu kom je erachter dat je één linkje bent vergeten in het menu. Nu kun je 30 html bestanden aan gaan passen.
Dit is natuurlijk niet wat we willen omdat een site dynamisch kan zijn. Dit betekent dat er vaak dingen veranderen.
Daarom heb ik deze tutorial geschreven. Het geeft je een manier om pagina's te includen met behulp van PHP.
De code
PHP
- Code: Alles selecteren
<?php
/****** INSTELLINGEN ******/
$path = 'pages/'; // zet een slash achter de naam van de map
$default_page = 'home'; // zonder extensie
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
$notallowed = array( '.', '\\', '/' );
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\' ) === false )
{
include( $path . $page . '.php' );
}
else
{
include( $path . $default_page . '.php' );
}
?>
Nu ben jij misschien geen PHP scripter en snap je totaal niet wat dit script doet. Hieronder leg ik uit wat het script doet.
Uitleg
De makkelijkste manier van uitleggen is om nogmaals de code erbij te pakken. In de code zet ik met commentaren wat een bepaalde regel doet.
PHP
- Code: Alles selecteren
<?php
/****** INSTELLINGEN ******/
// Het pad naar de map waarin de bestanden staan die je wilt includen
$path = 'pages/'; // zet een slash achter de naam van de map
// De standaard pagina die wordt geladen wanneer er geen of een foutieve pagina wordt include
$default_page = 'home'; // zonder extensie
// Indien er een query in de URL te vinden is deze pakken of anders de standaard pagina.
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
// De volgende mogelijkheden zijn niet mogelijk in de query (in de URL). Als dit er niet in zou zitten zou men door bv: pagina.php?page=../../../../php.ini bij een bestand kunnen komen wat je niet wilt.
$notallowed = array( '.', '\\', '/' );
// Constroleren of de pagina bestaat EN niet begint met één van de bovengenoemde tekens.
//Tevens wordt er gecontroleerd of ../ niet voorkomt in de pagina. Hiermee zou men naar bovenliggende mappen kunnen 'surfen'.
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\' ) === false )
{
// De pagina bestaat en is geldig, dus wordt deze geinclude
include( $path . $page . '.php' );
}
else
{
// De pagina die is opgegeven is niet goed of bestaat niet, dus wordt de standaard pagina geladen
include( $path . $default_page . .php );
}
?>
Instellingen
Voordat je het script kunt gebruiken zijn er een aantal instellingen die je aan moet passen. Het gaat om het volgende stukje code:
Integreren in je site
Nu je de instellingen goed hebt staan moet je de code nog ergens plaatsen. Hiervoor heb je een bestand nodig die de layout bevat. Op de plaats van de inhoud plaats je de code.
Voorbeeld:
PHP
- Code: Alles selecteren
<html>
<head>
<title>PHP inklude</title>
</head>
<body>
<div>
<div>header</div>
<div>menu</div>
<div>content:
<?php
/****** INSTELLINGEN ******/
$path = 'pages/'; // zet een slash achter de naam van de map
$default_page = 'home'; // zonder extensie
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
$notallowed = array( '.', '\\', '/' );
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\' ) === false )
{
include( $path . $page . '.php' );
}
else
{
include( $path . $default_page . '.php' );
}
?>
</div>
<div>footer</div>
</div>
</body>
</html>
De include pagina's
Uiteraard hebben we pagina's nodig die geinclude moeten worden. Met maken van deze pagina moet je rekening houden dat ze geinclude worden. Oftewel: ze worden midden in main.php geinclude.
Dit houdt in dat je de volgende tags niet gebruikt:
<html> <head> <title> <link> <meta> <body> - enzovoorts...
Voorbeeld
main.php
PHP
- Code: Alles selecteren
<html>
<head>
<title>PHP include</title>
</head>
<body>
<div>
<div>header</div>
<div>menu</div>
<div>content:
<?php
/****** INSTELLINGEN ******/
$path = 'pages/'; // zet een slash achter de naam van de map
$default_page = 'home'; // zonder extensie
$page = isset( $_GET['page'] ) ? $_GET['page'] : $default_page;
$notallowed = array( '.', '\\', '/' );
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\' ) === false )
{
include( $path . $page . '.php' );
}
else
{
include( $path . $default_page . '.php' );
}
?>
</div>
<div>footer</div>
</div>
</body>
</html>
includebestand.shtml
HTML
- Code: Alles selecteren
<h1>dit is mijn kop</h1>
<p>en hier een paragraaf</p>
Resultaat (main.php?page=includebestand)
HTML
- Code: Alles selecteren
<html>
<head>
<title>PHP inklude</title>
</head>
<body>
<div>
<div>header</div>
<div>menu</div>
<div>content: <h1>dit is mijn kop</h1>
<p>en hier een paragraaf</p></div>
<div>footer</div>
</div>
</body>
</html>
Linken
Je hebt nu een aantal bestanden die je kunt includen. Je hebt je layout in main.php. Het is tijd om de links te maken in het menu.
Als voorbeeld neem ik een aantal pagina's die we willen includen:
- documenten.php
- scripts.php
- downloads.php
- contact.php
HTML
- Code: Alles selecteren
<ul>
<li><a href="main.php?page=documenten">Documenten</a></li>
<li><a href="main.php?page=scripts">Scripts</a></li>
<li><a href="main.php?page=downloads">Downloads</a></li>
<li><a href="main.php?page=contact">Contact</a></li>
</ul>
Wat je dus ziet is: in de
Linken naar een bestand in map
Het is ook mogelijk om te linken naar een bestand die in een map staat.
HTML
- Code: Alles selecteren
<a href="main.php?page=map/bio/mijnbiografie">Mijn biografie<a>
Je ziet dus dat we naar een bestand linken die in een andere map staat dan de 'normale' bestanden.
Let op!
Waar je rekening mee moet houden is dat de bestanden geinclude worden. Hierdoor wordt de code in het bestand main.php geplakt. Als je nu plaatjes invoegt dan moet het pad zijn gezien van main.php.
Voorbeeld:
- Code: Alles selecteren
root van je site
|
|_pics
| |
| |_img.jpg
|
|_pages
| |
| |_bestand.php
|
|_main.php
Je wilt in bestand.php het plaatje img.jpg. Normaal zou je dat doen aan de hand van deze code:
Nu moet je het bekijken vanaf main.php. Omdat het plaatje uiteindelijk daarin weergegeven moet worden. Je zult dus een andere link moeten maken, namelijk:
Dit geldt ook voor bijvoorbeeld javascripts, of andere externe bestanden.
Slot
Voordelen van deze methode:
- Geen 30 pagina's aanpassen voor 1 wijziging in de layout.
- Makkelijk een nieuw design maken zonder alle inhoud aan te passen.
- Snelle en makkelijke methode.
- Overzichtelijker.
Laatst gewijzigd door Theo op 04 Dec 2008 23:12, in totaal 7 keer gewijzigd.
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
Re: [PHP] Include script
Artikel update
Script gemoderniseerd en zo aangepast dat niet bij elke nieuwe pagina het script aangepast hoeft te worden.
Script gemoderniseerd en zo aangepast dat niet bij elke nieuwe pagina het script aangepast hoeft te worden.
I rather feel pain than nothing at all
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
Re: [PHP] Include script
Artikel update
Vervangen door:
Zodat door middel van bijvoorbeeldindex.php?page=map/../../index geen bovenliggende mappen aangeroepen kunnen worden.
Bedankt aan Wouter en Maurice voor de oplettendheid.
- Code: Alles selecteren
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) )
{
Vervangen door:
- Code: Alles selecteren
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false )
{
Zodat door middel van bijvoorbeeld
Bedankt aan Wouter en Maurice voor de oplettendheid.
I rather feel pain than nothing at all
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
Re: [PHP] Include script
Ja dat werkt altijd prachtig en ik gebruik het ook altijd.
Ik liep nu alleen tegen een probleem aan; ik ging een simpele site maken voor een goede kennis, geen php ondersteuning (ook niet nodig), wat doe je dan? Ik ben wat rond gaan kijken en kwam dit tegen.
Je leerst eerst het aanmaken van een site (mapje met bestanden) en vervolgens hoe je in dreamweaver een template aanmaakt (er zullen ook wel andere tutorials zijn, zoek even op "dreamweaver template.") Je maakt deze template dus en alle onderdelen die op elke pagina anders moet (kunnen) zijn zet je in een editable region, de rest wijzig je dus in je template bestand met één druk (misschien twee) op de knop voer je deze verandering (die op elke pagina hetzelfde moet zijn) door naar al je bestanden.
Ik zou werken met Dreamweaver trouwens niet aanraden, ik gebruik zelf liever Notepad++, maar met dit soort dingen is het zeker wel handig!
Groeten,
Niels
Ik liep nu alleen tegen een probleem aan; ik ging een simpele site maken voor een goede kennis, geen php ondersteuning (ook niet nodig), wat doe je dan? Ik ben wat rond gaan kijken en kwam dit tegen.
Je leerst eerst het aanmaken van een site (mapje met bestanden) en vervolgens hoe je in dreamweaver een template aanmaakt (er zullen ook wel andere tutorials zijn, zoek even op "dreamweaver template.") Je maakt deze template dus en alle onderdelen die op elke pagina anders moet (kunnen) zijn zet je in een editable region, de rest wijzig je dus in je template bestand met één druk (misschien twee) op de knop voer je deze verandering (die op elke pagina hetzelfde moet zijn) door naar al je bestanden.
Ik zou werken met Dreamweaver trouwens niet aanraden, ik gebruik zelf liever Notepad++, maar met dit soort dingen is het zeker wel handig!
Groeten,
Niels
- Niellles
- Berichten: 90
- Geregistreerd: 07 Apr 2007 16:30
- Woonplaats: Houten
Re: Include script
huh??? ik geloof 'em geloof ik niet meer helemaal
kan je ajb een zip-bestandje maken met alle voorbeeld files erin (layout enz. niet nodig
hoor)
alvast bedankt!
kan je ajb een zip-bestandje maken met alle voorbeeld files erin (layout enz. niet nodig
alvast bedankt!
- Peeters
- Berichten: 3
- Geregistreerd: 06 Feb 2009 00:01
Re: Include script
Peeters schreef:huh??? ik geloof 'em geloof ik niet meer helemaal![]()
kan je ajb een zip-bestandje maken met alle voorbeeld files erin (layout enz. niet nodighoor)
header.php
- Code: Alles selecteren
<html>
<head><title>title</title>
</head>
<body>
<div id="text">
footer.php
- Code: Alles selecteren
</div>
</body>
</html>
index.php
- Code: Alles selecteren
<?php include("header.php"); ?>
Hier komt de inhoud van de pagina...
<?php include("footer.php"); ?>
en als je dan in de bron code kijkt van index.php zie je dit:
- Code: Alles selecteren
<html>
<head><title>title</title>
</head>
<body>
<div id="text">
Hier komt de inhoud van de pagina...
</div>
</body>
</html>
- eXo
- Berichten: 75
- Geregistreerd: 23 Dec 2008 13:53
Re: Include script
Hoi hoi,
Een goede include script dat wel.
Maar ik kom een probleem tegen.
Elke pagina had ik $meta_tag aangepast en ook $titel, <-- werkt nu niet meer en geeft alleen de titel weergave van de startpage aan.
Is dat nog aan te passen?
Verder ben ik blij met deze tuts
BTW verder scheelt het idd heel veel werk!
Bij voorbaat dank
Sonja
Een goede include script dat wel.
Maar ik kom een probleem tegen.
Elke pagina had ik $meta_tag aangepast en ook $titel, <-- werkt nu niet meer en geeft alleen de titel weergave van de startpage aan.
Is dat nog aan te passen?
Verder ben ik blij met deze tuts
BTW verder scheelt het idd heel veel werk!
Bij voorbaat dank
Sonja
- Sonja
- Berichten: 2
- Geregistreerd: 08 Dec 2009 14:49
Re: Include script
Zie je een mogelijkheid om alle bestanden online te zetten in een zip/rar? Dan kan ik er even naar kijken.
-

Fluring Lifes - Beheerder
- Berichten: 1155
- Geregistreerd: 28 Sep 2005 19:54
- Woonplaats: Alkmaar - Nederland
Re: Include script
Header include bestand.
<meta name="keywords" content="<?php echo $meta_keywords; ?>" />
<meta name="description" content="<?php echo $description; ?>" />
<title><?php echo $title; ?></title>
pages/file.php
Boven alle includes pagina
$title ="de title natuurlijk";
$meta_keywords ="word, words, pc, computer";
$description ="en dat werkt niet met deze include script";
Hopelijk is de uitleg boven ook duidelijl?
Maar het werkt niet, hij pakt alleen de index.php waar de incldue code is geplakt. Terwijl ik juist op alle inc bestanden van pages/ ook bovenin heb staan.
Mijn structuur is:
images/
img1.gif
img2.gif
img3.gif
incl/
- header.php
- footer.php
- left.php
- right.php
pages/
- start.php <- alle pages files bovenin $title, $meta_keywords, $description
- file1.php
- file2.php
- file3.php
index.php <- daarin zit de include code
Kunnen hiermee ook uit de voeten met mijn vraag?
Moet er iets aangepast worden en zo ja, wat dan?
Zelf heb ik het idee dat ik iets mis in de index.php om de include code aan te passen.
Kom er zelf helaas niet uit, maar ik blijf natuurlijk zoeken.
Bij voorbaat dank.
En ook bedank voor de reactie Fluring Life Designer
Sonja
<meta name="keywords" content="<?php echo $meta_keywords; ?>" />
<meta name="description" content="<?php echo $description; ?>" />
<title><?php echo $title; ?></title>
pages/file.php
Boven alle includes pagina
$title ="de title natuurlijk";
$meta_keywords ="word, words, pc, computer";
$description ="en dat werkt niet met deze include script";
Hopelijk is de uitleg boven ook duidelijl?
Maar het werkt niet, hij pakt alleen de index.php waar de incldue code is geplakt. Terwijl ik juist op alle inc bestanden van pages/ ook bovenin heb staan.
Mijn structuur is:
images/
img1.gif
img2.gif
img3.gif
incl/
- header.php
- footer.php
- left.php
- right.php
pages/
- start.php <- alle pages files bovenin $title, $meta_keywords, $description
- file1.php
- file2.php
- file3.php
index.php <- daarin zit de include code
Kunnen hiermee ook uit de voeten met mijn vraag?
Moet er iets aangepast worden en zo ja, wat dan?
Zelf heb ik het idee dat ik iets mis in de index.php om de include code aan te passen.
Kom er zelf helaas niet uit, maar ik blijf natuurlijk zoeken.
Bij voorbaat dank.
En ook bedank voor de reactie Fluring Life Designer
Sonja
- Sonja
- Berichten: 2
- Geregistreerd: 08 Dec 2009 14:49
Re: Include script
Ik begrijp je probleem.
De manier van informatie opvragen moet werken, daar zie ik geen fouten in. Zie jij een mogelijkheid om je ftp gegevens naar mij toe te sturen in een prive bericht? Dan kan ik er zelf naar kijken.
De manier van informatie opvragen moet werken, daar zie ik geen fouten in. Zie jij een mogelijkheid om je ftp gegevens naar mij toe te sturen in een prive bericht? Dan kan ik er zelf naar kijken.
-

Fluring Lifes - Beheerder
- Berichten: 1155
- Geregistreerd: 28 Sep 2005 19:54
- Woonplaats: Alkmaar - Nederland
Re: Include script
Hoi,
Stel ik heb een index.php en wil een test.php includen. Kan iemand aangeven welke precies aangepast moeten worden, waar en wanneer vul ik index en wanneer test in? path en default weet ik, maar ik zal aangeven (vetgedrukt ) wat ik bedoel.
En is het beter als ik ipv .php - .inc doe?
En wat betekent dit: Zorg dat je de bestanden een extensie geeft die wordt geparsed door de PHP interpreter zodat mensen niet de inhoud van die bestanden kunnen lezen.....
BVD.
Stel ik heb een index.php en wil een test.php includen. Kan iemand aangeven welke precies aangepast moeten worden, waar en wanneer vul ik index en wanneer test in? path en default weet ik, maar ik zal aangeven (vetgedrukt ) wat ik bedoel.
En is het beter als ik ipv .php - .inc doe?
- Code: Alles selecteren
<?php
/****** INSTELLINGEN ******/
if( file_exists( $path . $page . '.php' ) and !in_array( substr( $page, 1, 1 ), $notallowed ) and strpos( $page, '../' ) === false and strpos( $page, '..\\' ) === false ) [b]<<<<.php aanpassen naar bv test.php? en ( $page, '..\\' ) [/b]
{
{
// De pagina bestaat en is geldig, dus wordt deze geinclude
include( $path . $page . '.php' ); [b]<<<<.php aanpassen naar bv test.php?[/b]
}
else
{
// De pagina die is opgegeven is niet goed of bestaat niet, dus wordt de standaard pagina geladen
include( $path . $default_page . .php ); [b]<<<<.php aanpassen naar bv test.php?[/b]
}
?>
En wat betekent dit: Zorg dat je de bestanden een extensie geeft die wordt geparsed door de PHP interpreter zodat mensen niet de inhoud van die bestanden kunnen lezen.....
BVD.
Mod-edit (Theo): [code=php] tags toegevoegd.
- trie
- Berichten: 4
- Geregistreerd: 24 Jun 2010 13:36
Re: Include script
Als je één pagina wilt includen kan dat door:
Wat dit script doet is dynamisch pagina's includen, dus de inhoud van je pagina dynamisch laden.
Je kan dan bijvoorbeeld test.php als content laden in index.php door te gaan naar:
index.php?page=test
Lees het artikel nog eens goed door... dan snap je het beter.
- Code: Alles selecteren
<?php
include( 'test.php' );
?>
Wat dit script doet is dynamisch pagina's includen, dus de inhoud van je pagina dynamisch laden.
Je kan dan bijvoorbeeld test.php als content laden in index.php door te gaan naar:
index.php?page=test
Lees het artikel nog eens goed door... dan snap je het beter.
I rather feel pain than nothing at all
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
Re: Include script
Wanneer ik content in een DIV wil, dan kan ik dus includen. Wanneer dit in meerdere pagina's zo is, is dat vooral handig, zodat ik maar 1x hoef te veranderen. Maar moet ik dan niet include once doen?
Wanneer precies moet ik met includen gaan beveiligen en/of laten parsen zodat mensen niet de inhoud zoals wachtwoorden kunnne achterhalen?
En is het beter om .inc te doen of gewoon .php?
BVD
Wanneer precies moet ik met includen gaan beveiligen en/of laten parsen zodat mensen niet de inhoud zoals wachtwoorden kunnne achterhalen?
En is het beter om .inc te doen of gewoon .php?
BVD
- trie
- Berichten: 4
- Geregistreerd: 24 Jun 2010 13:36
Re: Include script
Het include script werkt geweldig, scheelt een hele hoop aanpassingen in de code tegenover het vorige script dat ik gebruikte.
Ik loop wel tegen 1 probleem op, ik kan mijn mailform niet meer gebruiken...
Ik krijg de volgende melding:
Warning: Cannot modify header information - headers already sent by
Nu heb ik weet ik wat al geprobeerd en opgezocht en gegoogled maar ik krijg deze melding er niet uit.
En ik heb dus al gekeken naar spaties en enters e.d.
Heeft iemand een idee of een ander mailscript dat wel werkt in combinatie met dit include-script?
Het werkt als ik het include-script niet gebruik, dan ziet de code als volgt uit:
header("Location: error.php");
Nu heb ik het aangepast naar het includescript en krijg ik de foutmelding:
Ik loop wel tegen 1 probleem op, ik kan mijn mailform niet meer gebruiken...
Ik krijg de volgende melding:
Warning: Cannot modify header information - headers already sent by
Nu heb ik weet ik wat al geprobeerd en opgezocht en gegoogled maar ik krijg deze melding er niet uit.
En ik heb dus al gekeken naar spaties en enters e.d.
Heeft iemand een idee of een ander mailscript dat wel werkt in combinatie met dit include-script?
Het werkt als ik het include-script niet gebruik, dan ziet de code als volgt uit:
header("Location: error.php");
Nu heb ik het aangepast naar het includescript en krijg ik de foutmelding:
- Code: Alles selecteren
<?php
// Receiving variables
@$request = addslashes($_POST['request']);
@$about = addslashes($_POST['about']);
@$achternaam = addslashes($_POST['achternaam']);
@$voornaam = addslashes($_POST['voornaam']);
@$telefoon = addslashes($_POST['telefoon']);
@$email = addslashes($_POST['email']);
@$adres = addslashes($_POST['adres']);
@$postcode = addslashes($_POST['postcode']);
@$woonplaats = addslashes($_POST['woonplaats']);
@$land = addslashes($_POST['land']);
@$aantal = addslashes($_POST['aantal']);
@$vraag = addslashes($_POST['vraag']);
// Validation
if (strlen($request) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($about) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($achternaam) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($voornaam) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($telefoon) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (! ereg('[A-Za-z0-9_-]+\@[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+', $email))
{
header("Location: index.php?page=error");
exit;
}
if (strlen($adres) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($postcode) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($woonplaats) == 0 )
{
header("Location: index.php?page=error");
exit;
}
if (strlen($land) == 0 )
{
header("Location: index.php?page=error");
exit;
}
//Sending Email to form owner
$pfw_header = "From: $email\n"
. "Reply-To: $email\n";
$pfw_subject = "Information request - Optional booking";
$pfw_email_to = "naam@uwdomeinnaam.nl";
$pfw_message = "Data mentioned below have been filled upon request:\n"
. "\n"
. "I would like to: $request\n"
. "About: $request\n"
. "\n"
. "Last name: $achternaam\n"
. "First name: $voornaam\n"
. "Telephone: $telefoon\n"
. "E-mail: $email\n"
. "Address: $adres\n"
. "Zip code: $postcode\n"
. "City: $woonplaats\n"
. "Country: $land\n"
. "\n"
. "Number of participants: $aantal\n"
. "\n"
. "Additional information or question: $vraag\n";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header );
//Sending auto respond Email to visitor
$pfw_header = "From: naam@uwdomeinnaam.nl\n"
. "Reply-To: naam@uwdomeinnaam.nl\n";
$pfw_subject = "Information request - Optional booking";
$pfw_email_to = "$email";
$pfw_message = "Dear $voornaam,\n"
. "\n"
. "Thank you for your request.\n"
. "You have passed on the below mentioned data:\n"
. "\n"
. "I would like to: $request\n"
. "About: $request\n"
. "\n"
. "Last name: $achternaam\n"
. "First name: $voornaam\n"
. "Telephone: $telefoon\n"
. "Address: $adres\n"
. "Zip code: $postcode\n"
. "City: $woonplaats\n"
. "Country: $land\n"
. "\n"
. "Number of participants: $aantal\n"
. "\n"
. "Additional information or question: $vraag\n"
. "\n"
. "We will contact you as soon as possible.\n"
. "\n"
. "Kind regards,\n"
. "\n"
. "Naam";
@mail($pfw_email_to, $pfw_subject ,$pfw_message ,$pfw_header );
header("Location: index.php?page=thankyou");
?>
Mod-edit (Theo): [code=php] tags toegevoegd
- maus
- Berichten: 3
- Geregistreerd: 06 Jul 2010 08:52
Re: Include script
Het probleem is dat er al output is voor de header() code, dat zorgt voor de foutmelding.
Wat je zou kunnen doen is in plaats van te gaan naar de error pagina's deze ook te includen, of een tekst echo-en.
Of een vieze manier: http://php.net/manual/en/function.ob-start.php
Wat je zou kunnen doen is in plaats van te gaan naar de error pagina's deze ook te includen, of een tekst echo-en.
Of een vieze manier: http://php.net/manual/en/function.ob-start.php
I rather feel pain than nothing at all
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
33 berichten
• Pagina 1 van 3 • 1, 2, 3
Wie is er online?
Gebruikers in dit forum: Google [Bot] en 1 gast