Ciao ragazzi, sto facendo una photogallery e devo avere la necessità di caricare anche 5 foto.
Ho preparato questi due file, ma hanno dei difetti! (più avanti vi spiego il perché)
Codice PHP:
...
<form action="../setting.php?act=add&c=foto" enctype="multipart/form-data" method="post">
<input type="file" name="allegato1" id="allegato1" />
<input type="file" name="allegato2" id="allegato2" onClick="document.getElementById('ck_2').checked = ''" /> <input type="checkbox" id="ck_2" name="ck_2" checked="checked" /> Ignora?
<input type="file" name="allegato3" id="allegato3" onClick="document.getElementById('ck_3').checked = ''" /> <input type="checkbox" id="ck_3" name="ck_3" checked="checked" /> Ignora?
<input type="file" name="allegato4" id="allegato4" onClick="document.getElementById('ck_4').checked = ''" /> <input type="checkbox" id="ck_4" name="ck_4" checked="checked" /> Ignora?
<input type="file" name="allegato5" id="allegato5" onClick="document.getElementById('ck_5').checked = ''" /> <input type="checkbox" id="ck_5" name="ck_5" checked="checked" /> Ignora?
...
Codice PHP:
$db = mysql_connect("$hostname_db","$username_db","$password_db") or die("Connessione non riuscita: " . mysql_error());
mysql_select_db("$database_db", $db);
$up1 = $al1['name'];
$up2 = $al2['name'];
$up3 = $al3['name'];
$up4 = $al4['name'];
$up5 = $al5['name'];
if (file_exists("gallery/foto/".$al1['name']))
{
for ($i = 1; $i < 1000000000000000000; $i++) {
if (!file_exists("gallery/foto/".$up1))
{break;}
$up1 = $i.$al1['name'];
}
}
copy($al1['tmp_name'], "gallery/foto/".$up1) or die("Impossibile caricare l'allegato numero 1.");
$query1 = "INSERT INTO foto (src_foto, data_foto, ip_foto, id_album_foto) VALUES ('$up1', NOW(), '$ip', '$select_album')";
if (mysql_query($query1)) {
echo "Foto numero [b]1[/b] caricata con successo!
";
}
if ($ck_2 != '') {
if (file_exists("gallery/foto/".$al2['name']))
{
for ($i = 1; $i < 1000000000000000000; $i++) {
if (!file_exists("gallery/foto/".$up2))
{break;}
$up2 = $i.$al2['name'];
}
}
copy($al2['tmp_name'], "gallery/foto/".$up2) or die("Impossibile caricare l'allegato numero 2.");
$query2 = "INSERT INTO foto (src_foto, data_foto, ip_foto, id_album_foto) VALUES ('$up2', NOW(), '$ip', '$select_album')";
if (mysql_query($query2)) {
echo "Foto numero [b]2[/b] caricata con successo!
";
}
}
if ($ck_3 != '') {
if (file_exists("gallery/foto/".$al3['name']))
{
for ($i = 1; $i < 1000000000000000000; $i++) {
if (!file_exists("gallery/foto/".$up3))
{break;}
$up3 = $i.$al3['name'];
}
}
copy($al3['tmp_name'], "gallery/foto/".$up3) or die("Impossibile caricare l'allegato numero 3.");
$query3 = "INSERT INTO foto (src_foto, data_foto, ip_foto, id_album_foto) VALUES ('$up3', NOW(), '$ip', '$select_album')";
if (mysql_query($query3)) {
echo "Foto numero [b]3[/b] caricata con successo!
";
}
}
if ($ck_4 != '') {
if (file_exists("gallery/foto/".$al4['name']))
{
for ($i = 1; $i < 1000000000000000000; $i++) {
if (!file_exists("gallery/foto/".$up4))
{break;}
$up4 = $i.$al4['name'];
}
}
copy($al4['tmp_name'], "gallery/foto/".$up4) or die("Impossibile caricare l'allegato numero 4.");
$query4 = "INSERT INTO foto (src_foto, data_foto, ip_foto, id_album_foto) VALUES ('$up4', NOW(), '$ip', '$select_album')";
if (mysql_query($query4)) {
echo "Foto numero [b]4[/b] caricata con successo!
";
}
echo "<a href=\"foto.php?act=view\">Torna indietro!</a>";
}
if ($ck_5 != '') {
if (file_exists("gallery/foto/".$al5['name']))
{
for ($i = 1; $i < 1000000000000000000; $i++) {
if (!file_exists("gallery/foto/".$up5))
{break;}
$up5 = $i.$al5['name'];
}
}
copy($al5['tmp_name'], "gallery/foto/".$up5) or die("Impossibile caricare l'allegato numero 5.");
$query5 = "INSERT INTO foto (src_foto, data_foto, ip_foto, id_album_foto) VALUES ('$up5', NOW(), '$ip', '$select_album')";
if (mysql_query($query5)) {
echo "Foto numero [b]5[/b] caricata con successo!
";
}
}
Come vedete, per ogni input di file c'è (tranne il primo) un checkbox. Questo check mi servirà, poi, in setting.php per eseguire un eventuale upload. Se, ad esempio, carico solo tre foto, 2 check rimarranno flaggati e quindi 2 operazioni (la 4 e la 5 nel codice) non dovranno essere eseguite, no?
Il problema, però, è che per controllare i check uso if ($ck_x != ''), ma anche se il check è flaggato mi esegue ciò che sta nell'if e quindi mi riporta all'errore: "Impossibile caricare il file numero 4" perché, effettivamente, al posto 4 non abbiamo inserito niente... come ovviare?