Buongiorno a tutti,
sto testando il mio sito web su dispositivi mobili e mi sono accorto di un problema al momento dell'upload di file tramite form. Dopo aver selezionato i file che desidero caricare e aver premuto il tasto di submit del form la schermata che mi si apre è una pagina di errore che dice che la pagina di destinazione non è stata trovata, sebbene sia presente sul server. Se però eseguo il refresh della pagina sembra venga trovata perchè mi reindirizza alla pagina del form segnalando che si cerca di caricare il file nell'edificio di un altro utente. Non capisco dove sia il problema perchè da pc tutto funziona normalmente.
Codice PHP:
<?php
session_start();
require_once('mysqlconn.php');
mysql_select_db($database, $utenti);
$id = (int)$_SESSION['id'];
if ($_SESSION['stat'] != true)
header('Location: login.php');
$sql = mysql_query("SELECT * FROM utenti WHERE id = '".$id."' ") or die (mysql_error());
$info = mysql_fetch_array($sql);
$ed = (int)$_POST['edificio'];
$nome = mysql_real_escape_string(htmlspecialchars($_POST['nome']));
$tipo = mysql_real_escape_string(htmlspecialchars($_POST['tipo']));
$nomefile = $_FILES['userfile']['name'];
$controllo = mysql_query("SELECT * FROM edifici WHERE id = '".$ed."' ") or die (mysql_error());
if(mysql_num_rows($controllo) == 0){
header('Location: caricafile.php?ed='.$ed.'&error=1');} //EDIFICIO INESISTENTE
$verifica = mysql_fetch_array($controllo);
if($verifica['utente'] != $id){
header('Location: caricafile.php?ed='.$ed.'&error=2');} //EDIFICIO DI UN ALTRO UTENTE
if(!empty($_FILES["userfile"])) {
foreach ($_FILES["userfile"]["name"] as $indice => $nome) {
if($_FILES["userfile"]["error"][$indice] == 0) { //CONTROLLO NON CI SIANO ERRORI
//$estensione = pathinfo($_FILES["userfile"]["name"][$indice], PATHINFO_EXTENSION);
//if($estensione == "png" || $estensione == "jpg") {
if($_FILES["userfile"]["size"][$indice] < 15000000) { //CONTROLLO DIMENSIONE MINORE DI 15 MB
//SE I CONTROLLI VANNO A BUON FINE, SALVO NEL DB
$data = addslashes(fread(fopen($_FILES['userfile']['tmp_name'][$indice], "rb"),$_FILES['userfile']['size'][$indice]));
$risultato = mysql_query("INSERT INTO file (utente, edificio, nome, tipo, nomefile, file, size, type) VALUES ('".$id."', '".$ed."', '".mysql_real_escape_string($_POST['nome'])."', '".$tipo."', '".$_FILES['userfile']['name'][$indice]."', '".$data."', '".$_FILES['userfile']['size'][$indice]."', '".$_FILES['userfile']['type'][$indice]."') ") or die (mysql_error());
if($risultato) {
echo "File spostato con successo!";
header('Location: edificio.php?ed='.$ed.'');
} else {
die("Errore imprevisto durante lo spostamento dell'immagine!");
}
} else {
die("Il file selezionato è troppo grande, non deve superare 15MB!");
}
/* } else {
die("Estensione non consentita! Hai cercato di caricare un file ." . $estensione . "!");
} */
} else {
die("Errore imprevisto durante il caricamento dell'immagine!");
}
}
} else {
die("Nessun file selezionato.");
}?>