standard spartyMedlem sedan sep. 201055 inlägg
Tjena
Jag bygger om min sida och tänker använda php include. Jag vill utgå från rootfoldern i följande rad:
<?php include("/common_header_content.php") ?>
Jag använder samma logik som i html href med ett inledande snedstreck men det vill sig inte. Och tro mig när jag säger att jag googlat på ämnet men inte hittat/förstått vad jag läst.
Så hur kan jag utgå från root oavsett hur djupt ned i foldrarna jag är?
Tack
PeddaMedlem sedan juni 20004 880 inlägg
Du borde kunna använda dig av $_SERVER['DOCUMENT_ROOT']
http://php.net/manual/en/reserved.variables.server.php
standard spartyMedlem sedan sep. 201055 inlägg
Du har bättre svarstid än min uppkoppling Pedda.
Jag la in detta i headern:
<?php include(dirname($_SERVER['DOCUMENT_ROOT']) . / . "common_header_content.php") ?>
Men dessvärre får jag följande felmeddelande:
Adressen du försökte gå till (http://localhost:8888/terms_of_sale.php) är för närvarande inte tillgänglig. Kontrollera att stavning och interpunktion är korrekt i webbadressen (URL:en) och försök sedan hämta sidan igen.
MAMP är igång och filen "common_header_content.php" ligger där i rootfoldern. Eller när jag tänker på det så ligger filen i public_html-foldern. Nu vart jag osäker. Kanske är det inte rootfoldern?
PeddaMedlem sedan juni 20004 880 inlägg
Resulatet på $_SERVER['DOCUMENT_ROOT'] kan skifta beroende hur servern är konfigurerad.
Kör en echo för att se vad den returnerar för dig. Jag tror inte att du ska använda dirname() heller i det här fallet.
standard spartyMedlem sedan sep. 201055 inlägg
Jag kan dessvärre inte echo! Men strunt i det. När jag provade att sätta en punkt framför / så funkar det:
<?php include("./common_header_content.php"); ?>
Jag misstänker att det är lösningen för är det inte så att ../ går upp en nivå och ./ går upp till rootfoldern?
Jesper TMedlem sedan nov. 20017 058 inlägg
<?php
echo "DOCUMENT_ROOT: ".$_SERVER['DOCUMENT_ROOT'];
?>
;)
standard spartyMedlem sedan sep. 201055 inlägg
Ok tack. Det gav "DOCUMENT_ROOT: /Applications/MAMP/htdocs"
Men finns det någon anledning att inte använda "./" egentligen? Jag kan inte php och ser helst att jag inte blandar in mer php än absolut nödvändigt. Jag ska pröva att ladda upp den på internet. funkar det så kör jag på "./".
GunnarDMedlem sedan juni 20014 250 inlägg
standard sparty skrev:
Adressen du försökte gå till (http://localhost:8888/terms_of_sale.php) är för närvarande inte tillgänglig. Kontrollera att stavning och interpunktion är korrekt i webbadressen (URL:en) och försök sedan hämta sidan igen.
MAMP är igång och filen "common_header_content.php" ligger där i rootfoldern. Eller när jag tänker på det så ligger filen i public_html-foldern. Nu vart jag osäker. Kanske är det inte rootfoldern?
Felmeddelandet tyder på att du inte har någon webserver som svarar på port 8888.
Hadde den ditt php skript inte kunnat inkludera filen så hadde du sett det som skall finnas på sidan förutom det du inkluderar.
Variabeln $_SERVER["DOCUMENT_ROOT"] pekar på "public_html" katalogen så common_header_content.php skall ligga i public_html katalogen.
standard spartyMedlem sedan sep. 201055 inlägg
DÅ förstår jag lite mer. Vad pekar då "./"? Det verkar peka på public.html-foldern också för det fungerade när jag laddade upp det på webhotellet? Finns det något rimlig anledning att inte använda sig av "./"?
Mycket frågor blir det :)
Jag betraktar detta som ganska löst men ser gärna svar på frågorna ovan.
Tack ska ni ha
GunnarDMedlem sedan juni 20014 250 inlägg
./ pekar på den katalogen som webserver just då har som aktuell katalog (jämför om du i ett DOS/Kommando fönster skriver cd \foobar då blir \foobar aktuell katalog och ./ pekar på den katalogen).
Man kan aldrig veta (man kan gissa) vad ./ pekar på när det gäller php skript därför är det bättre att skriva in hela sökvägen till filen, då vet man exakt vilken fil man inkluderar.
standard spartyMedlem sedan sep. 201055 inlägg
Dra åt skogen. Det är ju livsfarligt! Jag tänker senare översätta sidan genom en underkatalog /en/ det är därför jag undrar. Jag vill använda samma css js bilder etc. Då vet jag och då är det väl bara att göra rätt då!
klart slut