Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ja include()

Krisse7 [28.06.2006 13:10:11]

#

Aloittelen kotisivujen tekemistä php:llä. Tuli kuitenkin ongelma include()-funktion kanssa.

Jos teen kotisivuilleni linkin, esimerkiksi <a href="/index.php"></a> eli käytän tuollaista absoluuttista polkua, linkki toimii niin kuin pitääkin:
domainnimi.net/index.php latautuu, vaikka tiedosto ei itse asiassa palvelimella sijaitsekaan juuressa vaan polku on palvelimella /home/domainnimi/domains/domainnimi.net/public_html/index.php.

Nyt kun käytän include()-funktiota, ei se toimikaan samalla tavalla kuin linkit absoluuttisen polun kanssa, vaan jos sanon include("/head.php"); ei includetukaan /home/domainnimi/domains/domainnimi.net/public_html/head.php vaan AIVAN juuressa oleva /head.php. Noh, tämäkin on kai "niin kuin pitääkin" toimintaa.

Nyt onkin kysymys, onko jotenkin mahdollista sanoa php-tulkille, että includeta tiedosto käyttämällä web-sivujen juurikansiota juurihakemistona, äläkä aivan alimmaista palvelimen juurihakemistoa?

Vai mikä olisi paras tapa includettaa tiedosto, ettei johonkin tiedostoon tarvitse laittaa include("head.php") ja toisessa kansiossa majailevaan tiedostoon include("../../head.php") ja kolmanteen ties mitä... Onko parasta vaan laittaa kaikkiin absoluuttinen polku include("/home/domainnimi/domains/domainnimi.net/public_html/head.php") - jolloin sivujen katselu ei kylläkään toimi omalla koneella testattaessa, koska siinä sivut eivät ole tuollaisen polun päässä?

Blaze [28.06.2006 13:30:39]

#

Krisse7 kirjoitti:

tämäkin on kai "niin kuin pitääkin" toimintaa.

Niin on. URL ja hakemistopolku ovat kaksi täysin eri asiaa.

Krisse7 kirjoitti:

onko jotenkin mahdollista sanoa php-tulkille, että includeta tiedosto käyttämällä web-sivujen juurikansiota juurihakemistona, äläkä aivan alimmaista palvelimen juurihakemistoa?

Palvelimen document root löytyy PHP:n $_SERVER['DOCUMENT_ROOT'] -muuttujasta.

Krisse7 kirjoitti:

Vai mikä olisi paras tapa includettaa tiedosto

Itse suosin suhteellisia polkuja (eli juurikin noita ../../), koska tällöin skriptin ei tarvitse olla juuri document rootissa, vaan sen voi sijoittaa hakemistohierarkiassa muuallekin ilman muutoksia.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta