Salve a tutti,
ho un problema che non sono riuscito ancora a risolvere.Voglio creare un form in cui oltre ai vari campi da compilare devo caricare temporaneamente delle foto il cui nnome memorizzo in database solo in un secondo momento.Voglio fare uso dei cookies per tenere traccia dei nomi.Il problema però è che devo clickare 2 volte il pulsante 'Carica foto' per visualizzare la foto nella pagina.
Lo script è più complesso ma posto qui sotto un esemplificazione in cui carico una sola foto.Setto un cookie con una chiave statica il cui contenuto è il nome della foto:
if (isset($_REQUEST["load"])) {
carica_file("../images","image");
$photo_name = $_FILES['image']['name'];
setcookie("x",$photo_name,0);
}
require("base_top.html");
echo "<form method='post' enctype='multipart/form-data'><table>";
$value= $_COOKIE["x"];
echo "<tr><td>Foto [img]../images/$value[/img]</td></tr>"; //Visualizzazione foto in piccolo
echo "<tr><td>Foto</td><td><input type='file' name='image'></td></tr>
<tr><td colspan='2'><input type='submit' name='load' value='Carica foto'></td><tr>
</table>
</form>";
function carica_file($upload_dir,$nome_file){
if(isset($_FILES[$nome_file]) and $_FILES[$nome_file]['name'] != '')
{
$file = $_FILES[$nome_file];
if($file['error'] == UPLOAD_ERR_OK and is_uploaded_file($file['tmp_name']))
{
if (move_uploaded_file($file['tmp_name'], $upload_dir."/".$file['name']))
return true;
else
return false;
}
}
}
Come si vede setto prima il cookie e poi vsualizzo la foto il cui nome ne è il valore; però se carico una foto devo clickare una seconda volta il pulsante per visualizzarla oppure se carico un'altra foto mi mostra quella precedente.Qualcuno sa se mi è sfuggito qualcosa?Grazie