Avatar billede koch Nybegynder
08. marts 2005 - 23:48 Der er 37 kommentarer og
1 løsning

Stien til mit bibliotek

Jeg skal have fundet stien til mit bibliotek og bruger nedentsående i filen rod.php
<?php
echo "<html>" . $_SERVER["DOCUMENT_ROOT"] . "</html>";
?>

Jeg får
Notice: Undefined index: DOCUMENT_ROOT in c:\inetpub\mappe\htdocs\rod.php on line 2

er det stien eller en fejl? for det virker ikke når jeg skal have placeret min .htacces fil.
Avatar billede bromer Nybegynder
08. marts 2005 - 23:58 #1
stien til det bibliotek den nuværende fil er i kan du få ved:

<?
echo realpath(dirname($_SERVER['PHP_SELF']));
?>

Se eventuelt

http://dk2.php.net/dirname
http://dk2.php.net/realpath
Avatar billede koch Nybegynder
09. marts 2005 - 00:29 #2
Jeg får så at vide at stien til mit nuværende bibliotek er c:\
Min fil(rod.php) jeg kalder, ligger i htdocs og min fil jeg skal have fat i, ligger et niveau under htdocs i en mappe. Så jeg kan ikke lige få ovenstående til at passe...
Avatar billede bromer Nybegynder
09. marts 2005 - 00:32 #3
Okay. Det lyder umiddelbart meget underligt. Hvis får du hvis du kører:

<?
echo $_SERVER['PHP_SELF'];
?>

Jeg forestiller mig at den er tom sÅ hele dit $_SERVER array er tomt. Hvad sker der hvis du kører

<?
var_export($_SERVER);
?>

Og hvilken PHP version kører du? Hvis du har en virkelig gammel kan det være at informationen ligger i $PHP_SELF, og så kan du få dit nuværende bibliotek med

<?
echo realpath(dirname($PHP_SELF));
?>
Avatar billede koch Nybegynder
09. marts 2005 - 00:34 #4
så får jeg /rod.php
Hvis jeg vil et niveau tilbage så er det bare ../ ?
Avatar billede bromer Nybegynder
09. marts 2005 - 00:38 #5
Ja du kan bruge ".." til at komme et bibliotek tilbage. Nu fik jeg ikke set hvad dine variabler indeholdt, men det ligner med at din DOCUMENT_ROOT ikke er sat. Hvad sker der hvis du kører

<?
echo $DOCUMENT_ROOT;
?>
Avatar billede koch Nybegynder
09. marts 2005 - 00:42 #6
Så får jeg
Notice: Undefined variable: DOCUMENT_ROOT in c:\inetpub\mappe\domname\rod.php on line 4

Der stod sindsygt meget da jeg kørte
<?
var_export($_SERVER);
?>
Avatar billede koch Nybegynder
09. marts 2005 - 00:43 #7
Ups, jeg fik:

Notice: Undefined variable: DOCUMENT_ROOT in c:\inetpub\domname\htdocs\rod.php on line 4
Avatar billede bromer Nybegynder
09. marts 2005 - 00:48 #8
Noget man kan se?
Avatar billede koch Nybegynder
09. marts 2005 - 00:48 #9
ja... der står Notice: Undefined variable: DOCUMENT_ROOT in c:\inetpub\domname\htdocs\rod.php on line 4
Avatar billede bromer Nybegynder
09. marts 2005 - 00:50 #10
Nejnej.. jeg mente din var_export($_SERVER);
Avatar billede koch Nybegynder
09. marts 2005 - 00:54 #11
array ( 'ALLUSERSPROFILE' => 'C:\\\\Documents and Settings\\\\All Users', 'CommonProgramFiles' => 'C:\\\\Program Files\\\\Common Files', 'COMPUTERNAME' => 'WEBHOTELNAVN', 'ComSpec' => 'C:\\\\WINNT\\\\system32\\\\cmd.exe', 'CONTENT_LENGTH' => '0', 'GATEWAY_INTERFACE' => 'CGI/1.1', 'HTTPS' => 'off', 'HTTP_ACCEPT' => 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5', 'HTTP_CONNECTION' => 'keep-alive', 'HTTP_HOST' => 'DOMÆNENAVN', 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; da-DK; rv:1.7.5) Gecko/20041118 Firefox/1.0', 'HTTP_~~~~~~~~~~~~~~~' => '~~~~~~~~~~~~', 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', 'HTTP_KEEP_ALIVE' => '300', 'HTTP_CACHE_CONTROL' => 'max-age=0', 'INSTANCE_ID' => '72', 'LOCAL_ADDR' => '81.19.232.250', 'NUMBER_OF_PROCESSORS' => '1', 'Os2LibPath' => 'C:\\\\WINNT\\\\system32\\\\os2\\\\dll;', 'OS' => 'Windows_NT', 'Path' => 'C:\\\\WINNT\\\\system32;C:\\\\WINNT;C:\\\\WINNT\\\\System32\\\\Wbem', 'PATHEXT' => '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH', 'PATH_INFO' => '/rod.php', 'PATH_TRANSLATED' => 'c:\\\\inetpub\\\\hpbilerdk\\\\htdocs\\\\rod.php', 'PROCESSOR_ARCHITECTURE' => 'x86', 'PROCESSOR_IDENTIFIER' => 'x86 Family 6 Model 7 Stepping 0, AuthenticAMD', 'PROCESSOR_LEVEL' => '6', 'PROCESSOR_REVISION' => '0700', 'ProgramFiles' => 'C:\\\\Program Files', 'REMOTE_ADDR' => '62.107.111.210', 'REMOTE_HOST' => '62.107.111.210', 'REQUEST_METHOD' => 'GET', 'SCRIPT_NAME' => '/rod.php', 'SERVER_NAME' => 'DOMÆNENAVN', 'SERVER_PORT' => '80', 'SERVER_PORT_SECURE' => '0', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'SERVER_SOFTWARE' => 'Microsoft-IIS/5.0', 'SystemDrive' => 'C:', 'SystemRoot' => 'C:\\\\WINNT', 'TEMP' => 'C:\\\\WINNT\\\\TEMP', 'TMP' => 'C:\\\\WINNT\\\\TEMP', 'USERPROFILE' => 'C:\\\\Documents and Settings\\\\NetShowServices.WEBHOTELNAVN', 'windir' => 'C:\\\\WINNT', 'PHP_SELF' => '/rod.php', 'argv' => array ( ), 'argc' => 0, )
Avatar billede bromer Nybegynder
09. marts 2005 - 00:58 #12
Det ligner at du kan bruge PATH_TRANSLATED. Så noget i stil med

<?
echo realpath(dirname($_SERVER['PATH_TRANSLATED']));
?>

Det burde give dig dirnamet.
Avatar billede koch Nybegynder
09. marts 2005 - 01:09 #13
så får jeg c:\inetpub\DOMÆNE\htdocs

Så hvis jeg vil have fat i den mappe hvor jeg skal hente .htpasswd så er det vel bare
så får jeg c:\inetpub\DOMÆNE\mappeHvor.htpasswdEr

Men det virker ikke...
Avatar billede koch Nybegynder
09. marts 2005 - 01:13 #14
har forsøgt at ændre \ til / men det gør ingen forskel
Avatar billede bromer Nybegynder
09. marts 2005 - 01:17 #15
Mener du skal have dobbelt når det er windows. SÅ prøv med

c:\\inetpub\\DOMÆNE\\mappeHvor.htpasswdEr
Avatar billede koch Nybegynder
09. marts 2005 - 01:17 #16
Det jeg forsøger(som virkede da jeg kørte det lokalt) er http://www.webcafe.dk/artikler/apache/htaccesspassword/
Avatar billede bromer Nybegynder
09. marts 2005 - 01:22 #17
Hmm.. hvad får du hvis du angiver:

<?
echo realpath(dirname("."));
?>

Det burde jo egentlig også klare problemet.
Avatar billede koch Nybegynder
09. marts 2005 - 01:25 #18
det giver også c:\inetpub\DOMÆNE\htdocs, det samm som før...
Avatar billede bromer Nybegynder
09. marts 2005 - 01:27 #19
så er det vel der du er. Ahh.. prøv uden realpath.. du vil jo egentlig ikke have den fysiske.. sorry. jeg er en smule træt..
Avatar billede koch Nybegynder
09. marts 2005 - 01:30 #20
så fik jeg et enkelt punktum
Avatar billede bromer Nybegynder
09. marts 2005 - 01:33 #21
okay.. dit problem er super simpelt, men min hjerne koger lige pt :)
Avatar billede koch Nybegynder
09. marts 2005 - 01:34 #22
det glæder mig at høre... altså at det er simpelt...
Avatar billede steenolsen1 Nybegynder
09. marts 2005 - 08:03 #23
Hej koch,

jeg plejer at bruge denne lille scriptting:
<?
echo substr($SCRIPT_FILENAME, 0, strpos($SCRIPT_FILENAME, $SCRIPT_NAME) + 1);
?>

og det virker altid :-)
Avatar billede koch Nybegynder
09. marts 2005 - 20:00 #24
Det er indsat men jeg får
Notice: Undefined variable: SCRIPT_FILENAME in c:\inetpub\domæne\htdocs\rod.php on line 3
Avatar billede bromer Nybegynder
09. marts 2005 - 21:51 #25
Det ligner altså ikke at der er noget galt med den løsning jeg gav dig. Hvor er det lige præcis din .htacces fil ligger?
Avatar billede koch Nybegynder
09. marts 2005 - 22:56 #26
min .htacces fil ligger i htdocs mappen og min .htpasswd ligger i en mappe et niveau under htdocs.
Avatar billede bromer Nybegynder
09. marts 2005 - 23:40 #27
Det er da også det som min kode outputtede... hvad er problemet?
Avatar billede koch Nybegynder
10. marts 2005 - 08:02 #28
Problemet er at det ikke virker! Når jeg klikker på linket som skal være passwordbeskyttet åbnes siden uden at være passwordbeskyttet...
Avatar billede bromer Nybegynder
10. marts 2005 - 13:59 #29
Jamen så det er jo sikkert fordi du ikke har skrevet det rigtige i din .htaccess
Avatar billede sukos Juniormester
10. marts 2005 - 14:06 #30
'SERVER_SOFTWARE' => 'Microsoft-IIS/5.0'

Viser jo at du bruger IIS, og ikke Apache!
Avatar billede sukos Juniormester
10. marts 2005 - 14:06 #31
Hov, tager sgu vist fejl!:O)
Avatar billede sukos Juniormester
10. marts 2005 - 14:07 #32
Næh, det gør jeg da vist ikke alligevel! :O)
Avatar billede bromer Nybegynder
10. marts 2005 - 14:12 #33
koch: Du skriver selv at det virkede lokalt. Du benytter en Apache server lokalt? .htaccess filer fungerer kun på Apache servere så hvis du kører på en IIS er det derfor.
Avatar billede koch Nybegynder
10. marts 2005 - 17:03 #34
Nitte. Beklager tidsspildet. Tak for hjælpen. Er det ok at pointene deles, evt. 10-15
Avatar billede bromer Nybegynder
10. marts 2005 - 17:05 #35
Det styrer du bare helt selv
Avatar billede sukos Juniormester
10. marts 2005 - 19:40 #36
ehh, ikke noget til mig!
Avatar billede koch Nybegynder
10. marts 2005 - 22:46 #37
Jeg siger mange tak for hjælpen til jer begge og tak for tålmodigheden bromer. Du får de velfortjente point ;)
Avatar billede bromer Nybegynder
10. marts 2005 - 22:54 #38
danke :)
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