Gå til innhold

Alternativ til frames.. ?


Gjest Slettet-IHWlGMJn

Anbefalte innlegg

Gjest Slettet-IHWlGMJn

Lurer på hva som er den beste måten å inkludere en side inn i en annen side med php? Har ikke funnet noe om det så derfor spør jeg her..

 

Det er altså hovedinnholdet som skal inkluderes. Til nå har jeg gjort det med switch og get, men kan ikke tro at dette er den beste måten..

 

 

Raskt eks. på min måte:

PHP
<html>

<? $page = $_GET[page]; if(!isset($page)){$page == "home";} ?>

<body>

<h1>Min side</h1>

<div id="content"><? switch($page){case "home":include "includes/home.inc";break; case "about":include "includes/about.inc";break;} ?></div>

<div id="footer">Footer blabla..</div>

</body>

</html>

 

Endret av Slettet-IHWlGMJn
Lenke til kommentar
Videoannonse
Annonse

Det er måten jeg gjør det på, og ser ikke noe spesielt galt i den fremgangsmetoden.

 

Men du forenkle scriptet ditt litt, f.eks slik

PHP

<html>

<body>

<h1>Min side</h1>

<div id="content"><? switch($_GET['page']){case "about":include "includes/about.inc.php";break; default: include "includes/home.inc.php";} ?></div>

<div id="footer">Footer blabla..</div>

</body>

</html>

Da går den alltid til home når ikke noe annet matcher. Du bør vel også endre *.inc til *.inc.php slik at man ikke kan åpne inc filene som rene tekst filer, men slik at de blir behandlet som php filer hvis noen skulle åpne dem direkte i nettleseren.

Lenke til kommentar
Gjest Slettet-IHWlGMJn

Takker for svar. Så på mortens script og det var jo en kjekk liten sak..

 

Bruker noe veldig likt no nå, og har gått over til å inkludere et script i stedet for å ha selve scriptet i indexfila.

 

crowly: så du la på .php på filnavnene. Er det no vits egentlig?

Endret av Slettet-IHWlGMJn
Lenke til kommentar
crowly: så du la på .php på filnavnene. Er det no vits egentlig?

8926153[/snapback]

 

Som jeg skrev hvis du har fila about.inc så kan jeg linke til fila direkte med http://url/about.inc og den kan da vises som en tekst fil i nettleseren, så jeg får se hele koden, noe som kanskje ikke er helt ønskelig. Hvis du da kaller fila about.inc.php så vil fila bli kjørt igjennom php behandleren først og koden blir da ikke vist. Dette er kun ett tips jeg har plukket opp.

Mulig apache kan settes opp til å behandle inc filer på lik linje med php, da blir det jo ikke ett problem, eller at man kan begrense denne muligheten med .htaccess, filrettigheter e.l Hvor lett/vanskelig det er å få tilgang til php koden for andre vet jeg ikke mye om, som sagt kun ett tips/anbefaling jeg har lest på andre php forum eller i php guider (husker ikke helt hvor).

 

Å kalle filene *.inc eller *.inc.php er jo ikke nødvendig for å kunne inkludere dem, er kun for å enklere kunne se at dette er filer som blir inkludert. Selv bruker jeg kun *.php på alle filer, om de er inkluderte eller ikke.

 

Edit: Testet dette på min egen server med en test.inc fil med ett enkelt php script, da fikk jeg en "internal server error". Så mulig at dette er ett ikke tema, men alltid kjekt å være på den sikre siden, er jo ikke mye ekstra kode/tekst som skal til ;)

Endret av crowly
Lenke til kommentar
Gjest Slettet-IHWlGMJn

Crowly: Oj.. sorry. Har faktisk klart å overse alt du skrev om filnavnene første gang

 

Har faktisk aldri tenkt over det at mye phpkode som kanskje ikke bør komme ut, ligger ute på serveren min på denne måten! Takker for klast i bakhue

 

Men siden jeg personlig synes det blir mer ryddig med *.inc vil jeg gjerne ha det sånn om mulig.

 

Ståle: Det var jo ikke så veldig informativt med tanke på at jeg ikke har peil på hva addtype er :ohmy: men prøvde nå å lese litt om det og saken er vel at du tvinger filene til å bli no annet.. på en måte? :hmm:

Hva foreslår du å gjøre .inc om til da? Fant ikke ut hvordan man får den til å gå som php, men jeg la inn "AddType text/html .inc" og det fjerner php'n fra skjermbildet, men den ligger ennå i kildekoden.. what to do?

 

EDIT: Enda bedre ville det jo vært om jeg kunne sperre .inc-filene for direkteåpning ved å bruke .htaccess'n. Mulig?

Endret av Slettet-IHWlGMJn
Lenke til kommentar
Gjest Slettet+142

Addtype: AddType application/x-httpd-php .inc

 

htaccess-tingen din:

RewriteEngine On
RewriteRule .*\.inc$ /

 

Noe slikt?

Lenke til kommentar
Gjest Slettet-IHWlGMJn
Addtype: AddType application/x-httpd-php .inc

 

htaccess-tingen din:

RewriteEngine On
RewriteRule .*\.inc$ /

 

Noe slikt?

8926539[/snapback]

Funka å legge inn kun det første du sa. De går som php nå..

 

Aner ikke hva det andre rewriteengine-greiene er for no..?

Lenke til kommentar
Gjest Slettet+142
EDIT: Enda bedre ville det jo vært om jeg kunne sperre .inc-filene for direkteåpning ved å bruke .htaccess'n. Mulig?

8926493[/snapback]

 

Aner ikke hva det andre rewriteengine-greiene er for no..?

8926552[/snapback]

:)

Lenke til kommentar

I httpd.conf fila (hvis du har tilgang til den) så kan du endre AddType application/x-httpd-php til å ha med .inc, min ser i øyeblikket slik ut

 

AddType application/x-httpd-php .php .phps .php3 .phtml .html .htm .shtml .fds

 

etter endring skal den da se slik ut

 

AddType application/x-httpd-php .php .phps .php3 .phtml .html .htm .shtml .fds .inc

 

Men på min server for jeg fortsatt 500 Internal Server Error med denne endringen. Dette er ett område jeg ikke vet så mye om, så det er ikke sikkert at det er riktig.

 

Kan være at det enkleste er å døpe dem om til *.inc.php, en del legger også alle include filer i en egen mappe med navn inc, include osv for å enklere skille dem fra hverandre. Men det er vel ikke noe her som er den "beste" måten å gjøre det på, bare man tar litt høyde for sikkerheten.

 

Edit: Litt sen :w00t:

Endret av crowly
Lenke til kommentar
Gjest Slettet-IHWlGMJn

 

EDIT: Enda bedre ville det jo vært om jeg kunne sperre .inc-filene for direkteåpning ved å bruke .htaccess'n. Mulig?

8926493[/snapback]

 

Aner ikke hva det andre rewriteengine-greiene er for no..?

8926552[/snapback]

:)

8926560[/snapback]

 

Sånn sett ja :cool:

 

Prøvde det, men funket heller dårlig :\ ble kjørt som vanlig tekst

Lenke til kommentar
Gjest Slettet-IHWlGMJn
I httpd.conf fila (hvis du har tilgang til den) så kan du endre AddType application/x-httpd-php til å ha med .inc, min ser i øyeblikket slik ut

 

AddType application/x-httpd-php .php .phps .php3 .phtml .html .htm .shtml .fds

 

etter endring skal den da se slik ut

 

AddType application/x-httpd-php .php .phps .php3 .phtml .html .htm .shtml .fds .inc

8926567[/snapback]

Hm.. okeei. Nå la jeg det rett inn i .htaccess jeg da. Er dette feil? Har ingen ting som heter httpd.conf, men er vel bare å lage om det skulle være nødvendig?

Lenke til kommentar
Gjest Slettet+142

det er ikke feil å legge inn i htaccess. Men legger du det i httpd.conf, gjelder regelen globalt for hele vhosten/domenet :)

 

httpd.conf finner du i apache-mappen, altså hvor du installerte apache.

Lenke til kommentar

httpd.conf er oppsett fila til apache, er ikke sikkert at du bruken den serveren. Men hvis du får det til å funke i .htaccess så jo det bra. Kan bare overse det jeg skrev, da jeg ikke fikk det til å fungere på min server.

 

Generelt sett så er det litt resurssparende å legge til slike ting i web serverens oppsett fil, enn i .htaccess, men det blir ett litt annet tema (som jeg heller ikke vet så alt for mye om ;) )

 

Edit:

gjelder regelen globalt for hele vhosten/domenet
Ikke nødvendigvis, det kommer jo ann på hvordan du setter det opp i <Directory > tagen. F.eks <Directory "/var/www/html"> vil gjelde for hele (forutsatt at det er web rot mappa), mens <Directory "/var/www/html/test"> kun for test mappa og undermapper av test. Endret av crowly
Lenke til kommentar
Gjest Slettet+142
Edit:
gjelder regelen globalt for hele vhosten/domenet
Ikke nødvendigvis, det kommer jo ann på hvordan du setter det opp i <Directory > tagen. F.eks <Directory "/var/www/html"> vil gjelde for hele (forutsatt at det er web rot mappa), mens <Directory "/var/www/html/test"> kun for test mappa og undermapper av test.

8926641[/snapback]

:blush:

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...