Newsgroup: it.comp.www.php
Titolo: AIUTO chiusura connessione odbc e cancellazione file

Buonasera,
dopo 2 giorni di tentativi e centinaia di pagine aperte su google, mi
rimanete solo voi. Chiedo un piccolo aiuto su questo problema:
in una applicazione in PHP su un server windows Aruba, devo fare
l'upload di un file (nello specifico un database di Access), leggerne
alcune tabelle e quindi eliminarlo dal server host.
Al momento di cancellare il fine ricevo un messaggio di Access denied e
il file resta li al suo posto. Ho provato di tutto, anche il supefluo.
Al momento il codice è quello che segue, al comando Unlink ottengo l'errore.
 
Grazie in anticipo a chi vorrà darmi una dritta.
Marco
 
-----------------------------------------------------------------------------
 
Per l'apertura del file:
-----------------------------------------------------------------------------
 
$cartella = "../mdb-database/";
$nomefile = $id_club."Stamm.mdb";
$dbq    =    str_replace("/", "\\", $_SERVER["DOCUMENT_ROOT"]) .
"/mdb-database/".$nomefile;
if (!file_exists($dbq)) { echo "Crap!<br />No such file as $dbq"; }
 
$db_connection = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=$dbq", "ADODB.Connection", "", "SQL_CUR_USE_ODBC");
-----------------------------------------------------------------------------
 
Per l'utilizzo dei dati...
-----------------------------------------------------------------------------
 
$sql = "SELECT * FROM Zuechter";
$fancier=odbc_exec($db_connection,$sql);
ecc
ecc
-----------------------------------------------------------------------------
 
Per la chiusura/rimozione del file:
-----------------------------------------------------------------------------
 
$sql=NULL;
odbc_commit($db_connection);
odbc_free_result($fancier);
odbc_close($db_connection);
$db_connection= NULL;
// eliminazione database
$apertura = opendir($cartella);
closedir($apertura);
fclose($cartella.$id_club."Stamm.mdb");
unlink($cartella.$id_club."Stamm.mdb");


l'unica cosa che mi viene in mente è che l'utente con cui gira il server 
web non ha i permessi per cancellare il file, e che quindi il file sia 
in sola lettura per tutti quelli che non sono il proprietario.
prova a cambiare i permessi del file.
 
Ciao

 prova a cambiare i permessi del file.
Proverò anche questo, grazie del suggerimento
 
Marco
 

 unlink($cartella.$id_club."Stamm.mdb");
 
A che serve la sequenza opendir()/closedir()?
 
 
-- 
Andrea
 

 travasa i dati da .mdb a mysql e subito dopo elimina il file.
 
E il codice dell'upload del file qual è?
 
 
-- 
Andrea
 

 E il codice dell'upload del file qual è?
 
in sintesi, questo:
 
$id_club = $_SESSION['s_id_club'];
$target_path = "../mdb-database/";
 
$target_path = $target_path .
$id_club.basename($_FILES['uploadedfile']['name']);
 
$nomefile = basename($_FILES['uploadedfile']['name']);
 
if($nomefile == "Stamm.mdb")
  move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path);
 
Grazie per l'interessamento
 
Marco

 A che serve la sequenza opendir()/closedir()?
 
Direi a nulla, ma ho cominciato a fare prove su prove e alla fine mi è
rimasta li.
 
Grazie per l'interessamewnto
 
Marco
 

 line 266
 
Quindi l'errore è diverso da quello che hai scritto all'inizio, è 
"Permission denied".
Controlla i permessi di  
D:\Inetpub\webs\colombiwebcom\mdb-database\16Stamm.mdb e della cartella 
che lo contiene.
 
 
-- 
Andrea
 

Non chiedetemi perché, ma alla fine ho risolto così:
 
al momento di chiudere il file ho fatto un redirect verso un'altra pagina:
  redirect("./eliminafile.php",FALSE);
 
e da questa la chiusura avviene tranquillamente con la sequenza:
 
$apertura = opendir($cartella);
unlink($cartella.$nomefile);
closedir($apertura);
 
Non è stata fatta alcuna modifica ai permessi del file e/o della
cartella che lo contiene.
Credo che opendir e closedir non servano a nulla, proverò a toglierle ma
al momento non posso toccare nulla perché il programma è in uso.
 
Grazie a tutti
 
Marco
 

 al momento non posso toccare nulla perché il programma è in uso.
 
Compra tanti ceri votivi.
 
-- 
Andrea