[php] includen

Pagina: 1
Acties:
  • 57 views sinds 30-01-2008

  • herminator
  • Registratie: Augustus 2000
  • Niet online
include "include/xml.php";

Dit werkt wel op apache.
Nu moet de site overgezet worden naar IIS
Daar werkt het dus niet.

scxmlobj.php wordt weer geincluded in xml.php met deze regel

require "scxmlobj.php";

Daarmee krijg ik deze fout
Fatal error: Failed opening required 'scxmlobj.php' (include_path='')

/ vervangen door\ en include "\include\xml.php"; werkt ook niet.
scxmlobj.php staat in dezelfde folder als xml.php

I'll be back


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 14-08 12:38

Crazy D

I think we should take a look.

Ik kan het mis hebben :P maar volgens mij rekent IIS de includes vanaf de file die wordt aangeroepen, dan zou je require "include/scxmlobj.php"; eens kunnen proberen.

Exact expert nodig?


Verwijderd

Hmm, probeer het volledige path er eens voor te zetten. Werkt het dan wel?

En, mssn wel dom, maar toch: bestaat dit bestand wel en klopt de naamgeving hiervan (hoofdletters, e.d.) en klopt het path wel in je config instellingen van de webserver?

  • Vigory
  • Registratie: November 2000
  • Laatst online: 15-04 10:26
Crazy_D schreef op 30 juli 2002 @ 23:58:
Ik kan het mis hebben :P maar volgens mij rekent IIS de includes vanaf de file die wordt aangeroepen, dan zou je require "include/scxmlobj.php"; eens kunnen proberen.
Onder Linux is dat toch ook zo, dat includes vanuit de directory van de hoofdfile worden gezien?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Vigory schreef op 31 juli 2002 @ 00:28:
[...]
Onder Linux is dat toch ook zo, dat includes vanuit de directory van de hoofdfile worden gezien?
Niet gewoon vanaf het include-path uit je settings? :)

  • Grum
  • Registratie: Juni 2001
  • Niet online
paar opties (en dan vergeet ik der vast nog wel een stel)

1/ set je include path
2/ in je eerste file een BASEDIR constante opnemen en die voor elke include neerzetten:
code:
1
define( 'BASEDIR', /* pak hier de goede dir */ . '/' );

en vervolgens in alle files
code:
1
include BASEDIR . 'rel/path/to/file';

Verwijderd

Staat SSI aan op die server?
Probeer anders eens <!--#INCLUDE file="bla.php" -->

Ik heb een dergelijk probleem ook in IIS. Het komt omdat de server geen file kan includen vanuit een include. Ik weet niet hoe dat precies zit in PHP op een IIS bak.

Maar ik kan alleen ASP files includen. Op die manier kan hij wel een include in een include verwerken. Als ik een andere extensie pak dan zegt ie "FOUT! dat kan ik niet".

Het heeft waarschijnlijk te maken met de SSI functie op IIS ofzo.

Het zal beslist wel een goede reden hebben, maar waarom stap je over naar een IIS bak? PHP draait toch echt het beste op apache, en nog beter op een unix bak.
/ vervangen door\ en include "\include\xml.php"; werkt ook niet.
scxmlobj.php staat in dezelfde folder als xml.php
Als scxmlobj.php in dezelfde dir staat als xml.php, waarom zet je dan "include/xml.php" als include path? alleen xml.php zou voldoende moeten zijn toch?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Fatal error: Failed opening required 'scxmlobj.php' (include_path='')
Je kan natuurlijk ook gewoon een . in je include path zetten ;) dan kan je relatief werken... ;)

include_path zet je in je php.ini En voor windows staat hij of mij staan in je %WINDIR% (maar dat weet ik niet zeker).

Als je PHP gebruikt als ISAPI moet je de IIS resetten.

Je kan je include path controlleren in je phpinfo()

Programmer - an organism that turns coffee into software.


Verwijderd

Ik weet niet of dit ook werkt met PHP enzo, maar gisteren vond ik bij toeval het volgende in de HTML4.01 specs: de OBJECT definitie.

Hiermee is al het moeilijke gedoe met server-side includes enzo in een aantal gevallen onnodig! Ikzelf wilde een html bestand invoegen in een ander html bestand en dat werkt dus met object gewoon!

Voorbeeld:
<OBJECT data="http://www.w3.org/TR/html401/sgml/loosedtd.html" width="440" height="440">
Warning: als je browser dit niet ondersteund dan wordt dit bericht weergegeven.
</OBJECT>
In je head declaratie moet (dat weet ik dus niet zeker) je wel aangeven dat je volgens de html4.01 standaard werkt. Dat doe je met:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/frameset.dtd">
voor je <html> statement te zetten. ( je kunt kiezen uit strikt, transitional of frameset, de naam van de dtd veranderd dan)

Verwijderd

Als toevoeging op Grum z'n alternatief:
PHP:
1
2
3
4
5
6
7
<?
if (strlen(__FILE__) > strlen(basename(__FILE__))) {
       $BASEDIR = substr(__FILE__, 0, strlen(__FILE__) - strlen(basename(__FILE__)) - 1);
   }
   else { $BASEDIR =  '.'; }
   include($BASEDIR."/bestand.inc.php");
?>

  • herminator
  • Registratie: Augustus 2000
  • Niet online
Ik heb de 2 includes bijelkaar gezet. Dat werkt ook. Nu heb ik dus alleen xml.php waar scxmlobj.php bij in staat. Ik heb ze verder niet apart nodig.

I'll be back


Verwijderd

(jaja weer een oud topic)

Dit probleem hbe ik dus ook op mijn linux-bak. Ik moet of het hele pathinvullen of de komplete URL...... lijkt me niet echt de bedoeling. Op mijn windows XP met apache en PHP werkte het wel perfect......

  • Johnny
  • Registratie: December 2001
  • Laatst online: 21-08 11:56

Johnny

ondergewaardeerde internetguru

Verwijderd schreef op 05 August 2003 @ 15:14:
(jaja weer een oud topic)

Dit probleem hbe ik dus ook op mijn linux-bak. Ik moet of het hele pathinvullen of de komplete URL...... lijkt me niet echt de bedoeling. Op mijn windows XP met apache en PHP werkte het wel perfect......
Ik dnek dat Bosmonster het antwoord al heeft gegeven.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Ik weet het wel zeker, bijna net zo zeker als dat deze kick van een jaar een slot krijgt met zo weinig nieuwe relevante input.

Professionele website nodig?

Pagina: 1

Dit topic is gesloten.