• User Newbie

    Form Php con Upload

    Salve...sono nuovo di questo forum...e sono nuovo anche per quanto riguarda il linguaggio Php...

    Con l'aiuto di qualche sito qua e la sono riuscito a fare il codice per un form...

    E' sorta la necessità di fare in modo che tramite questo possano essere uppati anche dei file..però non so come procedere..ho avuto dei consigli..ma com'è fatto ora non va...

    chi mi saprebbe aiutare?
    il form php è questo:

    <?
    $dir = "Files/";
    // get posted data into local variables
    $EmailFrom = Trim(stripslashes($_POST['Email']));
    $EmailTo = "[email protected]";
    $Subject = "Music";
    $Username = Trim(stripslashes($_POST['Username']));
    $Titolo = Trim(stripslashes($_POST['Titolo']));
    $Commento = Trim(stripslashes($_POST['Commento']));
    if (is_uploaded_file($_FILES['File']['tmp_name'])){
    if (move_uploaded_file($_FILES['File']['tmp_name'],$dir.$_FILES['File']['name'])) {
    $File = "http://www.mondonotte.net/".$dir.$_FILES['File']['name'];
    }}
    // validation
    $validationOK=true;
    if (Trim($Username)=="") $validationOK=false;
    if (Trim($Titolo)=="") $validationOK=false;
    if (Trim($Email)=="") $validationOK=false;
    if (Trim($Commento)=="") $validationOK=false;
    if (Trim($File)=="") $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 .= $File;
    $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/">";
    }
    ?>

    il form che corrisponde alla pagina html invece è questo:

    <form method="POST" action="http://www.mondonotte.net/Video/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>
     </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>
     </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>
     </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">
     <!--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"> </font><input type="hidden" name="MAX_FILE_SIZE" value="100000" /><font size="2">
    Seleziona il file da inviare: </font> <input name="File" type="file" size="25" /><font size="2"><br />
     </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"> 
    </font></font>
    </form>

    Grazie in anticipo


  • User Newbie

    nessuno sa aiutarmi?


  • User

    che errore ti da


  • User Newbie

    mi manda alla pagina errore quando controlla se esiste il file in quanto il file non viene spostato nella cartella che dico io...

    disabilitando il controllo di esistenza del file il form spedisce la mail..ma ovviamente il file non c'è..


  • User

    ma devi inviare il file che cerchi uplodare come allegato dell'email


  • User Newbie

    no in pratica lo deve prendere dalla cartella dei file temporanei e spostarlo sul server...in email mi arriva solo il link del file che starà sul mio sito


  • User

    La sintassi per caricare un file è questa:

    $percorso = $_FILES['miofile']['tmp_name'];
    $nome = $_FILES['miofile']['name'];
    $cartella = 'news/';

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


  • User Newbie

    spiegami una cosa..io questo form lo tengo in una pagina che sta in una cartella tipo: www.sito.ext/a/b/index.htm

    se come directory metto 'c/'; mi segna www.sito.ext/c/ oppure www.sito.ext/a/b/c/???


  • User

    la seconda


  • User Newbie

    niente..non va..non riesco a capire perchè la funzione move uploaded file non va...ho anche dato il premesso di scrivere sulla cartella...

    ma può essere che la versione di php è vecchia e la funzione non esiste? ma se fosse così..non dovrebbe darmi errore?

    ❌x❌x❌x

    non è che potresti mandarmi un form fatto da te che funziona sicuramente? almeno provo a modificare quello e vedo se va..:fumato:


  • User

    <form method=post action="send_photo.php" enctype="multipart/form-data">
    <input type=file name=file class=testo size=50>
    <input type=submit value=invia>

    questo form funziona sicuro cmq postami i due file che te li controllo


  • User Newbie

    il form.php è quello che leggi su...la pagina sta qua:
    http://www.mondonotte.net/Video/Popup/

    fammi sapere
    grazie


  • User

    molto probabilmente è il name="File" sull'input file, utilizza le lettere minuscole con la sintassi che ti ho inviato


  • User Newbie

    non vaaaaaaaaa 😢

    il form.php che uso ora è questo:

    <?
    $EmailFrom = Trim(stripslashes($_POST['Email']));
    $EmailTo = "[email protected]";
    $Subject = "Music";
    $Username = Trim(stripslashes($_POST['Username']));
    $Titolo = Trim(stripslashes($_POST['Titolo']));
    $Commento = Trim(stripslashes($_POST['Commento']));
    $percorso = $_FILES['file']['tmp_name'];
    $nome = $_FILES['file']['name'];
    $cartella = 'Files/';
    if (move_uploaded_file($percorso, $cartella . $nome)){
    echo"ok";
    }else{
    echo"error";
    }
    //$Filename = $_FILES ['file'] ['name'];
    //$Filetemp = $_FILES ['file'] ['tmp_name'];
    //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/">";
    }
    ?>

    quindi nella mail il link non deve arrivare..però comunque controllando nella cartella non viene messo il file.....

    ma perchèèèèèèèèèè?!?!?!?! eppure dovrebbe funzionare!!!!


  • User

    $cartella = 'Files/';

    stesso discorso a linux potrebbe crere problemi


  • User Newbie

    niente..non va..

    il percorso però è tutto con le maiuscole iniziali..non è che devo cambiarle?
    mondonotte.net/Video/Popup/files/

    in popup sta il form html con la pagina php

    devo cambiare tutto?


  • Super User

    @lilfo said:

    niente..non va..

    il percorso però è tutto con le maiuscole iniziali..non è che devo cambiarle?
    mondonotte.net/Video/Popup/files/

    Se il server è unix/linux i nomi dei files sono case-sensitive,quindi la differenza tra maiuscole e minuscole conta. 😉
    Ciao!


  • User Newbie

    vabeh ma anche se conta mica influisce sul form php? mah...😢