Avatar billede iznogood Nybegynder
01. juni 2005 - 00:00 Der er 4 kommentarer og
1 løsning

Angivelse af absolut sti ifm SSI

Jeg har 2 filer (search.php og results.php), som ligger på samme niveau (roden).

Alle filer på samme niveau (roden) kan uden problemer inkludere search.php (som er en ganske lille form med et enkelt felt). Indtaster man noget i formen får man et fint svar fra results.php.

Så vidt så godt.

Når en fil fra et andet niveau (i en mappe) inkluderer search.php går det imidlertid helt galt. Når search.php er inkluderet i den nye side, så 'tror' den, at den ligger i den respektive mappe. Dermed kan den ikke længere finde results.php og hele ideen med SSI er gået tabt.

I ASP løser man dette problem med absolutte stier til search.asp og results.asp - så kan de bruges frit overalt på sitet.

Hvordan løser man det i PHP???
Avatar billede iznogood Nybegynder
01. juni 2005 - 00:12 #1
Udover at placere alle hjemmesidens filer i samme mappe. ;-)
Avatar billede sukos Juniormester
01. juni 2005 - 07:27 #2
På samme måde?
SSI er jo iøvrigt noget andet?
Avatar billede iznogood Nybegynder
01. juni 2005 - 16:01 #3
Det kan ikke være på helt samme måde.

En SSI som denne:
<!--#include virtual="/include/filnavn.asp" -->
Vil i ASP virke overalt på sitet - både i rodbiblioteket, i en mappe, i en undermappe og i en under-undermappe etc. jeg kan altså flytte frit rundt på filerne - uden at filmen knækker.

I PHP virker følgende:
<?php require("include/filnavn.php"); ?> - i rodbiblioteket
<?php require("../include/filnavn.php"); ?> - i en mappe
<?php require("../../include/filnavn.php"); ?> - i en undermappe
Det giver i mine øjne meget mere arbejde - og filmen knækker så snart jeg eksempelvis kopierer en fil fra et niveau til et andet. Feks, fra en mappe til en undermappe.

Jeg er totalt newbie ifm. PHP - men PHP må da kunne gøre noget tilsvarende ASP. Eller hvad?

Er SSI ikke en ServerSide Include?

mvh

iznogood
Avatar billede sukos Juniormester
12. juni 2005 - 14:22 #4
Jo, SSI er ServerSide Include.
Roder selv kun med apache, og her skal filer hedde *.shtml, og ellers er det nøjagtig det samme :O)

Men det er rigtigt nok, hvis du skriver
require("/include/filnavn.php");
vil PHP kikke i roden af disken, ikke domænet!

Måske du kan bruge
require($_SERVER["DOCUMENT_ROOT"] ."/include/filnavn.php");

evt. kan du starte dit PHP script med:
<?php
ini_set('include_path', "fuld/disk/sti/");

// og derefter bruge

require("include/filnavn.php");

det vil så virke uanset hvor dybt i dirs du befinder dig.
Avatar billede iznogood Nybegynder
22. juni 2005 - 17:52 #5
Lukket
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