Hoi,
Ik heb een site waar 1 pagina (index.php) bestaat uit diverse includes (inc_header.php, inc_footer.php, enz...). Er is een constant 'ROOT' die aangemaakt wordt in constants.php, constants.php wordt dan weer geinclude bovenaan in index.php. Probleem is dat de include 'inc_header.php' blijkbaar geen toegang krijgt tot de constant 'ROOT' en dus geen waarde weergeeeft. Hieronder de code van index.php:
Wat is de oorzaak en hoe los ik dit op?PHP Code:
<?php
include ('constants.php');
?>
<!--container-->
<body>
<div id="container">
<!--container-->
<?php
include (MAIN. '/inc_header.php');
?>
<!--LEFT SECTION-->
<div id="left">
<!--LEFT SECTION-->
<?php
include (MAIN. '/inc_left_home.php');
?>
<!--LEFT SECTION-->
</div>
<!--LEFT SECTION-->
<!--RIGHT SECTION-->
<div id="right">
<!--RIGHT SECTION-->
<?php
include (MAIN. '/inc_topitems.php');
?>
<!--RIGHT SECTION-->
</div>
<!--RIGHT SECTION-->
<?php
include (MAIN. '/inc_bottom.php');
?>
<?php
include (MAIN. '/inc_footer.php');
?>
<!--container-->
</div>
</body>
</html>
<!--container-->
- Includes scope & constant scope
-
08-01-2007, 14:45 #1
Basing.nl (Umono)
- Berichten
- 1.017
- Lid sinds
- 19 Jaar
Includes scope & constant scope
-
In de schijnwerper
Te koop protogoto.nl - service marktplaats - t.e.a.b.Website te koopLinkbuilding(internationaal)uitbesteden(ook whitelabel)?Wij regelen alle plaatsingen.Freelance / WerkBacklinktools.nl - DA9 - Korte en sterke domeinnaamDomein te koopTe koop: Webshop in Telefoonaccessoires en telefonieWebsite te koop -
08-01-2007, 15:02 #2
- Berichten
- 240
- Lid sinds
- 19 Jaar
kan je niet gewoon de url voor de bestanden zetten zodat het iig werkt ?
-
08-01-2007, 15:29 #3
Basing.nl (Umono)
- Berichten
- 1.017
- Lid sinds
- 19 Jaar
De pagina's (inc_header.php,...) worden wel geinclude op index.php hé. Het probleem is dat de constant ROOT niet wordt weergegeven in de pagina inc_header.php, zie hieronder de pagina inc_header.php:
PHP Code:<!--header-->
<div id="header" class="headerback<?php if($menu_os=="1" && !$crumb){echo '1'; } else { echo '2'; } ?>">
<h1><a class="logo" href="#">sitenaam.nl</a></h1>
<ul>
<li <?php if($menu_os=="1"){echo 'class="on"'; } else { echo ''; } ?>><a href="<?= ROOT ?>">Home</a></li>
<li <?php if($menu_os=="2"){echo 'class="on"'; } else { echo ''; } ?>><a href="<?= ROOT ?>/tab2/">tab 2</a></li>
<li <?php if($menu_os=="3"){echo 'class="on"'; } else { echo ''; } ?>><a href="<?= ROOT ?>/tab3/">tab 3</a></li>
</ul>
<?php if($menu_os=="1" && !$crumb){
?>
<h1 class="slogan">TEKSTEN</h1>
<p>Nog wat teksten</p>
<?php
} else {
echo $crumb;
}
?>
</div>
<!--header-->
-
08-01-2007, 18:28 #4
- Berichten
- 231
- Lid sinds
- 19 Jaar
Kleine tip die ik je meegeef..
Je gebruikt een onnodig lange if else constructie waar eigelijk niet veel achter komt.
Je kunt hiervoor de zogenaamde one-line-if voor gebruiken:
PHP Code:<?
echo ( $menu_os == 1 ? 'class="on"' : '' ) ;
?>
-
08-01-2007, 18:38 #5
- Berichten
- 625
- Lid sinds
- 19 Jaar
Hoe declareer je ROOT ? (inhoud constants.php)
-
08-01-2007, 18:56 #6
Basing.nl (Umono)
- Berichten
- 1.017
- Lid sinds
- 19 Jaar
ROOT wordt als volgt gedefined, voor meer info verwijs ik naar een topic op phpfreakz.nl: http://www.phpfreakz.nl/forum.php?forum=4&iid=940470
PHP Code:<?php
define ("ROOT", "http://www.sitenaam.be");
define ("MAIN", "http://www.sitenaam.be");
define ("IMG", "http://www.sitenaam.be/images/");
?>
-
09-01-2007, 16:15 #7
Basing.nl (Umono)
- Berichten
- 1.017
- Lid sinds
- 19 Jaar
Niemand die me hierbij kan helpen?
-
09-01-2007, 17:58 #8
- Berichten
- 730
- Lid sinds
- 18 Jaar
Het zou aan de server kunnen liggen?
Probeer eens
CONSTANT("MAIN") . "de rest van je code"
zou moeten werken lijkt mij, tenzij er iets fout zit in je constants.php
Je mag me ook PMen als je echt hulp nodig bent ;)
-
10-01-2007, 07:44 #9
- Berichten
- 16
- Lid sinds
- 19 Jaar
lukt het in de index.php zelf wel?
raar dat het enkel online niet lukt, mss (wss) instelling op je server?
-
10-01-2007, 11:10 #10
- Berichten
- 625
- Lid sinds
- 19 Jaar
Ik heb het net eens uitgetest:
Op 3 PHP5 server en op 1 PHP4 server.
Het resultaat:
Inhoud van MAIN in constants: http://www.example.com
Inhoud van MAIN in inc_header: http://www.example.com
Inhoud van MAIN in index: http://www.example.com
Misschien zit er een bug in je php versie ofzo ?
De inhoud van mijn testbestanden:
index.php:Code:<?php error_reporting(E_ALL); ?> <html> <body> <?php include ('constants.php'); ?> <br> <?php include ('inc_header.php'); ?> <br> <?php echo "Inhoud van MAIN in index: " . MAIN; ?> </body> </html>
Code:<?php define ("MAIN", "http://www.example.com"); define ("IMG", "http://www.sitenaam.be/images/"); echo "Inhoud van MAIN in constants: " . MAIN; ?>
Code:<!--header--> <?php echo "Inhoud van MAIN in inc_header: " . MAIN; ?> <!--header-->
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic