login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleem met $rootdir (Opgelost)

Offline Ruultje - 13/11/2009 19:21 (laatste wijziging 13/11/2009 19:23)
Avatar van RuultjeNieuw lid Ik heb een probleem met het linken van menu-items of andere zaken (stylesheet bijvoorbeeld) op mijn localhost. Wanneer ik een nieuwe pagina wil aanmaken werken de linken standaard NIET. Dit krijg ik dan te zien onder in de statusbalk (ik heb extra een nieuwe map 'test' aangemaakt:

  1. http://localhost/test/test/%3Cbr%20/%3E%3Cb%3ENotice%3C/b%3E:%20%20Undefined%20variable:%20rootdir%20in%20%3Cb%3EC:%5Cwamp%5Cwww%5Ctest%5Ctest%5Ctest.php%3C/b%3E%20on%20line%20%3Cb%3E1%3C/b%3E%3Cbr%20/%3Eadministratie/werk/index.php


Het lijkt mij erop dat die veel verder terug linkt.

Geen idee hoe ik dit kan oplossen. Het rare is namelijk dat de oude pagina's (die ik dus eerder heb aangemaakt) wel werken. Alleen alles wat ik opnieuw aanmaak werkt niet. Wanneer ik de 'oude file' dan kopieer naar die testmap dan werkt die oude file daar (of in elke andere map) ook niet. Terwijl die in die oude map wel werkt.

Dit is de code:
  1. <a href="<?php echo $rootdir ?>administratie/werk/index.php">Test Link</a>


Voor zover ik weet heb ik ook niks veranderd aan de instellingen. Maar ik neem aan dat daar de fout moet liggen.

Wanneer ik die testfile op mijn webserver zet dan werkt het namelijk wel gewoon.

Bovenstaande code is dus de gehele code omdat ik wilde kijken of het misschien ergens anders aan zou liggen (ergens anders in de file, dat is het dus ook niet).

6 antwoorden

Gesponsorde links
Offline kurohyou - 14/11/2009 02:39
Avatar van kurohyou Oud lid kan je wat duidelijker zijn en een beetje meer code posten aub, het bericht in de statusbalk zegt undefined variable rootdir, dus waar word de variable gedeclareerd en heeft de huidige pagina toegang tot die var, verder in de link ontbreekt een puntkomma, maar dat zal wss wel gewoon een schrijffout zijn.
Begin anders eens met dit in je script te zetten :
  1. <?php
  2. ini_set('display_errors',1);
  3. ?>

Offline Ruultje - 15/11/2009 16:50
Avatar van Ruultje Nieuw lid Komt helemaal geen foutmelding wanneer ik dit invoer.

Het blijkt nu dat bovenliggende mappen wel goed worden gelinkt. Het is dus alleen de home (zeg maar) pagina die niet goed linkt. Dus de file deze aan het begin staat.

De mapstructuur:
index.php
header.php
footer.php
- map: test
- index.php

De index in de map test pakt hij dus wel (de juiste link), de index.php in de rootdir werkt dus niet. De menu-items staan in de header.

Hier de bestanden:

De index.php in de hoofdmap
  1. <?php
  2. include("header.php");
  3.  
  4. ?>
  5.  
  6. <?php
  7. include("footer.php");
  8. ?>


De index.php in de map test
  1. <?php
  2. $rootdir="../";
  3. include("../header.php");
  4. ?>
  5. <table class="main">
  6. <tr>
  7. <td>
  8. Inhoud (verder niets ermee te maken).
  9. </td>
  10. </tr>
  11. </table><?php
  12. $rootdir="../";
  13. include("../footer.php");
  14. ?>


De tweede index werkt dus wel.


De header

  1. <html>
  2. <head>
  3. <title>Administratie: Werkuren</title>
  4. <link rel="stylesheet" href="<?php echo $rootdir; ?>css/general.css" type="text/css">
  5. </head>
  6.  
  7. <body>
  8.  
  9. <table class="site" align="center">
  10. <tr>
  11. <td><table class="header">
  12. <tr>
  13. <td>&nbsp;</td>
  14. </tr>
  15. </table></td>
  16. </tr>
  17. <tr>
  18. <td><table class="menu">
  19. <tr>
  20. <td class="menu"><a href="<?php echo $rootdir; ?>test/index.php">Test</a></td>
  21. </tr>
  22. </table></td>
  23. </tr>
  24. <tr>
  25. <td>
  26. <!-- Tot hier header -->


De header wordt dus aan beide indexen gelinkt. Daar staat dus precies hetzelfde in.
Offline kurohyou - 18/11/2009 01:49
Avatar van kurohyou Oud lid hey sorry dat ik laat reageer, mss is het ondertussen al opgelost maar heb blijkbaar geen mail gekregen van de follow up.

ik snap wat je wilt doen in je files, maar je manier van werken lijkt me allezins voor mij héél onduidelijk en onderhoudsonvriendelijk. Het lijkt dat je nog niet veel ervaring met php hebt wat geen probleem is natuurlijk daarom bestaat sitemasters dan ook ;)

ik stel voor dat je toch even http://www.w3schools.com/PHP/php_syntax.asp bezoekt en je even tijd neemt voor de cursus daarop en dan verder bouwt, als je zoals mij bent wil je het nu allemaal kunnen maar dat is onmogelijk.

ondertussen geef ik je toch een paar tips die je op weg kunnen helpen. onderstaande regel kan je in index.php zetten :

  1. define ('__SITE', $_SERVER['DOCUMENT_ROOT'] . '/' . substr(dirname($_SERVER['PHP_SELF']), 1) . '/');


als je dan even echo __SITE; doet ga je zien dat die var je path van je site aangeeft van waaruit je je site kan opbouwen, in je links hoef je dan alleen het volgende te schrijven voor je links en etc... op te bouwen :

  1. echo __SITE . "subdir/filename";


let er ook op dat je geen vars dubbel declareerd zoals je gedaan hebt in index.php in de map test 'rootdir'
Offline Ruultje - 18/11/2009 16:02
Avatar van Ruultje Nieuw lid Is niet erg. Ik was zelf ook later omdat ik geen reactie had gekregen via de mail. Bij deze trouwens wel.

Ik ben inderdaad nog niet zolang hiermee bezig. Ik zal in ieder geval deze gaan nalezen, want het probleem is er nog altijd. Het rare is wanneer ik de 'echo' eruit haal bij de stylesheet dat die het dan wel doet. Terwijl ik voorheen altijd de echo deed gebruiken.

Ik heb jouw code ook uitgeprobeerd. Ik heb als test een hele lege pagina gepakt en alleen deze code erin.

Ik krijg dan dit te zien.

  1. C:/wamp/www//test/subdir/filename


Ik zal de pagina in ieder geval nalezen in de hoop dat het probleem dan opgelost raakt.

En inderdaad ik wil het allemaal kunnen, maar merk dat dit absoluut nog niet het geval is. Zeker wat betreft php codes etc.
Offline Abbas - 18/11/2009 18:49
Avatar van Abbas Gouden medaille

Crew .NET
Zoals je kan zien dan staat er een '/' te veel tussen www en test!
Offline Ruultje - 19/11/2009 20:40
Avatar van Ruultje Nieuw lid Ik zag dit inderdaad. Ik heb inmiddels alles gedeïnstalleerd en weer overnieuw geïnstalleerd, toen werkte alles weer gewoon. Dus zal ergens iets mis gegaan zijn, denk ik.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.251s