Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Scandir() su unità di rete

    Salve a tutti!
    So che probabilmente tocchero' per l'ennesima volta un problema gia' discusso decine di volte, ma tutte le varie soluzioni proposte nel mio caso non funzionano...

    Sto realizzando uno script di lettura ed esportazione della lista di file e cartelle, ma sono bloccato all'inizio perche' a quanto pare non c'e' verso di far leggere a scandir() unità di rete regolarmente connesse sulla mia macchina, di cui dispongo di tutti i diritti per accesso e lista file, e in cui riesco tranquillamente a navigare da sistema operativo.

    Lo script, a grandi linee, e' questo:

    codice:
    <?php
    
    $file = 1;
    $cartelle = 0;
    
    function scan($directory) {
     	
     	$scandir = scandir($directory);
    	$totali = count($scandir);	
    	$k = 0;
    	global $file;
    	global $cartelle;
    	
    	while ($k < $totali) {
    	 
    	if ((is_dir($directory."\\".$scandir[$k])) AND ($scandir[$k] != ".") AND ($scandir[$k] != "..")) {
    	 	 
    		$cartelle++;
    	 echo "
    [dir] ".$directory."\\".$scandir[$k]."";
    	 scan($directory."\\".$scandir[$k]);
    
    	 }
    	else if (($scandir[$k] != ".") AND ($scandir[$k] != "..")) {
    	 
    	 echo $file."- ".$directory."\\".$scandir[$k];
    	 $file++;
    	 }
    	echo "
    ";
    	$k++;
    	
     }
     
    
     }
    
    // -- codice HTML per modulo e campi di inserimento
    // blablablabla
    // -- /codice HTML
    
    if (IsSet($_POST['submit'])) {
    	
    	$dirok = str_replace("\\\\","\\",$_POST['directory']);
    	scan($dirok);
    	echo "
    [b]FILE TOTALI: $file
    CARTELLE TOTALI: $cartelle
    </span>";
    
    	}
    
    ?>
    Funziona perfettamente con qualsiasi tipo di cartella locale, ma quando vado a inserire il percorso di un'unità di rete connessa, ecco che succede:


    Warning: scandir(L:\) [function.scandir]: failed to open dir: No such file or directory in C:\...\index.php on line 11

    Warning: scandir() [function.scandir]: (errno 2): No such file or directory in C:\...\index.php on line 11


    Suggerimenti?

    Grazie in anticipo...

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cosa c'è dentro $directory?

    una lettera? con un path?

    ciao

  3. #3
    Si', un percorso nel formato:

    C:\Programmi

    o, nel caso dell'unità di rete:

    W:\Programmi

  4. #4
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    hai fatto l'escape della stringa? in pratica il percorso dovrà essere cosi:

    codice:
    C:\\Programmi
    oppure cosi:

    codice:
    C:/Programmi
    Ciao

  5. #5
    Si' il percorso viene accettato, perche' se ne inserisco uno locale (come ad esempio C:\Programmi) lo script funziona... il problema e' che non funziona con le unità di rete, sebbene queste siano regolarmente connesse, funzionanti e visibili dal sistema operativo.

  6. #6

  7. #7
    Utente di HTML.it L'avatar di Graboid
    Registrato dal
    Oct 2004
    Messaggi
    619
    Ho appena provato e mi funziona.
    Non e' che quelle unita' di rete sono navigabili perche' e' stato inserito nome utente e password?
    Oppure perche' sono condivise all'utente con cui ti logghi all'accensione del pc?
    Hai provato a creare una cartella condivisa su un altro pc, dare controllo completo ad everyone e mapparla come unita' di rete?
    Facendo così non dovresti aver problemi.

    Ciao

  8. #8
    Sono percorsi di rete già mappati e funzionanti, nel modulo sullo script inserisco la lettera relativa all'unità di rete mappata. Non capisco perche' non funziona... non credo sia un problema di permessi o roba del genere, perche' come riesco a navigarci da Esplora Risorse, devo poterci navigare anche tramite Apache... o sbaglio? Il server gira pur sempre su questa stessa macchina, e questa macchina ha tutti i privilegi per poter quanto meno fare una lista dei file contenuti nell'unità.


  9. #9
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    cominciamo a parlare di sistemi operativi, cosa monta il tuo server?

  10. #10
    Utente di HTML.it L'avatar di mark2x
    Registrato dal
    Nov 2005
    Messaggi
    1,940
    L'utente con cui gira il tuo webserver DEVE avere i permessi per leggere/scrivere su cartelle di rete.
    Identicamente deve essere riconosciuto come utente abilitato alla lettura/scrittura sulle cartelle remote.

    Come primo tentativo prova a modificare l'utente con cui gira il tuo webserver in root [Linux] / Administrator [Windows].

    [.:: JaguarXF ::.]
    __________________

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.