Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  15 1364
index.php : php include($fil);
link til tull.php : index.php?fil=tull.php


Eneste problemet er at ettersom index er forsiden så vil jeg få en feilmelding der fordi jeg ikke har noe "fil" der...skjønner?
Hvordan fikser jeg dette? Laste inn index med tull-linken....
Kanskje ha en rammefil=indexfila eller? Takk btw
<?
$fil = $_GET['fil'];
include("$fil");
?>
men jeg anbefaller deg å bruke en sikrere metode, for med den der kan man include fra hvor som helst og det er ikke lurt
<?
$fil = $_GET['fil'];
if("$fil") {
if(file_exists("./$fil")) {
include("$fil");
}
}
else if(!file_exists("./$fil")) {
include("404.php");
}
else {
include("index2.php");
}
?>
Sist endret av reallife; 1. september 2003 kl. 22:54.
improbable
Gusto's Avatar
DonorAdministrator
if($_GET["fil"]){
include $_GET["fil"];
}

Men det er en usikker løsning. Bruk heller switch og spesifiser i switchen hvilke filer du vil åpne:

switch($_GET["fil"]){

case "tull.php":
include "tull.php";
break;

case "annen.php":
include "annen.php";
break;

}
Ooooh takk, bøyer meg i støvet for raske svar Få se om jeg fikser dette da...
ex-crew uten solbriller
SharQ's Avatar
Pass på at dersom fila ikke er i samme mappe, så vil du trenge full server-path, heller enn web-path.

HJ
improbable
Gusto's Avatar
DonorAdministrator
SharQ: Det kommer an på om safe mode er på eller av. Er den av kan man bruke relativ path istedenfor full path.

Men selv synes jeg at man bør bruke full path uansett.
▼ ... over en måned senere ... ▼
<?
$fil = $_GET['fil'];
if("$fil") {
if(file_exists("./$fil")) {
include("$fil");
}
}
else if(!file_exists("./$fil")) {
include("404.php");
}
else {
include("index2.php");
}
?>
Vis hele sitatet...
Vettu hva... dette skjønte jeg ikke en dritt av... Hvis jeg skriver det sånn:

<?
$fil = $_GET['venstre_meny.php'];
if("$fil") {
if(file_exists("meny_dokumenter/$venstre_meny.php")) {
include("$venstre_meny.php");
}
}
else if(!file_exists("./$venstre_meny.php")) {
include("feil.php");
}
else {
include("index.php");
}
?>

Blir det riktig da ?
improbable
Gusto's Avatar
DonorAdministrator
Nei. Mye rart i den koden der.

if("$fil") { <- aldri putt variabler inni strenger. Ja, det går an i PHP, men PHP er et veldig tilgivende språk. God programmeringsskikk har aldri skadet noen.

Hvor har du deklarert $venstre_meny? Den finnes ikke. Mener du $fil?

Og har du virkelig en adresse som heter f.eks "index.php?venstre_meny.php=verdi"? Slik er det i allefall ut i fra koden din.

Dessuten inkluderer du filene fra feil mappe.

Virker som om du har en del krøll i if-setningene dine også. En masse unødvendig kode. Hvorfor ikke teste koden din selv før du spør oss om det er riktig? Da kan du lese deg fram til riktig parsing ved å lese parse errors.

Og ikke bruk "<?", bruk "<?php". Det finnes mange servere som ikke støtter short tags.

Kode

<?php

$fil = $_GET["foo"]; // henter variabelen foo fra f.eks index.php?foo=bar

// sjekker om foo er satt
if($fil){

  // sjekker om bar.php finnes i meny_dokumenter/
  if(file_exists("meny_dokumenter/".$fil.".php")){
    include("meny_dokumenter/".$fil.".php");

  // bar.php fantes ikke og 404-side lastes.
  }else{
    include("feil.php");

// foo er ikke satt, og hovedsiden lastes
}else{
  include("index.php");

}
?>
På siden min har jeg to menyer, en på venstre side og en på høyre...

På venstre side og høyre side skal det være en egen fil.

Se på bildet under:

http://rariuz.nex0n.net/bilder/hjelp/include.gif

Trenger virkelig hjelp til dette
Sist endret av Lundern; 5. oktober 2003 kl. 13:01.
<?php include("menyvenstre.php");?> Der du vil ha den venstre menyen og <?php include("menyhoyre.php");?> og da forutsetter jeg selvfølgelig at du har den html koden du vil ha til venstre i menyvenstre.php og tilsvarende for høyre.
Når jeg setter inn de kodene blir menyene helt blanke, som dette:

http://rariuz.nex0n.net/test/index.php
ex-crew uten solbriller
SharQ's Avatar
Mulig jeg er blind, men jeg ser ting i menyene dine...?
Det er noe der.

men et nytt spørsmål:

når man har angitt to soner. ta ekempelet til rariuz. en ventre meny og en høyre meny. hvordan får man da byttet ut høyremenyen ved å klikke på en link i venstremenyen!? (i uten å linke til en helt ny php side. index.php?side=nyvenstremeny)
improbable
Gusto's Avatar
DonorAdministrator
chnes: Det kommer jeg ikke til å fortelle deg. Svaret står lenger oppe i denne tråden.
Opprinnelig postet av Gusto
Nei. Mye rart i den koden der.

if("$fil") { <- aldri putt variabler inni strenger. Ja, det går an i PHP, men PHP er et veldig tilgivende språk. God programmeringsskikk har aldri skadet noen.

Hvor har du deklarert $venstre_meny? Den finnes ikke. Mener du $fil?

Og har du virkelig en adresse som heter f.eks "index.php?venstre_meny.php=verdi"? Slik er det i allefall ut i fra koden din.

Dessuten inkluderer du filene fra feil mappe.

Virker som om du har en del krøll i if-setningene dine også. En masse unødvendig kode. Hvorfor ikke teste koden din selv før du spør oss om det er riktig? Da kan du lese deg fram til riktig parsing ved å lese parse errors.

Og ikke bruk "<?", bruk "<?php". Det finnes mange servere som ikke støtter short tags.

Kode

<?php

$fil = $_GET["foo"]; // henter variabelen foo fra f.eks index.php?foo=bar

// sjekker om foo er satt
if($fil){

  // sjekker om bar.php finnes i meny_dokumenter/
  if(file_exists("meny_dokumenter/".$fil.".php")){
    include("meny_dokumenter/".$fil.".php");

  // bar.php fantes ikke og 404-side lastes.
  }else{
    include("feil.php");

// foo er ikke satt, og hovedsiden lastes
}else{
  include("index.php");

}
?>
Vis hele sitatet...
når jeg setter inn denne koden får jeg parse error on line 50 (i min php fil) det er linjen:

Kode

  }else{
er det feil, eller er det bare servern min? (eller et eller annet feil i php fila?)
improbable
Gusto's Avatar
DonorAdministrator
Jeg glemte en } etter include("feil.php"); for å lukke else-setningen konstruktøren befant seg i.