Problemi con upload

Ciao a tutti.

Sto cercando di far funzionare questo "semplice" script con dei campi da inserire su un db mysql e una foto da uploadare.

Allego parte dello script (nella realtà è molto più complesso perchè comprende molti più campi da inserire nel db).

Tutto funziona perfettamente, tranne l'upload della foto.

Ho testato lo script di upload senza il modulo per l'inserimento nel db e funziona, quando vado a inserirlo sullo script che segue l'upload non va.

<?php 
error_reporting(E_ALL); 
if ($_POST) {   
    procedi();   
}   
else {   
    form();   
}   
 
 function procedi()   
{ 
require_once('connections/connessione.php');

// Upload image
  
$path = "";
$res = copy($HTTP_POST_FILES['file1']['tmp_name'], $path .
$HTTP_POST_FILES['file1']['name']);   // questo singolo script da solo funziona
     
  // recupero i campi di tipo "stringa"  
     
     $cap = trim($_POST['cap']);
        
 // preparo la query   
    $query = "INSERT INTO tabella_annunci (cap) VALUES ('$cap')";   
  
    // invio la query   
    $result = mysql_query($query);   
     if (!$result) {   
        die("Errore nella query $query: " . mysql_error());   
    } 
     
    // chiudo la connessione a MySQL   
   mysql_free_result($result);
    mysql_close();   
  
    $messaggio = urlencode("Inserimento effettuato con successo");   
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);   
}  
 
 function form()
 {
 
   // mostro messaggio   
    if(isset($_GET['msg']))   
        echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
?>

<form action="prova.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input name="cap" type="text" id="cap">



  Cap<br>
  <input name="file1" type="file" id="file1">
  <br>
  <input type="submit" name="Submit" value="Invia">
</form>

<?php   
}   
?>

La cosa strana è che (da quello che so) per fare l'upload bisogna utilizzare una form con metodo POST...e leggendo lo script sembra sia così, ma non so per quale arcano mistero non funziona.

E' possibile che l'if in cima alla pagina dia qualche problema?

Grazie per qualsiasi aiuto possiate darmi.

 :bye:

inviato 9 anni fa
max_72
X 0 X

arrenditi...non ce la farai mai!!! :2funny:

risposto 9 anni fa
max_72
X 0 X
arrenditi...non ce la farai mai!!! :2funny:

Scusate per il post di sopra...ho lasciato il pc loggato su phpnews incustodito e mi hanno fatto sto bello scherzetto...

Chiedo veniaa

risposto 9 anni fa
max_72
X 0 X

se hai dubbi sul primo if prova a modificarlo così:

if ($_POST) {  
    die("dati post inviati"); 
    procedi();   
}   
else {   
    die("dati post NON inviati");
    form();   
} 

che versione di php hai?

perché la variabile $_HTTP_POST_FILES è deprecata

risposto 9 anni fa
Xscratch
X 0 X

La versione di php è la 4.4.4

Ma la cosa assurda è che lo script di upload estrapolato dal codice che ho allegato funziona benissimo...

Il POST funziona...perchè l'if manda, in caso di POST, regolarmente i dati per l'inserimento nel db.

Ho spulciato il codice pezzo per pezzo, ma nulla.

risposto 9 anni fa
max_72
X 0 X

Hai i permessi nella cartella in cui cerchi di copiare il file?

Se sì, prova a sostituire copy() con move_uploaded_file() :

http://it2.php.net/manual/en/function.move-uploaded-file.php

ciao

Lore

risposto 9 anni fa
Lore
Lore
1
X 0 X

nulla non va...

Non dovrebbe essere un problema di permessi...perchè testando lo script dell'upload da solo sullo stesso server funziona regolarmente.

risposto 9 anni fa
max_72
X 0 X

Ho risolto...ma diciamo che è stata una botta di fortuna; e penso che pagherei oro per saperne il motivo.

Ho eliminato la riga:

mysql_free_result($result);

Sono senza parole...non vedo la connessione tra mysql_free_result e lo script per l'upload.

Grazie

 :bye:

risposto 9 anni fa
max_72
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda