Avatar billede storkie Nybegynder
02. november 2004 - 18:47 Der er 6 kommentarer og
1 løsning

Include fil laver firkant

Denne stump kode:
<?

function listFiler3($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    while (false !== ($fil2 = readdir($bib))) {
      if($fil2 != "." and $fil2 != ".." and !ereg("^\..+", $fil2)) {
$besked = "[image.php] test";
if ( (strstr($besked, "[$fil2]")))
{
$besked = eregi_replace("\[$fil2\]", include('include/'.$fil2.''), $besked);
echo "$besked";
}

      }
    }


}
}
echo listFiler3("include/");
?>

image.php indeholder: <? echo "hej"; ?>, men i mellem "hej" og "test" kommer dertil at stå en firkant:
hej  test

Hvordan kan det være? Og hvordan kan jeg rette fejlen?
Avatar billede hmortensen Nybegynder
02. november 2004 - 18:50 #1
Kan du ikke bare lave en str_replace("", " ", $var)
Avatar billede storkie Nybegynder
02. november 2004 - 18:54 #2
jo, men tænkte om der ikke er en anden mulighed?
Avatar billede olebole Juniormester
02. november 2004 - 19:50 #3
<ole>

Det er ikke til at se udfra det, du skriver her, hvor du laver fejl - men fejl laver du helt sikkert  :)

Hvorfra kommer i øvrigt '$besked' fra? Umiddelbart ser det ud somom en bruger kan uploade en PHP-fil og få den inkluderet i en anden. I så fald beder du ligefrem om, at en eller anden idiot af en bruger sletter alle data på serveren.

/mvh
</bole>
Avatar billede bojo Nybegynder
02. november 2004 - 20:02 #4
det ser ud til at den \x1 du har foran test er "true" retuneret fra en vellykket include.
Avatar billede bojo Nybegynder
02. november 2004 - 20:04 #5
se og overvej dette

<?

$rc1=@include "include/image.php";
$rc2=@include "include/image.ph";

echo "\n<br />".($rc1==true?"true som ventet":"false");
echo "\n<br />".($rc2==true?"true":"false som ventet");

?>
Avatar billede storkie Nybegynder
03. november 2004 - 18:53 #6
Fik det til at virke sådan her:
<?
$sti = "include/";
$besked = "fisse hul numse [include]image.php[/include] her [include]test.php[/include] jahhhh det virer hejasdasdsa";
  if($bib = @opendir("$sti")) {
    while (false !== ($fil2 = readdir($bib))) {
      if($fil2 != "." and $fil2 != ".." and !ereg("^\..+", $fil2)) {

ob_start();
$include[$fil2] = eregi_replace("\[include]$fil2\[/include]", include("$sti$fil2"), $besked);

$include[$fil2] = ob_get_contents();

ob_end_clean();

      }
    }


}

  if($bib = @opendir("$sti")) {
    while (false !== ($fil2 = readdir($bib))) {
      if($fil2 != "." and $fil2 != ".." and !ereg("^\..+", $fil2)) {

$include[$fil2] = $include[$fil2];
$besked = eregi_replace("\[include]$fil2\[/include]", "<b>$include[$fil2]</b>", $besked);


      }
    }


}

echo $besked;

?>

Jeg har en idé om kan koden kan gøres mere enkelt, så hvis i vil have point så kom med et forslag!
Avatar billede storkie Nybegynder
12. maj 2005 - 18:50 #7
Ingen forslag?
Lukker
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