[php]include of ...?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mensen,

Ik ben bezig met een grote website waarbij alles dynamisch is. Ik heb alleen een probleem met het includen van databaseconnects.

Stel:

Ik maak een file index.php waarbij ik de login.php include, Vervolgens gebruik ik de login.php die een connect maakt dmv een include in bijv:

include("../templates/includes/connect-db.php");

(Dit omdat de login ook in een aparte map staat)

Als ik nu bijvoorbeeld via de index de login.php aanspreek wil hij die file includen maar kan hem niet vinden omdat hij vanaf de index rekent.

Ik wil dit probleem voorleggen aan jullie omdat je bijvoorbeeld ook in andere directories kan komen.

Graag hoor ik een reactie :)

Acties:
  • 0 Henk 'm!

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 23-07 18:19
gebruik een absoluut path met $_SERVER["DOCUMENT_ROOT"] ofzo :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
PHP:
1
2
3
4
5
6
7
8
9
<?

$root_path = "./"; 

include($root_path . 'file.php');

//enz enz

?>

Acties:
  • 0 Henk 'm!

  • Suepahfly
  • Registratie: Juni 2001
  • Laatst online: 17-09 17:05
Laat ik nou net het zelfde probleem hebben gehad.

Ik deed alles met absolute paden
PHP:
1
2
3
define("__application_root","/www/application_dir");

include(__application_root."/dirretje/bestandje.ext");


Het zelfde als Swinx $Real zegt. Alleen het voordeel van een define is dat je je niet druk hoeft te maken om de variable scoop, en is dus altijd beschikbaar.
Bovendien hoef je zoiets als dit niet perse in een variable te stoppen, want het veranderd toch niet tijdens runtime.

[ Voor 8% gewijzigd door Suepahfly op 27-04-2004 15:08 ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 27 april 2004 @ 14:32:
Als ik nu bijvoorbeeld via de index de login.php aanspreek wil hij die file includen maar kan hem niet vinden omdat hij vanaf de index rekent.
Dat is niet waar, er wordt sowieso altijd gekeken in de dir van aanroepende file, daarna in de dir van de huidige file, en daarna in de include_path.

Wel |:( als je het mij vraagt, ze draaien dat van de huidige file en de aanroepende file precies om, erg ongelooflijk stomme design fout :r

[ Voor 24% gewijzigd door .oisyn op 27-04-2004 15:49 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Suepahfly

Ik heb jouw scriptje gebruikt maar elke keer als ik dat script wil includen geeft ie een include fout. terwijl ik het absolute pad heb gebruikt

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
<?php

include($_SERVER["DOCUMENT_ROOT"] . "/../templates/includes/connect-db.php');

?>

[ Voor 17% gewijzigd door Verwijderd op 28-04-2004 14:00 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Prospector bedankt. Blijft deze nu actief en kan ik hem vaker aanspreken?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Verwijderd schreef op 28 april 2004 @ 18:44:
Prospector bedankt. Blijft deze nu actief en kan ik hem vaker aanspreken?
Waarom niet?
Ik zou overigens gaan voor iets als dit:
PHP:
1
2
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
include(ROOT.'file.php');

Anders heb je een probleem als je een keertje je software in een submap zet.

Acties:
  • 0 Henk 'm!

Verwijderd

djluc schreef op 28 april 2004 @ 19:50:
Ik zou overigens gaan voor iets als dit:
PHP:
1
2
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
include(ROOT.'file.php');

Anders heb je een probleem als je een keertje je software in een submap zet.
Voor het geval je het nog niet doorhad; Silver heeft de betreffende template directory 1 map onder de www-root zitten. De door jou aangedragen methode zal daarom nooit werken.

Silver moet er echter wel rekening mee houden dat de template directory nu altijd 1 map onder de www-root MOET zitten, niet 1 meer en niet 1 minder. Anders werkt het niet meer. Maar so be it.
Pagina: 1