Link include, hoe???
Ik heb wat gezocht hier op de site en via google maar ik krijg het niet gevonden..
Ik wil via include hetzeflde hebben als dat je werkt via Iframe's, alleen bijv. bij gratis lycos krijg je bij Iframe's 2x reclame en IE6 (IE7 weet ik zo niet) kan bij css de functie "transparent" niet lezen/weergeven.. Met het gevolg dat mijn site rommelig word, met include kan ik dit als het goed is oplossen.. Maar nou is het probleem dat ik niet kan vinden hoe ik het moet toe passen, dus als er nergenst op is geklikt dat dan gewoon de pagina home.php word weergegeven en zodra je bijv. op de link van het gastenboek klikt dat je dan de pagina van het gastenboek krijgt..
Ik heb wel iets wat dicht in de buurt kwam gevonden, maar dit werkt via een keuze menu in een <form> gedeelte.. Alhier, maar hoe kan ik dat dan maken dat ik dat bijv. via gewoone HTML code kan laten include dus via <a></a>.. Als dat niet gaat, hoe dan wel?
Alvast bedankt voor je hulp!
Ik wil via include hetzeflde hebben als dat je werkt via Iframe's, alleen bijv. bij gratis lycos krijg je bij Iframe's 2x reclame en IE6 (IE7 weet ik zo niet) kan bij css de functie "transparent" niet lezen/weergeven.. Met het gevolg dat mijn site rommelig word, met include kan ik dit als het goed is oplossen.. Maar nou is het probleem dat ik niet kan vinden hoe ik het moet toe passen, dus als er nergenst op is geklikt dat dan gewoon de pagina home.php word weergegeven en zodra je bijv. op de link van het gastenboek klikt dat je dan de pagina van het gastenboek krijgt..
Ik heb wel iets wat dicht in de buurt kwam gevonden, maar dit werkt via een keuze menu in een <form> gedeelte.. Alhier, maar hoe kan ik dat dan maken dat ik dat bijv. via gewoone HTML code kan laten include dus via <a></a>.. Als dat niet gaat, hoe dan wel?
Alvast bedankt voor je hulp!
Je kunt in de url een GET variabele meegeven waarin je aangeeft welke pagina geinclude moet worden. Kijk eens naar dit voorbeeld, hier zul je vast wel wat aan hebben.
Dus dan krijg je zo iets:
Of heb ik dat dan verkeerd?
Ik zal het dalijk eens probeeren..
Of heb ik dat dan verkeerd?
Ik zal het dalijk eens probeeren..
Gewijzigd op 01/01/1970 01:00:00 door Nieko
Neej, dan krijg je (denk ik, heb het voorbeeld niet gelezen)
en
en
Include zet je op de plaats waar die inhoud moet komen. Nu zet jij het hele gastenboek in de link en dat gaat echt niet goed.
'Nieko:
Dus dan krijg je zo iets:
Of heb ik dat dan verkeerd?
Ik zal het dalijk eens probeeren..
Code (php)
1
<a onClick="<?php include($_GET['gastenboek']); ?>" //$-teken niet vergeten targret="code">Gastenboek</a>
Of heb ik dat dan verkeerd?
Ik zal het dalijk eens probeeren..
Ik zou zeggen, kijk nog eens goed naar het voorbeeld. Speel er even mee, en kijk hoe de url meeveranderd als je een andere pagina selecteert.
Je kan toch gewoon alpha filter gebruiken in CSS om te zorgen dat iets ook in IE tranparant wordt ? -moz-opacity werkt inderdaad alleen in Firefox, maar volgens mij als je ook alpha filter erin zet zou het moeten werken.
Met include_once() kun je zorgen dat iets op iedere pagina zichtbaar wordt net als met iframes.
En als je linkje wilt plaatsen dan zul je dit gewoon code in je a href moeten schrijven.
Met include_once() kun je zorgen dat iets op iedere pagina zichtbaar wordt net als met iframes.
En als je linkje wilt plaatsen dan zul je dit gewoon code in je a href moeten schrijven.
Daan's oplossing werk :) maar:
Ik heb een test pagina gemaakt en daar staat 1x Hoi op.. Als ik die nu open dan komt er 2x Hoi te staan dus: Hoi Hoi.. Komt dat doordat die pagina (wel opgeslagen als .php) helemaal gewoon HTML is?
En hoe zorg ik ervoor dat ik ook een index pagina heb? Dus bij het openen van de website dat er wel iets staat? Ik heb include_once() gedaan maar nadat ik op bijv. Gastenboek drukte stond de tekst van de index pagina er nog onder.. Oplossing?
Ik heb een test pagina gemaakt en daar staat 1x Hoi op.. Als ik die nu open dan komt er 2x Hoi te staan dus: Hoi Hoi.. Komt dat doordat die pagina (wel opgeslagen als .php) helemaal gewoon HTML is?
En hoe zorg ik ervoor dat ik ook een index pagina heb? Dus bij het openen van de website dat er wel iets staat? Ik heb include_once() gedaan maar nadat ik op bijv. Gastenboek drukte stond de tekst van de index pagina er nog onder.. Oplossing?
Ik denk dat ik bijna een oplossing heb voor de index.. Dus dat als de pagina word geopend dat er dan iets komt te staan op de plek van de incude's (anders krijg je een veld met bijv. alleen de link Gastenboek en Hoi en komt er onder zeg maar niks te staan).
IK heb wat zitten klote met if en else, dit komt er uit:
Dit scirpt is gebaseerd op de "container" van het script van deze pagina en een stuk van Daan's oplossing (natuurlijk heb ik de rest van het script er ook bij staan).
Het probleem is echter dat ik een phase error krijg op include('bla.php');. Iemand enig idee wat het probleem kan zijn?
IK heb wat zitten klote met if en else, dit komt er uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="container">
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
if($_GET['page'] != "home.php, hoi.php"){
include('bla.php');
}
else{
switch($_GET['page']) {
case "home": include "home.php";
}
switch($_GET['page']) {
case "hoi": include "hoi.php";
}
}
?>
</div>
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
if($_GET['page'] != "home.php, hoi.php"){
include('bla.php');
}
else{
switch($_GET['page']) {
case "home": include "home.php";
}
switch($_GET['page']) {
case "hoi": include "hoi.php";
}
}
?>
</div>
Dit scirpt is gebaseerd op de "container" van het script van deze pagina en een stuk van Daan's oplossing (natuurlijk heb ik de rest van het script er ook bij staan).
Het probleem is echter dat ik een phase error krijg op include('bla.php');. Iemand enig idee wat het probleem kan zijn?
Maar de check_page() functie die ik in mijn voorbeeld script heb staan, doet al wat jij nu op de regels 10 t/m 20 hebt staan. Dat is dus dubbel op. Als je mijn voorbeeld wilt gebruiken, zul je de check_page() functie moeten aanpassen. Zo niet, dan zul je die functie er helemaal uit moeten laten.
Maar hoe zit dat dan? Ik moet ergenst dan een inculde maken of zo? Ik snap het niet helemaal, sorry. Op www.php.nl is er ook niks over te vinden..
Als je kijk naar mijn script, dan zie je dat ik gebruik maak van de functie check_page(). Dit is een functie die ik zelf geschreven heb zoals je helemaal aan het begin van het script ziet.
Die functie doet het volgende:
- Controleren of de opgegeven pagina toegestaan is.
- Controleren of de opgegeven pagina bestaat.
Als dat zo is, wordt de pagina door de functie zelf geinclude. Dat hoef je dus niet meer op een andere plaats in je script op te nemen. Het aanroepen van deze functie is dan voldoende.
ps. Ik zie nu dat die functie niet helemaal netjes is, zal hem eerst eens herschrijven...
pps. Aangepast.
Die functie doet het volgende:
- Controleren of de opgegeven pagina toegestaan is.
- Controleren of de opgegeven pagina bestaat.
Als dat zo is, wordt de pagina door de functie zelf geinclude. Dat hoef je dus niet meer op een andere plaats in je script op te nemen. Het aanroepen van deze functie is dan voldoende.
ps. Ik zie nu dat die functie niet helemaal netjes is, zal hem eerst eens herschrijven...
pps. Aangepast.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Oh dus je hebt bijv. alle pagina's in een map /paginas/ staan, daar staat ook een index pagina in en die incude hij dan...
Dan zal bij mij de fout wel zijn dat ik de main index pagina en de index die geincude moet worden in 1 map heb staan zal eens wat anders doen..
EDIT,,
Nop werkt niet..
Dan zal bij mij de fout wel zijn dat ik de main index pagina en de index die geincude moet worden in 1 map heb staan zal eens wat anders doen..
EDIT,,
Nop werkt niet..
Gewijzigd op 01/01/1970 01:00:00 door Nieko
Wat je dus zou kunnen doen is bijvoorbeeld:
Tja ik heb dat dus in de container gezet en het werkt niet, want hij geeft als error:
Fatal error: Cannot redeclare check_page() (previously declared in /data/members/free/tripod/nl/c/o/n/conquer/htdocs/nl2br_test/index.php:2) in /data/members/free/tripod/nl/c/o/n/conquer/htdocs/nl2br_test/index.php on line 2
"Line 2" is dus function check_page($page)..
Ik heb de code nu dus zo neer gezet:
In deze positie werkt hij het best..
Ik krijg dus alleen die error, zet ik hem appart neer in de container layer dan krijg ik gewoon hetzelfde.. Dus zo:
De directroy map is in iedergeval goed..
Fatal error: Cannot redeclare check_page() (previously declared in /data/members/free/tripod/nl/c/o/n/conquer/htdocs/nl2br_test/index.php:2) in /data/members/free/tripod/nl/c/o/n/conquer/htdocs/nl2br_test/index.php on line 2
"Line 2" is dus function check_page($page)..
Ik heb de code nu dus zo neer gezet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="container">
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
else
{
include('index.php');
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
</div>
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
else
{
include('index.php');
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
</div>
In deze positie werkt hij het best..
Ik krijg dus alleen die error, zet ik hem appart neer in de container layer dan krijg ik gewoon hetzelfde.. Dus zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<div id="container">
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
<?php
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
else
{
include('index.php');
}
?>
</div>
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
<?php
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
else
{
include('index.php');
}
?>
</div>
De directroy map is in iedergeval goed..
Die tweede is toch drie-dubbelop? Zelfs dit is overbodig in het eerste deel:
Aangezien je dit in de check_page() functie kunt verwerken. Het enige dat je dus in principe nodig hebt is:
Dat is het enige dat je neerzet op de plaats waar een pagina geinclude moet worden...
Code (php)
Aangezien je dit in de check_page() functie kunt verwerken. Het enige dat je dus in principe nodig hebt is:
Code (php)
Dat is het enige dat je neerzet op de plaats waar een pagina geinclude moet worden...
Hoezo 3-dubbelop? Ik heb ook gedaan wat je daar als laatste zegt (gewoon de code neer zetten op de plek waar de pagina weergegeven moet worden, dus in de container layer).
En dit:
Is de code voor de links (dus als je op de link "Hoi" drukt dat hij dan de pagina Hoi inculde)..
En dit:
Code (php)
Is de code voor de links (dus als je op de link "Hoi" drukt dat hij dan de pagina Hoi inculde)..
Maar dat is het hem nou juist, die functie check_page() include die pagina al...
Je kunt ook die hele functie check_page() weglaten en alleen dit neerzetten:
Je moet het alleen niet allebei gaan gebruiken.
Je kunt ook die hele functie check_page() weglaten en alleen dit neerzetten:
Code (php)
Je moet het alleen niet allebei gaan gebruiken.
Het grootste probleem is dat hij dan niet werkt...
Je hebt dus op Line 2, fuction check_page($page). Dus volgens jou zou die functie het al moeten doen.. Maar dat doet hij niet..
Of is het juist op Line 51 (mijn code) dat hij dat daar doet?
Ik zal hier even mijn code posten wat hij nu is en het test URL
En mijn test URL http://members.lycos.nl/conquer/nl2br_test/
Op het test URL draait nu precies het script wat hier boven staat.
Je hebt dus op Line 2, fuction check_page($page). Dus volgens jou zou die functie het al moeten doen.. Maar dat doet hij niet..
Of is het juist op Line 51 (mijn code) dat hij dat daar doet?
Ik zal hier even mijn code posten wat hij nu is en het test URL
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
function check_page($page)
{
// $dir: locatie van de te includen paginas.
// $ext: extensie van de te includen paginas.
// $allowed: array met namen van paginas die geinclude mogen worden.
$dir = 'paginas/';
$ext = '.php';
$allowed = array('index', 'home', 'hoi');
// Controleer of er een pagina opgegeven is.
if(isset($_GET['page']))
{
$page = strtolower($_GET['page']);
// Controleer of pagina wel geinclude mag worden.
if(in_array($page, $allowed))
{
// Controleer of de pagina daadwerkelijk bestaat.
if(file_exists($dir.$page.$ext))
{
include($dir.$page.$ext);
}
else
{
echo '<p><i>De pagina '.$dir.$page.$ext.' bestaat niet.</i></p>';
}
}
else
{
echo '<p><i>Het is niet toegestaan om deze pagina te includen.</i></p>';
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
</head>
<body>
<div id="container">
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
</div>
<div id="code">
<?php
$filename = basename($_SERVER['PHP_SELF']);
highlight_file($filename);
?>
</div>
</body>
</html>
function check_page($page)
{
// $dir: locatie van de te includen paginas.
// $ext: extensie van de te includen paginas.
// $allowed: array met namen van paginas die geinclude mogen worden.
$dir = 'paginas/';
$ext = '.php';
$allowed = array('index', 'home', 'hoi');
// Controleer of er een pagina opgegeven is.
if(isset($_GET['page']))
{
$page = strtolower($_GET['page']);
// Controleer of pagina wel geinclude mag worden.
if(in_array($page, $allowed))
{
// Controleer of de pagina daadwerkelijk bestaat.
if(file_exists($dir.$page.$ext))
{
include($dir.$page.$ext);
}
else
{
echo '<p><i>De pagina '.$dir.$page.$ext.' bestaat niet.</i></p>';
}
}
else
{
echo '<p><i>Het is niet toegestaan om deze pagina te includen.</i></p>';
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
</head>
<body>
<div id="container">
<a href="?page=home">Gastenboek</a> <a href="?page=hoi">Hoi</a><br>
<?php
if($_SERVER['REQUEST_METHOD'] == 'GET')
{
if(isset($_GET['page']))
{
check_page($_GET['page']);
}
}
switch($_GET['page']) {
case "home": include "home.php";
case "hoi": include "hoi.php";
}
?>
</div>
<div id="code">
<?php
$filename = basename($_SERVER['PHP_SELF']);
highlight_file($filename);
?>
</div>
</body>
</html>
En mijn test URL http://members.lycos.nl/conquer/nl2br_test/
Op het test URL draait nu precies het script wat hier boven staat.
Dat komt waarschijnlijk omdat je $dir verkeerd ingesteld hebt. Zoals het ernaar uitziet staan de te includen pagina's in dezelfde map als het script. Bij $dir moet je dan niets invullen, het gaat namelijk om de relatieve locatie t.o.v. het script.




