Avatar billede mantichora Nybegynder
15. maj 2008 - 12:31 Der er 10 kommentarer

getcwd() er et andet domæne

Efter en opgradering fra PHP 4.3.? til 5.2.6, havde vi store problemer med at bruge funktioner som file_exists - den sagde simpelthen at filen ikke fandtes, lige meget hvad.

Efter lang tids søgen, fandt jeg hvad jeg tror er fejlen: at mit current working directory, returneret med getcwd(), påstår jeg er i et helt andet domæne end min side, så file_exists() tjekker tilsyneladende om filen ligger på yyy.dk, i stedet for xxx.dk.

Hosting firmaet kan tilsyneladende ikke finde ud af hvad de skal rette, da de ikke har så meget forstand på PHP - de er vant til ASP. Jeg har hængt i telefon med dem i flere dage nu, uden at komme videre.

Idéer til hvad jeg skal sige til dem?
Serveren kører IIS (vistnok 6.0)
Avatar billede erikjacobsen Ekspert
15. maj 2008 - 14:36 #1
Skriv dit katalog ind som en streng i stedet for at bruge getcwd.
(Og betragt altid PHP på en Windows boks med en smule skepsis...)
Avatar billede mantichora Nybegynder
15. maj 2008 - 14:53 #2
Mit katalog?
Og jeg bruger ikke getcwd() til noget - andet end at finde ud af hvor mit cw dir er. Normalt skriver jeg bare file_exists("$page.php") f.eks. - og så giver den mig FALSE tilbage lige meget hvad, hvilket tyder på den forsøger at hente fra den forkerte cwd.
Avatar billede dkfire Nybegynder
15. maj 2008 - 15:06 #3
Og du er sikker på din variabel hedder $page.php ???
Kunne det tænkes at dette kunne virke:
file_exists($page.".php")
eller
file_exists(dirname(__FILE__).$page.".php");
Avatar billede erikjacobsen Ekspert
15. maj 2008 - 15:13 #4
Ja, det er det jeg mener (dog formuleret lidt tåget...)

$ditkatalog="D:/en/eller/anden/sti;

file_exista("$ditkatalog/$page.php")
Avatar billede dkfire Nybegynder
15. maj 2008 - 15:17 #5
Ja jeg mangler nok nogle / til stien.
Avatar billede erikjacobsen Ekspert
15. maj 2008 - 15:20 #6
Rolig nu, dkfire, jeg mente min formulering var tåget ;)  Og min kode er også fyldt med fejl... Det er vist blevet fyraften.
Avatar billede dkfire Nybegynder
15. maj 2008 - 15:27 #7
erik: var nu også mest ment til min egen kode ;-)
Mener vist nok at der skal en / efter dirname(__FILE__).
Avatar billede erikjacobsen Ekspert
15. maj 2008 - 15:34 #8
Ok så ... det nemmeste ville selvfølgelig være om hosting firmaet ved hvad de foretager sig.
Avatar billede mantichora Nybegynder
15. maj 2008 - 20:11 #9
Jo, det virker med absolutte stier, men det burde jo ikke være påkrævet. Især er der jo et eller andet helt galt, når jeg kan sidde og slette filer  på et helt andet domæne end mit. Godt nok er det en dedikeret server min arbejdsplads ejer, så det er ikke den store katastrofe - men det kunne jo teoretisk lige så godt have været en mere offentlig server.

Jeg prøver også at få min chef til at skifte til en lidt dyrere, og mere professionel, løsning, for det her er uacceptabelt. Men lige nu skal siden bare virke, og hosting firmaet aner ikke hvad der sker, så jeg prøvede her.
Avatar billede mantichora Nybegynder
15. maj 2008 - 20:13 #10
Jeg prøvede også at skifte cdw'en med chdir(), men det har jeg slet ikke adgang til.
Og efter jeg var kommet hjem fra arbejde i dag, fik jeg et opkald fra en tekniker fra webhosten, der mente det måtte være mig der gjorde noget galt i koden.
Det er det nu ikke - både fordi jeg naturligvis ikke skulle kunne lave sådan en seriøs sikkerhedsbrist selv, og fordi det virkede fint på min udviklingsmaskine, hvor PHP 5.2.5 er installeret, så det er ikke noget versionsforskelshalløj.
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

IT-JOB