Avatar billede Slettet bruger
03. marts 2005 - 14:04 Der er 14 kommentarer og
1 løsning

opendir() og readdir() på fremmed server - evt. alternativ metode

Jeg er igang med at lave en hjemmeside til min skoleklasse, og har derfor fået tildelt ubegrænset plads på skolens server. Derudover har jeg et webhotel med adgang til php.
Er der nogen der kan sige mig hvordan jeg kan se en liste over filer/mapper i en mappe på en på min skoles server, hvis det kun er mit andet webhotel der understøtter php. Jeg er i stand til at ændre CHMOD på de forskellige mapper.
Hvis jeg prøver med opendir("http://www.fefe.ds/sti/til/mappe/"); siger den at mappen ikke eksisterer.

Det skal lige siges at jeg har scriptet til at gøre det i en lokal mappe. Kan bare ikke få den til at virke over HTTP.
Avatar billede olebole Juniormester
03. marts 2005 - 14:36 #1
<ole>

Alt er præcis, som det skal være!
Undskyld min sarkasme, men prøv lige at bruge den skaldede side af hovedet. Så kunne du jo liste enhver mappe på WWW  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
03. marts 2005 - 14:41 #2
jeg tænkte bare på om det var muligt at give nogle rettigheder til det.
Eller kan jeg (hvis jeg får php på den anden server også) lægge et script på den server, og så kalde det fra webhotellet
Avatar billede Slettet bruger
03. marts 2005 - 14:45 #3
det sidste var ment som et spørgsmål ;)
Avatar billede olebole Juniormester
03. marts 2005 - 14:52 #4
Ja, det sidste kan du godt gøre  ;o)
Avatar billede olebole Juniormester
03. marts 2005 - 14:55 #5
- svarer det mon faktisk ikke til det, du allerede har testet på Hotel2?  :)
Avatar billede Slettet bruger
03. marts 2005 - 14:58 #6
hvis jeg bare bruger en normal include, henter den jo filer fra en mappe på den lokale server. Jeg skal have den til at execute scriptet på remote serveren fra et script på den lokale server.. hvis du forstår?
Avatar billede Slettet bruger
03. marts 2005 - 15:01 #7
for at forsklare lidt bedre..

jeg har et galleri på server 1 i mappen pictures/ jeg vil så have en liste over disse filer vist via server 2.
Derfor har jeg lagt et script i ../ på server 1, som jeg includer på server 2, men den viser stadig ikke indholdet af mappen pictures/ på server 1, men indholdet af samme mappe på server 2.
Avatar billede olebole Juniormester
03. marts 2005 - 15:04 #8
Nej, hvis scriptet ligger i en mappe på server 1, kan det ikke liste en mappe på server 2. Det må være noget andet, du gør. Hvordan ser dine filer ud?
Avatar billede Slettet bruger
03. marts 2005 - 15:07 #9
script på server1 open.php
<?
$h = @opendir($dir);
?>
index.php på server 2

<?
function scandir($dir, $no_dots=TRUE) {

  $files = array();
  include("http://www.frborg-gymhf.dk/03U/opendir.php");
  //$dh  = @opendir($dir);
  if ($dh!=FALSE) {
      while (false !== ($filename = readdir($dh))) {
          if (is_dir($dir.$filename))
          $files[] = $filename;
      }

      sort($files);

      if ($no_dots) {
          while(($ix = array_search('.',$files)) > -1)
                  unset($files[$ix]);
          while(($ix = array_search('..',$files)) > -1)
                  unset($files[$ix]);
      }
  }
  return $files;
}
function scanfiles($dir, $no_dots=TRUE) {

  $files = array();
  include("http://www.frborg-gymhf.dk/03U/opendir.php");
  //$dh  = @opendir($dir);
  if ($dh!=FALSE) {
      while (false !== ($filename = readdir($dh))) {
          if (!is_dir($dir.$filename))
          $files[] = $filename;
      }

      sort($files);

      if ($no_dots) {
          while(($ix = array_search('.',$files)) > -1)
                  unset($files[$ix]);
          while(($ix = array_search('..',$files)) > -1)
                  unset($files[$ix]);
      }
  }
  return $files;
}

?>
</head>
<body>
<?
if (!$dir) {
    $files = scandir("pictures/");
osv..
Avatar billede Slettet bruger
03. marts 2005 - 15:08 #10
filen på server 1 hedder self. opendir.php
Avatar billede Slettet bruger
03. marts 2005 - 15:09 #11
men er svaret bare at jeg skal smide begge funktioner ind i opendir.php?
Avatar billede olebole Juniormester
03. marts 2005 - 16:58 #12
Du kan ikke hente PHP-kode fra et domæne til et andet ved at inkludere et dokument - og efterfølgende eksekvere koden på 'den nye' server.
Det du kan få ud af et dokument fra en anden server, er kun den HTML, dokumentet spytter ud.

Du skal altså lægge både scandir og scanfiles funktionerne over på den server, hvor mappen og filerne ligger. Så kan du kalde dette dokument udefra og få vist listningen
Avatar billede Slettet bruger
03. marts 2005 - 22:14 #13
tak for hjælpen ;) hvis du vil have pointene, så smid lige et svar.
Avatar billede coderdk Praktikant
04. marts 2005 - 02:35 #14
Det skal lige siges at du godt kan hente PHP-kode fra en anden server, og eksekvere denne på en lokal server, det kræver blot at den anden server returnerer kildekoden, f.eks.:

<?php

  require( "http://example.dk/folder/script.txt" );
  en_smart_funktion_fra_script_txt();

?>

Ikke dermed sagt at dette er en god idé ;)
Avatar billede coderdk Praktikant
04. marts 2005 - 02:36 #15
(Og dette naturligvis også kun såfremt serveren har tilladt fopen url wrappers(
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