Avatar billede albertvanharten Nybegynder
06. maj 2007 - 19:33 Der er 5 kommentarer

File_exists checker forkert sti

Jeg kører PHP5.1.22 på en Windows 2003 maskine, under IIS6.0
I IIS har jeg lavet en hjemmeside, som hedder www.denemarkenforum.eu. Den lytter også til dette hostname. Filerne til denne hjemmeside ligger i E:\Websites\ahar\www.denemarkenforum.eu

Indtil videre ikke noget problem.
Så lægger en fil ind i E:\Websites\ahar\www.denemarkenforum.eu, og den kalder jeg test.php.
I filen står følgende:
<?php
if (file_exists('.\test.php'))
{
  echo 'File exists';
}
else
{
  echo 'File does not exist';
}
?>

Så den burde sige, når man kører den fil:
File exists. Enig?

Nu siger den: File does not exist
Den påstår at selve filen ikke eksisterer... Nu lægger jeg i mappen E:\Websites\ahar\albert.vanharten.dk\www.albert.vanharten.dk en fil, som jeg også kalder test.php, men den fil er TOM. Størrelse 0 altså. Bagefter kører jeg www.denemarkenforum.eu/test.php og GÆT hvad den NU siger: File exists...

Hvorfor i alverden tjekker den eksistensen af en fil i en komplet anden sti???

Giv mig svar, og jeg takker Deres kloghed ved at give Dem point ;)
Avatar billede erikjacobsen Ekspert
06. maj 2007 - 19:54 #1
1) Spørg dem, der har sat webserveren op
2) Brug den fulde sti: if (file_exists('E:/Websites/ahar/www.denemarkenforum.eu/test.php'))
Avatar billede hmortensen Nybegynder
06. maj 2007 - 20:09 #2
Evt. $_SERVER['DOCUMENT_ROOT'].'test.php'
Avatar billede albertvanharten Nybegynder
07. maj 2007 - 00:18 #3
@erikjacobsen
Det er lige problemet; det er mig der har sat webserveren op :)
Det virker med hele stien, men det er stadigvæk mærkeligt, at den ikke leder i den samme mappe, hvor websitet kører fra, om en bestemt fil findes.

@hmortensen
Ah, takker, det var lige den jeg ledte efter. Selvom det selvfølgelig ikke er den pæneste løsning, er det i hvert fald en mulighed...
Avatar billede albertvanharten Nybegynder
07. maj 2007 - 03:47 #4
Problemet kan kortfattes på følgende måde:
PHP tror ikke at den nuværende mappe, hvor en hjemmeside kører fra, eksisterer.

I en mappe, hvor der ligger "test.php" og "test2.php", hvor "test.php" har som indhold
<?php
include('./test2.php');
?>
får jeg: failed to open stream: No such file or directory
Den kigger altså ikke i sin egen mappe. Hvad i alverden gør jeg forkert? Det er lige som at spørge til Jens Jensen: "Jens Jensen, findes Jens Jensen?" "Nej", svarer Jens Jensen. Det er til at rive hårene ud! Pleeeeeease? ;)
Avatar billede albertvanharten Nybegynder
07. maj 2007 - 10:09 #5
Problemet er mere eller mindre løst. Det virker, når man lægger filerne i en UNDERMAPPE.

Jeg har en hjemmeside, som hedder ligger i E:\Websites\ahar\www.denemarkenforum.eu, og den er konfigureret i IIS6 til at pege til den mappe, og lytte til hostname www.denemarkenforum.eu (kig bare, sproget er alligevel volapyk for de fleste ;) ).
Hvis jeg så i den mappe lægger test.php som skal inkludere test2.php, så virker det ikke. Men hvis jeg kopierer begge filer til E:\Websites\ahar\www.denemarkenforum.eu\phorum mens IIS fortsat peger til stien uden "\phorum", så virker det fint, når jeg kører www.denemarkenforum.eu/phorum/test.php.

Så jeg tror at jeg må have glemt et / (backslash), eller måske har jeg sat et for meget... Sikkert i min PHP.INI - jeg aner det faktisk ikke... Nogen der har en idé?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester