Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Linkki tietyn hakemiston tiedostoista

juhaz [07.08.2007 07:10:47]

#

<?php

 function drop_ext($filu){
   return substr($filu, 0, strrpos($filu, "."));
 }

 $kayttaja = $_COOKIE['user'];
   $lista = glob("*.mbr");

   sort($lista);

   foreach($lista as $tiedosto){
   $osoite = 'http://localhost/web/muokkaa.php?user=' . $kayttaja . '&sivu=' . drop_ext($tiedosto);
   $nimi = drop_ext($tiedosto);
   echo '<a href="' . $osoite . '">' . $nimi . '</a><br>';
}
?>

Edellä olevan kaltaista kyhäelmää käytän, mutta siinä on ongelmana se, että se listaa vain samassa hakemistossa olevat tiedostot? Miten voin listata vaikkapa members/*käyttäjä*/ (*käyttäjä* tulee cookiesta) hakemiston mbr-tiedostot niin, että kuitenkin tuo muuttuja $osoite pysyy muodossa

http://localhost/web/muokkaa.php?user=sejase&sivu=sejase

kayttaja-2791 [07.08.2007 09:17:32]

#

Voit lisätä $lista-muuttujaan kyseisen hakemiston tiedostot (jotka haet uudella glob-kutsulla):

<?php
$lista = glob("*.mbr");

//Escapatetaan, ettei käyttäjänimi "../../../" näytä eri hakemiston tietoja...
$käyttäjä = addslashes($käyttäjä);

$lista = array_merge($lista, glob("./members/{$käyttäjä}/*.mbr"));

sort($lista);

//...jatkuu normaalisti
?>

En ole testannut, mutta eiköhän vähintään idea tule ilmi. Muista tosiaan escapettaa käyttäjän syöte (eli tässätapauksessa käyttäjänimi), jottei sovellukseen tule tietoturvaongelmia.

juhaz [07.08.2007 10:41:14]

#

Pitikin taas väsyneenä koodailla... Tuohon hommaan riitti jo pelkkä str_replace komento :D

Vastaus

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

Tietoa sivustosta