php include

Status
Niet open voor verdere reacties.

the goose

Gebruiker
Lid geworden
15 feb 2007
Berichten
86
Hey allen!

Hoe kan je met een php include, naar een bestand linken dat bv. 2 niveau's hoger staat?

Ik heb het volgende gevonden (http://css-tricks.com/php-include-from-root/)

Code:
<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "/common/header.php";
   include_once($path);
?>

maar als ik dit verander in

Code:
<?php
   $path = $_SERVER['DOCUMENT_ROOT'];
   $path .= "navigatie.php";
   include_once($path);
?>

gebeurd er niet veel. Vrij basic waarschijnlijk, maar ik ben dan ook vrij noob in php :o

Alvast bedankt!

Gr,
The goose
 
Laatst bewerkt:
Dit kan korter:

PHP:
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "navigatie.php";

Naar;

PHP:
$path = $_SERVER['DOCUMENT_ROOT'] . "navigatie.php";

Wat je zou kunnen proberen:

PHP:
$path = $_SERVER['DOCUMENT_ROOT'] . "/navigatie.php";
 
Bedankt voor het antwoord! Toch krijg ik mijn navigatie nog steeds niet te zien...

navigatie.php staat in dezelfde map als index.php, maar het bestand waarin ik de navigatie wil includen zit 2 niveau's dieper.

Nog ideetjes?

Gr,
The goose
 
Bedankt voor het antwoord! Toch krijg ik mijn navigatie nog steeds niet te zien...

navigatie.php staat in dezelfde map als index.php, maar het bestand waarin ik de navigatie wil includen zit 2 niveau's dieper.

Nog ideetjes?

Gr,
The goose

Weet niet zeker of ik het snap. Zal het proberen te snappen. Je hebt index.php. Je include in de index.php een bestandje navigatie.php. Navigatie.php heeft dan weer op zichzelf een paar includes die een paar (lees; 2) mappen dieper zit. Je kan deze dan in navigatie.php includen als: map/map/include.php. Het hoeft niet persé in navigatie, het kan ook in de index.php als je wil aangezien alles vanuit het mainbestand geregeld wordt.

Mocht ik het niet goed hebben gesnapt, moet je even wat meer info geven (het is nog vroeg hea ;)).
 
Hey,

sorry voor het onduidelijk voor te stellen :P ik zal het proberen te verduidelijken.

index.php en navigatie.php zitten in dezelfde map. De navigatie includen in index.php gaat goed met de "gewone" include:

PHP:
<div id="menu">
    <?php include("navigatie.php"); ?>
</div>

Nu heb ik een bestandje oversteken.php, dat 2 mappen dieper zit (2009/buitenwerken/oversteken.php). In oversteken.php wil ik ook graag navigatie.php includen, maar dit lukt me niet.

PHP:
<div id="menu">
			<?php
				$path = $_SERVER['DOCUMENT_ROOT'] . "/navigatie.php";
				include_once($path);
			?>
</div>

Deze code blijkt dus niet te werken...

Als het nog niet duidelijk mocht zijn, dan zeg je het maar!

Grts,
the goose
 
Laatst bewerkt:
Ah ok, ja dat is duidelijk. Maareh, je moet eens wat echo'en, dan zie je wat er gebeurt.

$_SERVER['DOCUMENT_ROOT'] zal betekenen, de map waar het uit te voeren bestand staat. Dus als jij een bestand wil includen vanuit oversteken.php, en je zegt document_root, dan pakt hij dus die map. Je moet echter 2 mappen hoger zitten zeg je. Als je het bestand oversteken.php dus zo uitvoert, zal je dus 2 mappen hoger moeten gaan. Het zal dan worden:

PHP:
$path = "../../navigatie.php";
                include_once($path);

Ik neem aan dat je oversteken.php niet include in de index, want dan zou hij gewoon moeten werken. Hoop dat het zo eeen beetje duidelijk voor je is. Mocht het je nog niet geheel duidelijk zijn, doe dan eens volgende dingen;

PHP:
echo $_SERVER['DOCUMENT_ROOT'] . '<br/>';
echo $path;

Hoor het verloop wel weer ;)
 
PHP Code:
PHP:
$path = "../../navigatie.php";
                include_once($path);

^^ dit werkt niet...

PHP Code:
PHP:
 echo $_SERVER['DOCUMENT_ROOT'] . '<br/>';
echo $path;

als ik echo dan geeft het:

HTML:
		<div id="menu">
			/htdocs<br/>
		</div>

Enig idee? :confused:
 
Ik denk dat je volgorde van code dan mss verkeerd zit... Want ik zie je echo van $path helemaal niet staan (die andere htdocs zal wel de root zijn dan, waar het bestand staat). Kan je de gehele code (betreffende dit stuk) posten misschien?
 
Hey,

Hier is de code:

oversteken.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>PPT</title>

<script type="text/javascript" language="javascript" src="/lytebox.js"></script>
<link rel="stylesheet" href="/lytebox.css" type="text/css" media="screen" />

<meta name="keywords" content="" />
<meta name="description" content="" />
	<meta http-equiv=Content-Language content=nl-be><LINK 
	href="/style.css" type=text/css rel=stylesheet>
</head>
<body>
<div id="wrapper">
	<div id="logo">
		<h1>PPT</h1>
		<p><em> Algemene schilderwerken </em></p>
	</div>
	<hr />
	<!-- end #logo -->

	<div id="header">
		<div id="menu">
            			<?php
                				$path = $_SERVER['DOCUMENT_ROOT'] . "../../navigatie.php";
               				include_once($path);
           			 ?>

		</div>
		<!-- end #menu -->

	</div>

.....


navigatie.php (zit dus 2 niveau's hoger):

PHP:
<?php
$menu = array(
    array("/index.php",1,"Home"),
    array("/keukens.php",2,"Keukens"),
    array("/badkamers.php",3,"Badkamers"),
    array("/dressings.php",4,"Dressings"),
    array("/buitenwerken.php",5,"Buitenwerken"),
    array("/contact.php",6,"Contact")
);
echo '<ul>';
foreach ($menu as $item) {
    if (preg_match("/^(.*)".$item[0]."$/",$_SERVER["SCRIPT_FILENAME"])) {
        echo '<li class="current_page_item"><a href="'.$item[0].'" accesskey="'.$item[1].'" title="">'.$item[2].'</a></li>';
    } else {
        echo '<li><a href="'.$item[0].'" accesskey="'.$item[1].'" title="">'.$item[2].'</a></li>';
    }
}
echo '</ul>';
?>

Gr,
The goose
 
Gooi er eens een extra / tussen? Volgensmij eindigd document_root niet met een / en dan zou het verkeerd staan.

Wat ook helpt is om je error reporting aan te gooien, dan zou je ook de mindere fouten (die je veel inzicht geven in wat er mis gaat)

PHP:
error_reporting ( E_ALL );
 
Hey,

bedoel je dit (een extra / voor ../../)?

PHP:
			<?php
				$path = $_SERVER['DOCUMENT_ROOT'] . "/../../navigatie.php";
				include_once($path);
			?>

Groetjes,
The goose
 
Dat werkt spijtig genoeg niet :( Heb al van alles geprobeerd met /.../ maar dat levert niets op blijkbaar..
 
Als ik het goed begrijp zit het zo in elkaar:

Map ("een naam ")
- Bestand ("index.php")
- Bestand ("navigatie.php")
- Map ("2009")
-- Map ("binnenwerken")
-- Bestand ("oversteken.php")

In principe zou in oversteken.php dan ../../navigatie.php gewoon moeten werken.

Gr. Ronald!:)
 
Inderdaad, zo zit het. Toch krijg ik de navigatie niet te zien...

Ik heb het even op ge-upload (http://www.dechips-be.nl05.members.pcextreme.nl/buitenwerken.php) De andere pagina's zijn ook nog niet in orde dus daar moet je niet teveel naar kijken.

De volledige code van oversteken.php:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Pro Painting Team</title>

<script type="text/javascript" language="javascript" src="/lytebox.js"></script>
<link rel="stylesheet" href="/lytebox.css" type="text/css" media="screen" />

<meta name="keywords" content="" />
<meta name="description" content="" />
	<meta http-equiv=Content-Language content=nl-be><LINK 
	href="/style.css" type=text/css rel=stylesheet>
</head>
<body>
<div id="wrapper">
	<div id="logo">
		<h1>Pro Painting Team</h1>
		<p><em> Algemene schilderwerken </em></p>
	</div>
	<hr />
	<!-- end #logo -->

	<div id="header">
		<div id="menu">
			<?php
				$path = $_SERVER['DOCUMENT_ROOT'] . "../../navigatie.php";
				include_once($path);
			?>
		</div>
		<!-- end #menu -->

	</div>
	<!-- end #header -->
	<!-- end #header-wrapper -->


<!-- CHANGE TITLE / META -->
	<div id="page">
		<div id="content">
			<div class="post">
				<h2 class="title">Buitenwerken</h2>
				<p class="meta">Projecten 2009 - Oversteken<br /></p>
				<div class="entry">

				<p>
				<td valign="top" align="left"> 
					<table class="tabel" width="570" border="0">

					<!-- begin eerste rij -->

					<tr>
						<td valign="top" align="left"> 
							<a href="portfolio/oversteken/foto_1.jpg" rel="lyteshow[Groep_1]" title="Commentaar">
							<img src="portfolio/oversteken/foto_1_small.jpg" class="img_portfolio" border=0 width=170 height=170 alt=""></a>
						</td>

						<td colspan = 4></td>

						<td valign="top" align="left">
							Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis aliquam. Sed nibh. Fusce interdum arcu eu orci. Quisque turpis. Donec erat quam, posuere eu, mollis a, auctor sit amet, lorem. Fusce magna est, congue mollis, condimentum eu, imperdiet id, est. 
						</td>
					</tr>

						<tr><td><br></td></tr>

					<!-- einde eerste rij -->

					
					<!-- begin tweede rij -->

					<tr>
						<td valign="top" align="left"> 
							<a href="portfolio/oversteken/foto_2.jpg" rel="lyteshow[Groep_1]" title="Commentaar">
							<img src="portfolio/oversteken/foto_2_small.jpg" class="img_portfolio" border=0 width=170 height=170 alt=""></a>
						</td>

						<td colspan = 4></td>

						<td valign="top" align="left">
							Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis aliquam. Sed nibh. Fusce interdum arcu eu orci. Quisque turpis. Donec erat quam, posuere eu, mollis a, auctor sit amet, lorem. Fusce magna est, congue mollis, condimentum eu, imperdiet id, est. 
						</td>
					</tr>

					<!-- einde tweede rij -->

					</table> 
				</td>
</p>
				</div>
			</div>


		</div>
		<!-- end #content -->


		<div id="sidebar">
			<ul>
				<li>
					<h2>Projecten 2008</h2>
					<p>
						<ul class="list">
				<li>Geen projecten</li>
						</ul>
					</p>
				</li>

				<li>
					<h2>Projecten 2009</h2>
					<p>
						<ul class="list">
				<li><a href="oversteken.php">Oversteken</a></li>
						</ul>
					</p>
				</li>
			</ul>
		</div>
		<!-- end #sidebar -->
		<div style="clear: both;">&nbsp;</div>
		
		<div id="pagebottomborder"><!-- ! --></div>
	</div>
	<!-- end #page -->
	<div id="footer">
		<?php include("/footer.php"); ?>
	</div>
	<!-- end #footer -->
</div>
</body>
</html>

Zoals je ziet zijn er meerdere includes (bv. footer), maar ik was me momenteel aan het focussen op de include van de navigatie.

Bedankt alvast voor al de antwoorden! :)

Gr,
The goose
 
PHP:
        <div id="menu">
            <?php
                $path = $_SERVER['DOCUMENT_ROOT'] . "../../navigatie.php";
                include_once($path);
            ?>
        </div>
        <!-- end #menu -->

Maak van $path het volgende:

$path = "../../naviagtie.php";

En maak dan van include_once() gewoon include().

Gr. Ronald!:)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan