Ciao a tutti, sono ancora qui a chiedervi un parere.
Allora, ho un hosting windows su cui sto cercando di far girare un applicativo stupido fatto da me.
In pratica devo caricare dei file pdf, che poi devono essere visualizzati da un frontend.
Questi pdf hanno una descrizione e dei dati accessori che vengono salvati su un db mysql.
Fino all'insert della riga su db nessun problema; sulla tabella salvo il nome del file, alcuni dati accessori e il pdf lo sposto in una cartella (la famigerata public).
Il problema si pone quando devo fare una modifica: non riesco a sovrascrivere il file!.
A questo punto, quindi, ho pensato di fare uno script che verifichi l'esistenza del file, se lo trova lo cancella e quindi carichi il file con quel nome.
Il tutto funziona (mi rendo conto che é contorto, ma non ho trovato altra soluzione...).
Ho fatto delle prove su una riga nuova e tutto funzionava perfettamente.
Quindi ho messo in produzione lo script, e.... non funziona!
lo posto:

Codice PHP:
<?php 
include("include/php/connect_db.php"); 
$id=$_POST["id"]; 
$file $_POST['file']; 
$file2 $_POST['file2']; 
#prelevo dati 
$allegato $_FILES['file']['name']; 
$file_tipo $_FILES['file']['type']; 
$file_temp $_FILES['file']['tmp_name']; 
$file_size $_FILES['file']['size']; 
$file_err $_FILES['file']['error']; 

#prelevo dati del secondo file 
$allegato_eng $_FILES['file2']['name']; 
$file_tipo2 $_FILES['file2']['type']; 
$file_temp2 $_FILES['file2']['tmp_name']; 
$file_size2 $_FILES['file2']['size']; 
$file_err2 $_FILES['file2']['error']; 

$directory "..\\public\\";    //da dove si trova lo script 

chmod($directory0777); 

$SetString ""
if(!empty(
$allegato)) mysql_query("UPDATE prodotti SET allegato = '$allegato' WHERE id_prodotti = $id"); 
if(!empty(
$allegato_eng)) mysql_query("UPDATE prodotti SET allegato_eng = '$allegato_eng' WHERE id_prodotti = $id"); 

$documento $directory.$allegato
$documento_eng $directory.$allegato_eng

if (
$allegato != '' && (file_exists($documento))) { ?> 
<script> alert("Il nome del file che state cercando di caricare é già esistente. Il file verrà sovrascritto. "); </script> 


<?php 
chmod
($allegato0777);   // <-qui mi dà l'errore
$cancellazione unlink ($documento);       // <-qui mi dà l'errore


if ($cancellazione){echo 'file cancellato! Provvedo a caricare il nuovo file'."
"
;} 
}else{ 
echo 
'Il file non é presente; verrà caricato sul server '."
"



$controllois_uploaded_file($file_temp); 
if (
$controllo) { 
echo 
"Il file in lingua italiana é stato caricato sul server correttamente"."
"

}else { 
echo 
"errore"; } 

$spostamento move_uploaded_file($file_temp $directory.$allegato); 
if (!
$spostamento){ 
echo 
"Errore nello spostamento del file, contattare l'amministratore di sistema"."
"
; }else{ 
echo 
"Caricamento e spostamento del file correttamente eseguito."."
"

}
Mi dà errori
sul chmod (Permission denied), sull'unlink (Permission denied) e sulla move_uploaded_file (failed open stream: permission denied).

La mia domanda é: é possibile che php non sovrascriva i file anche se imposto i chmod?
Può essere A...a il problema? sicuramente il mio script non sarà dei più perfetti (criticate criticate, così magari qualcosa lo imparo..da autodidatti si fa quel che si può..) però cavolo..