Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:11 Der er 18 kommentarer og
1 løsning

udbygning af script

hej er der en person der hurtigt kan tage dette script:
<?php

$side = $_GET['s'];

if(file_exists($side . ".txt")){
  include($side . ".txt");
}else{
  include("index.txt");
}

?>

og gøre således at der henter filer i et subdir.

/rasmus
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:12 #1
altså txt filer ligge i et subdir
Avatar billede bromer Nybegynder
01. april 2005 - 17:14 #2
det er jo bare at angive det i $_GET['s'] som hvis nu $_GET['s'] = 'dir/testfile' så ville du inkludere testfile.txt i mappen dir
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:14 #3
sorry skulle bare  include("subdir/index.txt");
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:16 #4
hvad?
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:16 #5
det syntes jeg ikke liga at forstå?
skal 's' være stien til dir
Avatar billede bromer Nybegynder
01. april 2005 - 17:18 #6
Ja det du skriver virker fint men du kunne også have angivet det i den variabel du sender med rundt.

Hvis $_GET['s'] indeholder 'testfile' og du laver en

include("surdir/" . $_GET['s'] . ".txt"

er det samme som hvis $_GET['s'] ineholder 'surdir/testfile' og du laver en

include($_GET['s'] . ".txt");
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:24 #7
ok ... en ting mere smid et svar du fik jo svaret på spørgsmålet og skal have point.

en anden ting, hvorfor udskriver php siden 'about=' før den udskriver selve txt filen?
Avatar billede bromer Nybegynder
01. april 2005 - 17:32 #8
hvor skriver den "about="?
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:43 #9
lige før selve udskrivningen, jeg har prøvet at fjerne 'include("subdir/index.txt");' også ville den slet ikke åbne og vise filen ??? 's' er ellers lavet om til 'subdir/index.txt' og har prøvet med 'subdir/index' og det virker ikke
Avatar billede bromer Nybegynder
01. april 2005 - 17:46 #10
Og du har ikke mere kode end det du har vist?
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:47 #11
nu har jeg lavet det om til :

<?php

$side = $_GET['subdir/index'];

if(file_exists($side . ".txt")){
  include($side . ".txt");
}else{
  echo 'file do not exists!';
}

?>

og udskriften hedder : file do not exists!

skal jeg have en $fopen eller ?
Avatar billede bromer Nybegynder
01. april 2005 - 17:52 #12
nejnej, nu er du på vej ud at et sidespor. Du angiver en fil med strengen 'somefile', men hvis du gerne vil angive at det skal være fra en mappe kan du angive det med 'mappe/somefile'. Det ændrer kun værdien af $_GET['s']. Det vil sige at $_GET['s'] i vores tilfælde enten indeholder 'somefile' eller 'mappe/somefile'. Det vil sige at din kode skal skrives om til:

<?php

$side = $_GET['s'];

if(file_exists($side . ".txt")){
  include($side . ".txt");
}else{
  echo 'file do not exists!';
}

?>

Du kan så på samme side lave links såsom

<a href="<?=$_SERVER['PHP_SELF'];?>?s=mappe/somefile">mappe/somefile</a> <br/>
<a href="<?=$_SERVER['PHP_SELF'];?>?s=somefile">somefile</a>

Hvis du ser hvordan linksene virker tror jeg du forstår sammenhængen.
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:52 #13
har også prøvet:

<?php

$side = $_GET['index'];

if(file_exists($side . ".txt")){
  include("surdir/" . $_GET['s'] . ".txt"
}else{
  echo 'file do not exists!';
}

?>


det kunne den slet ikke
Avatar billede kingrex666 Nybegynder
01. april 2005 - 17:55 #14
jeg vil ikke linke til txt filerne de skulle bare inkluderes på en side.
Avatar billede bromer Nybegynder
01. april 2005 - 17:55 #15
Nej det er klart. Hvis dit script nu hedder "script.php" indeholder $_GET alle de variabler der bliver overført i uri'en.

For eksmpel vil scipt.php?s=somefile&foo=bar resultere i følgende $_GET

Array (
s => somefile,
foo => bar
)

Det vil sige du kan ikke bruge $_GET['index'] før index bliver sendt med i uri'en som i "script.php?index=hej"
Avatar billede bromer Nybegynder
01. april 2005 - 17:57 #16
Det er ikke fordi jeg vil have du skal linke til filerne, men de to links får dit script til at inkludere forskellige sider og viser dig derfor, hvordan dit script fungerer når du skal hente filer i forskellige mapper.
Avatar billede kingrex666 Nybegynder
01. april 2005 - 18:01 #17
men jeg linker til en 'side.php' som åbens i en iframe. 'siden.php' har en overskrift, indhold og en bund. indholdet er difineret i 'file.txt'det er dette jeg gerne vil have ind på 'siden.php' ligesom med include men det virker ikke
Avatar billede bromer Nybegynder
01. april 2005 - 18:05 #18
Prøv at læse de svar jeg har givet dig igennem og prøv koden for jeg har givet dig flere løsninger...
Avatar billede mysli Nybegynder
02. april 2005 - 09:53 #19
Jeg har lavet følgende function.

Den henter index.php fra en mappe i /modules/, medmindre action er sat, så henter den en spicifik fil, ex;

?module=user&action=edit

henter filen /modules/user/edit.php


function getContent() {
    if (empty($_GET['module'])) {
        $page = "news";
    } else {
        $page = $_GET['module'];
    }

    $include = "modules/" .$page ."/index.php";
   
    if (false == is_file($include)) {
        $include = "file_not_found.php";
    }
       
        if ($_GET['action']){
            $subindex = $_GET['action'];   
            $include = "modules/" .$page ."/" .$subindex .".php";
           
            if (false == is_file($include)) {
        $include = "file_not_found.php";
    }
        }
    include($include);
}
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