Sì, ho fatto una stampa e mi restituisce i dati corretti. Anche se non ho capito cosa non funzionasse prima ho fatto un passo oltre e sono riuscito a fare un array-combine tra id e files.
Il problema che non avevo considerato è che un file ha diversi attributi mentre l'id solo uno.
Mi si presenta quindi un problemino non indifferente. Per poter aprire e leggere il mio file (fopen, fread) ho bisogno di mettere in array $_FILES['modifica']['tmp_name'], in questa maniera mi perdo ad esempio il nome del file che diventa array (ecco perchè vedevo solo scritti array).
Il problema è che ho basato la ricostruzione della mia immagine estrapolandone il nome e l'estensione.
Vi viene in mente un modo per combinare ulteriormente gli array e ricavare i restanti attributi?
Posto il codice interessato:
Codice PHP:
<!DOCTYPE html>
<html lang="it">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body onload="document.forms[0].submit();">
<?php
$key=$_POST['key'];
if ($key==1)
{
include '../db/connessione.php';
$id = $_POST['id'];
$percorsothumb = '../images/thumbs/galleria/';
$percorsoimg = '../images/galleria/';
$nomeimg = $_FILES['userFile']['name'];
$estensione = end((explode(".",$nomeimg)));
$alt = $_FILES['userFile']['name'];
$categoria = teatro;
//se sto caricando una nuova foto
if (!empty($_FILES['userFile']['type']))
{
//controllo se l'estensione è supportata
if (!preg_match( '/gif|png|jpeg|jpg/', $estensione))
{echo ('<h1>Errore</h1><br/><h3>estensione ' . $_FILES['userFile']['type'] . ' non suportata</h3>');
die;}
$handle = fopen ($_FILES['userFile']['tmp_name'], "r") or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file</h3>');
$image = fread ($handle, filesize($_FILES['userFile']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file</h3>');
fclose ($handle);
//ridimensiono l'immagine
include'../db/resize2.php';
$handle = fopen ("$percorsothumb$nomeimg", "r") or die ('impossibile aprire il file thumb');
$thumb = fread ($handle, filesize("$percorsothumb$nomeimg")) or die('impossibile leggere il file');
fclose ($handle);
$image = mysql_real_escape_string($image);
$thumb = mysql_real_escape_string($thumb);
//inserisco la foto nel database
$query = 'INSERT INTO galleria (immagine,alt,type,thumb,categoria) VALUES ("' . $image . '","' . $alt . '","' . $_FILES['userFile']['type'] . '","' . $thumb . '","' . $categoria . '")';
$result = mysql_query($query);
//se ci sono errori mi fermo se no..
if (!$result) {die("Errore:" . mysql_error());}
else {
//se si stanno aggiornano
if (isset($_FILES['modifica']))
{
//creo un array
$array = array_combine($id, $_FILES['modifica']['tmp_name']);
///faccio un ciclo delle immagini presenti
foreach ($array as $id => $_FILES['modifica']['tmp_name'])
{
if (!empty($_FILES['modifica']['tmp_name']))
{
$handle = fopen ($_FILES['modifica']['tmp_name'], "r") or die ('<h1>Errore</h1><br/><h3>impossibile aprire il file</h3>');
$modifica = fread ($handle, filesize($_FILES['modifica']['tmp_name'])) or die('<h1>Errore</h1><br/><h3>impossibile leggere il file</h3>');
fclose ($handle);
$modifica = mysql_real_escape_string($modifica);
$altmod = $_FILES['modifica']['name'];
$type = $_FILES['modifica']['type'];
$nomeimgmod = $_FILES['modifica']['name'];
$estensionemod = end((explode(".",$nomeimgmod)));
//ridimensiono l'immagine
include'../db/resizemod.php';
$handle = fopen ("$percorsothumb$nomeimgmod", "r") or die ('impossibile aprire il file thumb');
$thumb = fread ($handle, filesize("$percorsothumb$nomeimgmod")) or die('impossibile leggere il file thumb');
fclose ($handle);
$image = mysql_real_escape_string($image);
$thumb = mysql_real_escape_string($thumb);
//..aggiorno il database
$query = "UPDATE galleria SET
immagine = '" . $image . "',
alt = '" . $altmod . "',
type = '" . $type . "',
thumb = '" . $thumb . "',
categoria = '" . $categoria . "'
WHERE id=$id";
$result = mysql_query($query);
if (!$result) {die("Errore:" . mysql_error());}
else{
?>
<form action="../teatro.php?modifica" method="post">
<input type="hidden" name="var1" value="entra">
</form>
<?php
};
} else {
?>
<form action="../teatro.php?modifica" method="post">
<input type="hidden" name="var1" value="entra">
</form>
<?php
};
};
} else{
?>
<form action="../teatro.php?modifica" method="post">
<input type="hidden" name="var1" value="entra">
</form>
<?php
};
};
//se non sto caricando una nuova foto
} else echo 'da continuare...';
exit;
//controllo se ci sono aggiornamenti
//se ci sono..
//..aggiorno il database
} else {header("location: ../amministra.php?errore=1");}
?>
</body>
</html>
Mi rimangono fuori queste variabili che non so come ricavare:
$altmod = $_FILES['modifica']['name'];
$type = $_FILES['modifica']['type'];
$nomeimgmod = $_FILES['modifica']['name'];
$estensionemod = end((explode(".",$nomeimgmod)));
Grazie