- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Risolto] Problema script su linux
-
[Risolto] Problema script su linux
Il titolo spiega il problema. Ho questo script che va benissimo in ambiente windows e quando lo carico su Linux non va. Vi linko la parte di codice colpevole:
[php]
function galleria($obj,$dato){
$nImg=$_GET['n']; //cattura l'attributo "n" dall'url
if(!isset($nImg)){
$nImg="1";
}
$imgDirectory="foto"; // cartella principale delle foto
$directory=$imgDirectory."/osso/"; //sottogruppo delle foto
//controlla se il file info.txt esiste nella suddetta cartella altrimenti lo crea
if((!file_exists($directory."info.txt"))||(filesize($directory)!=0)){
$fo=fopen($directory."info.txt","w+");
$file=glob($directory."*.jpg"); //variabile globale per la gestione del formato (default ".jpg");
$c=count($file);
//istruzione per creazione automatica del file.
for($x=0;$x<=$c;$x++){
//scrive un file di testo con dei valori
if($x==0)fwrite($fo,"TITOLO: ;\r\n");
else{
$valore="$x,".$file[$x-1].", ;";
fwrite($fo,"$valore\r\n");
}
}
fclose($fo);
}
else......
[/php]
-
Ma che errore ti stampa ?
-
non so quale errore ti dia, ma mi vengo in mente 2 cose:
-
occhio ai nomi di file e directory, visto che linux distingue tra lettere minuscole e maiuscole al contrario di windows
-
il ritorno a capo in windows e' "\r\n" mentre in linux solo "\n"
poi ce n'e' una terza sul verso delle "slash" che e' invertito in linux e in windows, ma mi sembra che tu abbia gia' provveduto
-
-
Non mi stampa nessun errore , praticamente è un codice che crea una galleria automatizzata.
In che modo?Legge se dentro una cartella FOTO/subcategoria/ esistono dei file .jpg, se esistono crea un file info.txt dove inserisce dati come "TITOLO" e un listato numerato dei file in modo che l'utente possa inserirci dati opzionali come la descrizione.
Tutto questo è gestito con un semplice "if/else". Se il file info.txt non esiste lo crea altrimenti passa alla visualizzazione delle foto.
Però è proprio alla crazione del file info.txt che si blocca. Non esegue questa porzione di codice su LINUX e non crea la galleria poichè non siddisfa l'else.
Come mai quindi su Windows funziona e su Linux no?
-
Hai i permessi per creare e modificare i file in quella cartella in cui esegui lo script?
-
si gli ho dato tutti i permessi possibili =p Ora controllo la problematica del case-sensitive.
-
cmq la galleria è questa:http://www.dotcomleccio.com/gallery/dotGallery.php?subg=osso
-
Il mio livello di conoscenza PHP e Linux si ferma qui...al momento non so come aiutarti. :bho:
Stampa le variabili che usi per debuggare il codice, magari capisci cosa non va.
-
ok ci sono riuscito, c'era una cartella "genitore" che non aveva i permessi di scrittura ^^
-
Ottimo!!
Segnalo come risolto.