Upload Form PHP

  • Creatore Discussione Creatore Discussione lilfo
  • Data di inizio Data di inizio

lilfo

Nuovo Utente
30 Giu 2007
11
0
0
Salve...ho creato un form che da la possibilità di uppare files...

ed è il seguente:

<?
$EmailFrom = Trim(stripslashes($_POST['Email']));
$EmailTo = "music@mondonotte.net";
$Subject = "Music";
$Username = Trim(stripslashes($_POST['Username']));
$Titolo = Trim(stripslashes($_POST['Titolo']));
$Commento = Trim(stripslashes($_POST['Commento']));
$Filename = $_FILES ['File'] ['name'];
$Filetemp = $_FILES ['File'] ['tmp_name'];
if (is_uploaded_file($Filename)) {
if (move_uploaded_file($Filetemp, "Files/$Filename")) {
$Filelink = "http://www.mondonotte.net/Video/Files/".$Filename;
}}
// validation
$validationOK=true;
if (Trim($Username)=="") $validationOK=false;
if (Trim($Titolo)=="") $validationOK=false;
if (Trim($Email)=="") $validationOK=false;
if (Trim($Commento)=="") $validationOK=false;
if (file_exists ($Filelink)) {
$validationOK=true;
} else { $validationOK=false;
}
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.mondonotte.net/Video/Errore/\">";
exit;
}

// prepare email body text
$Body = "";
$Body .= "User: ";
$Body .= $Username;
$Body .= "\n";
$Body .= "Titolo: ";
$Body .= $Titolo;
$Body .= "\n";
$Body .= "E-mail: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Commento: ";
$Body .= $Commento;
$Body .= "\n";
$Body .= "Link File: ";
$Body .= $Filelink;
$Body .= "\n";

// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.mondonotte.net/Video/Ok/\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.mondonotte.net/Video/Errore/\">";
}
?>

Facendo varie prove ho notato che a non funzionare sono i due if con i comandi "is_uploaded_file" e "move_uploaded_file"

tutto il resto funziona bene
qualcuno sa aiutarmi?

Grazie
 
Che errore visualizzi? In ogni caso prova ad usare copy() invce di move_uploaded_file.
 
ho già provato ma non va...
non visualizzo nessun errore nel php...
semplicemente non mi sposta il file..e quindi facendo il controllo con file_exists mi rimanda alla pagina errore....

non riesco proprio a capire quale sia l'errore....
 
Tieni conto che già di per sè il tuo codice è scorretto perchè stai associando variabili ad indici non definiti (il tuo register_global è in of o in on?).
Postami per cortesia il codice del form di invio.
 
allora puoi aiutarmi un pò a correggerlo? ti avviso che io sto codice l'ho scritto perndendo spunto qua e la...io so poco e niente di php :book:

ecco a te:
<form method="POST" action="http://www.mondonotte.net/Video/Popup/form.php" enctype="multipart/form-data">

<p align="center"><font face="Courier New" size="2">Username:</font><font face="Courier New"><font size="2"><br>
&nbsp;</font><span style="font-size: 8pt"><font face="Verdana"><!--webbot bot="Validation" s-display-name="Username" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-maximum-length="20" --><input type="text" name="Username" size="20" maxlength="20"></font></span><font size="2">
</font>
</font>
</p>
<p align="center"><font face="Courier New" size="2">Titolo:</font><font face="Courier New"><font size="2"><br>
&nbsp;</font><span style="font-size: 8pt"><font face="Verdana"><!--webbot bot="Validation" s-display-name="Password" s-data-type="String" b-allow-letters="TRUE" b-allow-digits="TRUE" b-value-required="TRUE" i-maximum-length="20" --><input name="Titolo" size="20" maxlength="20"></font></span><font size="2">
</font>
</font>
<p align="center"><font face="Courier New" size="2">E-mail:</font><font face="Courier New"><font size="2"><br>
&nbsp;</font><span style="font-size: 8pt"><font face="Verdana"><!--webbot bot="Validation" s-display-name="Email" b-value-required="TRUE" --><input type="text" name="Email" size="20"></font></span><font size="2">
</font>
</font>
<p align="center">
<font face="Courier New" size="2">Breve commento:</font><p align="center"><font face="Verdana"><span style="font-size: 8pt">
<font face="Courier New">
&nbsp;<!--webbot bot="Validation" b-value-required="TRUE" i-minimum-length="2" i-maximum-length="300" --><textarea name="Commento" rows="4" cols="27"></textarea></font></span></font><p align="center">
<font face="Courier New"><font size="2">&nbsp;</font><input type="hidden" name="MAX_FILE_SIZE" value="500000000" /><font size="2">
Seleziona il file da inviare: </font>
<input type=file name=file class=testo size=25><font size="2"><br />
&nbsp;</font></font><p align="center"><font face="Courier New">
<span style="font-size: 8pt">
<input type="submit" name="Invia" value="Invia"></span><font size="2">&nbsp;
</font></font>
</form>
 
andiamo con ordine:
1) il codice del form è eccessivo per un modulo così piccolo, formattalo solo con i CSS e non usare il tag font, ormai è deprecato
2) Se chiami un campo di input "file" chiama anche il parametro nello stesso modo (ad ed $_FILES ['file'] ['name'] e non $_FILES ['File'] ['name']), non usare maiuscole e minuscole a caso
3) Non dichiarare variabili se non sei sicuro che vengano valorizzate; quindi non
PHP:
$Username = trim(stripslashes($_POST['Username']));
ma:
PHP:
if(isset($_POST['Username'])){$Username = "etc..";}
4) Non usare "is_uploaded_file", non ne hai bisogno se effettui il controllo sugli input, passa direttamente a move_uploaded_file.
 
ma queste se non sbaglio dovrebbero essere piccolezze...forse apparte gli if alla dichiarazione delle variabili...

comunque ho provato senza is uploaded file e ho messo solo così:

if (move_uploaded_file($percorso, $cartella . $nome)){
echo"ok";
}else{
echo"error";
}

ma mi da sempre error...perchè??
 
Bhe non proprio piccolezze :), ad esempio su Linux variabili scritte prima in minuscolo e poi in maiuscolo non vengono riconosciute come identiche.

Ti da errore però l'upload avviene giusto?
 
si si il fatto delle maiuscole e minuscole l'ho corretto...

comunque mi da errore e non invia nemmeno...se lo inviava mi dava ok...
 
Il fatto che il tuo codice l'ho testato (con le correzioni) e invia correttamente, ma stampa comunque l'errore.
Questo perchè contolli tutto con if + la stessa variabile e non sai mai da quale variabile viene l'errore.
 
e non è che potresti inviarmi il codice php e il form corretti?

per sto fatto dell'errore vedo un pò di risolverlo io..almeno questo dovrei saperlo fare..
 
allora non ho fatto altro che mettere tutte le iniziali in minuscolo ed eliminare il controllo if con is_uploaded_file.
Se lavori in remoto su Linux ricordati di impostare i permessi sulla cartella di destinazione.
Nel form ho usato un percorso relativo per l'action.
 
cos'è il percorso relativo per l'action??

dai...io sto form nemmeno so come l'ho fatto...c'era un programma in internet che faceva i form in automatico...di php non ne capisco molto...visto che l'hai già fatto non potresti fare un semplice copia e incolla?

per favore...te ne sarei davvero grato...

:angel:
 
Perchè invece di uppare non correggi il codice con le indicazioni che ti ho dato e me lo posti (magari ripulito da tutto quell'HTML)?
 
perchè non so dove mettere le mani...la pagina html l'ho fatta con front page e non so scrivere direttamente in html...

non so cosa significa usare un percorso relativo per l'action

io pensavo che lo tenessi salvato visto che l'avevi provato e che potevi incollarlo qua....
 
Questo forum server per imparare, non per copiare e incollare, per capire la differenza tra un percorso relativo e uno assoluto basta una semplice ricerca su Google.
 

Discussioni simili