Avatar billede mrfunder Nybegynder
19. marts 2007 - 17:00 Der er 7 kommentarer og
1 løsning

Problem med dir, grafik placering

Hej Eksperter!

Jeg er blevet træt af brugere der benytter url'en i browseren til at skrive /content/$navn.php og så ellers åbner mine undersider manuelt, og derved ungår at hente sitets grafiske del.

Til at forhindre dette formål har jeg lavet en Page.php funktion:

----------Page.php----------------
<?php
class Page
{
   
    private $pagename;

    public function __construct($pagename = null)
    {
        $this->setPageName($pagename);
    }

    public function setPageName($pagename)
    {
        if(is_string($pagename))
        {
            $this->pagename = $pagename;
            return true;

        } else {

            $this->pagename = 'MySite';
            return true;
   
    }
    }

    public function getPageName()
    {
        print $this->pagename;
    }   

    public function header()
    {
   
        //print html in header
    }

    public function footer()
    {
   
        //print html in footer
    }
}
?>
----------------------------------
På hver af mine undersider (/content/side.php/) har jeg så lavet en include til min Page funktion: ("../Page.php")
----------Side.php----------------
<?php
include("Page.php");
$page = new Page("Titel");
$page->header();
?>
indhold
<?php
$page->footer();
?>
----------------------------------
Problemet er så bare at min Page funktion kun har en effekt hvis mine undersidder ligger i selve /dir, altså hovedmappen hvor Page.php selv er placeret. Ellers er dir til mit grafik ikke angivet korrekt. (Dette er angivet i $page->header();, og footer();

Forslag søges til hvordan jeg kan lave dette optimalt. Jeg vil gerne holde mine undersider inde i /content/ mappen for at holde styr på placeringerne, måske hvis muligt, i endnu flere undermapper end dette.

På forhånd tak :-)
Avatar billede mrfunder Nybegynder
19. marts 2007 - 17:33 #1
Konstruktive løsningsforslag søges..
Avatar billede dkfire Nybegynder
19. marts 2007 - 17:44 #2
du kan evt bruge $_SERVER['DOCUMENT_ROOT'], som altid vil give roden på din webside.
Så kan du arbejde dig ud fra roden.
Foreksempel:
include($_SERVER['DOCUMENT_ROOT'].'page.php');
som søger for at ligemeget hvor din fil som har denne kode ligger, vil den altid includere page.php som ligger i roden.
håber det var forståligt :-)
Avatar billede mrfunder Nybegynder
19. marts 2007 - 18:02 #3
Funktionen kan helt klart bruges, mit problem nu er så bare at min funktion footer(), indeholder html hvor alle src til mine forskellige billeder er angivet i min CSS fil. Jeg formoder hvis dette skulle virke så skulle det være $_SERVER['DOCUMENT_ROOT']/gfx/mitbillede.png - på denne måde?
Avatar billede mrfunder Nybegynder
19. marts 2007 - 18:03 #4
Altså med andre ord, det er jo ikke noget problem at gå en ../dir tilbage og require min Page.php- men problemet ligger i at få denne til at page den rigtige dictory til grafikken, uanset hvor den er includet fra.
Avatar billede mrfunder Nybegynder
19. marts 2007 - 18:16 #5
Det behøves ikke nødvendigvis at gøres ved brug af min funktion, alle forslag til hvordan det overordnede kan laves er mere end velkomne.
Avatar billede dkfire Nybegynder
19. marts 2007 - 19:36 #6
Henter du kun billeder med <img> ??
Så kunne du gøre noget ala:

echo "<img src=\"$_SERVER['DOCUMENT_ROOT']\img\dingrafik.jpg\" >";
Avatar billede mrfunder Nybegynder
19. marts 2007 - 19:41 #7
Jeg har baggrundsbilleder i mine tabeller, og alle andre billeder er lagt ind i en DIV og sat i min CSS fil. De genkender hinanden via CLASS commandoen.
Avatar billede mrfunder Nybegynder
20. marts 2007 - 08:45 #8
Jeg vælger at lukke, fandt en smart måde at lave det på i min apache konfiguration
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