btk- Skrevet 5. mars 2008 Skrevet 5. mars 2008 Hei! Min første post her, selv om jeg har lest en stund.. Er rimelig fersk i php, så bær over med meg om det er et banalt spørsmål. Saken er den at jeg holder på å skrive en side, i denne fasen ligger denne plassert under www/beta/ på ftpserver og altså www.adresse.com/beta/ i browseren. jeg har en del bakgrunnsfiler som ligger lagret i www/beta/library/ - dette er filer som feks menyer, sidebarer, slettebrukerfiler og en del sånne ting. for å gjøre det lettere å linke \ forandre linker når jeg skifter fra www/beta/ til bare www/, så har jeg laget en alias.php-fil hvor jeg har satt feks "$index = 'beta/'; $mainsidebar1 = 'library/main_sidebar1.php' etc - dette funket fint helt til filene jeg har liggende i library skal begynne å prate med hverandre, fordi da blir linkene feil (den finner ikke beta/library/library/) .. noen som har noen tips til hvordan jeg får laget "relative" linker? det jeg ser for meg er rett å slett at det må finnes en kommando som tar meg til det øverste nivået, og at jeg så bare kan legge inn /www/beta/ foran filene i /beta/ og /www/beta/library/ til filene i library...
-morten Skrevet 5. mars 2008 Skrevet 5. mars 2008 Du har $_SERVER['DOCUMENT_ROOT'] osv. Se http://www.php.net/manual/en/reserved.vari...ariables.server Se også outputen fra phpinfo() på din egen server, siden de variablene der varierer litt fra server til server.
btk- Skrevet 5. mars 2008 Forfatter Skrevet 5. mars 2008 hei, og takker for svar.. prøver å få til den set_include_path( get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT'] );, men den hjelper meg vel egentlig ikke noe? det jeg trenger er jo å få laget variablene sånn at de inneholder hele adressen til linken på en måte.. <? $config = 'beta/library/config.php'; $opendb = 'beta/library/config.php'; $closedb = 'beta/library/closedb.php'; $index = 'beta/index.php'; $login = 'beta/library/login.php'; ?> når jeg da kjører <? include($config); ?> i index.php som ligger på rota funker det bra, men når jeg prøver å includere samme fila i login.php som ligger i library prøver den å åpne 'beta/library/beta/library/config.php'.. noen som har vært borti dette før?
Danny92 Skrevet 5. mars 2008 Skrevet 5. mars 2008 (endret) Du brude ikke bruke short tags <? ?>. Grunnen av at det er de fleste webserverne ikke har short tags på, så bruke <?php ?> istede. Edit: Kanskje du includere samme fil to ganger? Er ikke sikker... Endret 5. mars 2008 av dannyboy_1992_
btk- Skrevet 5. mars 2008 Forfatter Skrevet 5. mars 2008 Du brude ikke bruke short tags <? ?>. Grunnen av at det er de fleste webserverne ikke har short tags på, så bruke <?php ?> istede. Edit: Kanskje du includere samme fil to ganger? Er ikke sikker... heia, og takk, skal begynne å gjøre det... problemet er at den kjører linken i fra directoriet den åpne filen er i.. så hvis jeg har en fil åpen fra library (feks login.php) så prøver den å hente linkene fra directory (www/beta/library/) + linkadressen (www/beta/library).. så blir dobbelt opp... feks i msdos hvis du er inn i sju mapper C:\windows\programfiler\adobe\photoshop\images\btk\ og vil til roota, skriver du bare CD \ ... finnes det ikke noe sånt i php?
avalandon Skrevet 5. mars 2008 Skrevet 5. mars 2008 problemet er at den kjører linken i fra directoriet den åpne filen er i.. så hvis jeg har en fil åpen fra library (feks login.php) så prøver den å hente linkene fra directory (www/beta/library/) + linkadressen (www/beta/library).. så blir dobbelt opp... feks i msdos hvis du er inn i sju mapper C:\windows\programfiler\adobe\photoshop\images\btk\ og vil til roota, skriver du bare CD \ ... finnes det ikke noe sånt i php? Hvorfor ikke: (variabelnavnene er selvfølgelig bare et eksempel) $includeConfigInIndex = 'beta/library/config.php'; $includeConfigInLogin = '../../beta/library/config.php';
itsmebth Skrevet 5. mars 2008 Skrevet 5. mars 2008 Det vanlige(?) er vel å bruke include dirname(__FILE__) . '/path/to/file.php';
avalandon Skrevet 5. mars 2008 Skrevet 5. mars 2008 Det vanlige(?) er vel å bruke include dirname(__FILE__) . '/path/to/file.php'; Seff. Beklager mine dumheter.
btk- Skrevet 6. mars 2008 Forfatter Skrevet 6. mars 2008 Det vanlige(?) er vel å bruke include dirname(__FILE__) . '/path/to/file.php'; Seff. Beklager mine dumheter. hei -- dette er jo en måte å gjøre det på, men det vil jo bli mye mye arbeid da jeg har per i dag 40 forskjellige sider som alle skal bruke dette.. per nå så har jeg rett og slett gitt opp ideen om library og lagt alle filene i samme directory.. er det noen soleklare fordeler over å ha ting i ei egen library-mappe utenom at det blir oversiktelig?
Martin A. Skrevet 6. mars 2008 Skrevet 6. mars 2008 (endret) define( 'ROOT_PATH', dirname( __FILE__ ) . "/" ); define( 'BASE_URL', "http://www.mittdomene.no/index.php" ); include ROOT_PATH . "file.php"; echo "<a href='{BASE_URL}?page=heihei'>Test</a>"; // Usikker på om konstanter fungerer i dette tilfellet Ser ikke hvordan dette kan bli uoversiktlig/vanskelig. Så lenge du har dette i index.php, kan du bruke ROOT_PATH i filene du inkluderer. Endret 6. mars 2008 av M4rTiN
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå