- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema form di registrazione con file upload
-
problema form di registrazione con file upload
ciao a tutti, sto creando un form di registrazione con un pulsante sfoglia, per dare la possibilita' all'utente di caricare una sua immagine. Il problema e' che non funziona, non mi inserisce la foto nel database, e non riesco a capire come mai.
vi posto i codici:
registrazione.php<?php //setto le variabili $dbhost = "localhost"; $dbusername = "root"; $dbuserpass = ""; $dbname = "iscrizione"; //connect to the database mysql_connect ($dbhost, $dbusername, $dbuserpass); if (!mysql_select_db($dbname)) die(mysql_error()); $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; $nome = $_POST['nome']; $cognome = $_POST['cognome']; $giorno = $_POST['giorno']; $mese = $_POST['mese']; $anno = $_POST['anno']; $indirizzo = $_POST['indirizzo']; $citta = $_POST['citta']; $paese = $_POST['paese']; $sesso = $_POST['sesso']; $occhi = $_POST['occhi']; $capelli = $_POST['capelli']; $altezza = $_POST['altezza']; $peso = $_POST['peso']; $nomei = $_POST['nomei']; $cartella = 'images/'; $percorso = $_FILES['miofile']['tmp_name']; $nomei = $_FILES['miofile']['name']; if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") { // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO if (move_uploaded_file($percorso, $cartella . $nomei)) { header ("Location: registrazione.php"); } else { print "Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, <a href=http://www.ccc.com/segnala-errori.asp>clicca qui.</a>"; } } else { echo "ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: <strong>.jpg .png .gif</strong>"; exit(); } $query = "INSERT INTO utenti (username, password, email, nome, cognome, giorno, mese, anno, indirizzo, citta, paese, sesso, occhi, capelli, altezza, peso, nomei) VALUES ('$username','$password','$email','$nome','$cognome','$giorno','$mese','$anno','$indirizzo','$citta','$paese','$sesso','$occhi','$capelli','$altezza','$peso',$nomei')"; mysql_query($query) or die (mysql_error()); echo "<b>$username</b> è stato registrato con successo!<br>"; echo "<b>Questi sono i tuoi dati:</b><br><br>"; echo "<b>Username:</b> $username <br>"; echo "<b>Password:</b> $password <br>"; echo "<b>Email:</b> $email <br>"; echo "<b>Nome:</b> $nome <br>"; echo "<b>Cognome:</b> $cognome <br>"; echo "<b>Data di Nascita:</b> $giorno - $mese - $anno <br>"; echo "<b>Indirizzo:</b> $indirizzo <br>"; echo "<b>Città:</b> $citta <br>"; echo "<b>Paese:</b> $paese <br>"; echo "<b>Sono:</b> $sesso <br>"; echo "<b>Colore Occhi:</b> $occhi <br>"; echo "<b>Colore Capelli:</b> $capelli <br>"; echo "<b>Altezza:</b> $altezza <br>"; echo "<b>Peso:</b> $peso <br>"; ?>
modulo.php
<head> <title>Modulo d'iscrizione</title> <style type="text/css"> <!-- .Stile3 {color: #FF0000} --> </style> </head> <body> <center> <div align="center" class="Stile3"> <p><strong>Inserisci i tuoi dati</strong></p> </div> <form action="registrazione.php" method="post" enctype="multipart/form-data" > <table width="403" height="277" border="0" align="center" cellpadding="0" cellspacing="1"> <tr> <td width="138">Username:</td> <td width="262"> <input type="text" name="username" /> </td> </tr> <tr> <td>Password:</td> <td> <input type="password" name="password" /> </td> </tr> <tr> <td>Email:</td> <td> <input type="text" name="email" /> </td> </tr> <tr> <td>Nome:</td> <td> <input type="text" name="nome" /> </td> </tr> <tr> <td>Cognome:</td> <td> <input type="text" name="cognome" /> </td> </tr> <tr> <td>Data di Nascita: </td> <td> <select name="giorno" id="giorno"> <option>01</option> <option>02</option> <option>03</option> <option>04</option> <option>05</option> <option>06</option> <option>07</option> <option>08</option> <option>09</option> <option>10</option> <option>11</option> <option>12</option> <option>13</option> <option>14</option> <option>15</option> <option>16</option> <option>17</option> <option>18</option> <option>19</option> <option>20</option> <option>21</option> <option>22</option> <option>23</option> <option>24</option> <option>25</option> <option>26</option> <option>27</option> <option>28</option> <option>29</option> <option>30</option> <option>31</option> </select> <select name="mese" id="mese"> <option>Gennaio</option> <option>Febbraio</option> <option>Marzo</option> <option>Aprile</option> <option>Maggio</option> <option>Giugno</option> <option>Luglio</option> <option>Agosto</option> <option>Settembre</option> <option>Ottobre</option> <option>Novembre</option> <option>Dicembre</option> </select> <select name="anno" id="anno"> <option>1950</option> <option>1951</option> <option>1952</option> <option>1953</option> <option>1954</option> <option>1955</option> <option>1956</option> <option>1957</option> <option>1958</option> <option>1959</option> <option>1960</option> <option>1961</option> <option>1962</option> <option>1963</option> <option>1964</option> <option>1965</option> <option>1966</option> <option>1967</option> <option>1968</option> <option>1969</option> <option>1970</option> <option>1971</option> <option>1972</option> <option>1973</option> <option>1974</option> <option>1975</option> <option>1976</option> <option>1977</option> <option>1978</option> <option>1979</option> <option>1980</option> <option>1981</option> <option>1982</option> <option>1983</option> <option>1984</option> <option>1985</option> <option>1986</option> <option>1987</option> <option>1988</option> <option>1989</option> </select> </td> </tr> <tr> <td>Indirizzo:</td> <td> <input type="text" name="indirizzo" /></td> </tr> <tr> <td>Città:</td> <td> <input type="text" name="citta" /></td> </tr> <tr> <td>Paese:</td> <td> <select name="paese"> <option>Italia</option> <option>Spagna</option> <option>Germania</option> <option>Francia</option> <option>Portogallo</option> <option>Svizzera</option> </select> </td> </tr> <tr> <td>Sono:</td> <td> <input type="radio" name="sesso" value="uomo" /> Uomo <input type="radio" name="sesso" value="donna" /> Donna </td> </tr> <tr> <td>Colore Occhi: </td> <td> <select name="occhi"> <option>Marroni</option> <option>Neri</option> <option>Azzurri</option> <option>Viola</option> <option>Grigi</option> <option>Verdi</option> </select></td> </tr> <tr> <td>Colore Capelli:</td> <td> <select name="capelli"> <option>Marroni</option> <option>Neri</option> <option>Biondi</option> <option>Rossi</option> </select> </td> </tr> <tr> <td>Altezza:</td> <td> <select name="altezza"> <option>1m 50</option> <option>1m 55</option> <option>1m 60</option> <option>1m 65</option> <option>1m 75</option> <option>1m 80</option> <option>1m 85</option> <option>1m 90</option> <option>1m 95</option> </select> </td> </tr> <tr> <td>Peso:</td> <td> <select name="peso"> <option>50 kg</option> <option>55 kg</option> <option>60 kg</option> <option>65 kg</option> <option>70 kg</option> <option>75 kg</option> <option>80 kg</option> <option>85 kg</option> <option>90 kg</option> <option>95 kg</option> <option>100 kg</option> </select> </td> </tr> <tr> <td> </td> <td> <input name="miofile" type="file" id="miofile" > <input name="submit" type="submit" value="Invia" /></td> </tr> </table> </form> <p align="center"> </p> <p align="center"> </p> <p> </p> </body> </html>
nel database ho messo un campo di nome nomei con tipo varchar (255), ma niente non ne vuole sapere niente. Mi sapete dire come mai?
Questa e' la scritta che mi compare quando provo ad inviare il form con foto:
ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: **.jpg .png .gif** ** ```** **grazie in anticipo**
-
ma che tipo di immagine posti?
sicuramente l'if
if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png")è false e quindi ti stampa l'echo del else, prova a fare una
echo $_FILES["miofile"]["type"] prima dell'if e guarda che valore ha.
-
mi da quest'errore:
**Parse error**: syntax error, unexpected T_IF, expecting ',' or ';' in **C:\wamp\www\modulo\registrazione.php** on line **31** ** ```** **e la riga seguente** **``` ** if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png")
non riesco a capire come mai, provo a caricare un'immagine .gif!!
-
senti adesso ho questo codice nel file registrazione.php:
<?php //setto le variabili $dbhost = "localhost"; $dbusername = "root"; $dbuserpass = ""; $dbname = "iscrizione"; //connect to the database mysql_connect ($dbhost, $dbusername, $dbuserpass); if (!mysql_select_db($dbname)) die(mysql_error()); $username = $_POST['username']; $password = $_POST['password']; $email = $_POST['email']; $nome = $_POST['nome']; $cognome = $_POST['cognome']; $giorno = $_POST['giorno']; $mese = $_POST['mese']; $anno = $_POST['anno']; $indirizzo = $_POST['indirizzo']; $citta = $_POST['citta']; $paese = $_POST['paese']; $sesso = $_POST['sesso']; $occhi = $_POST['occhi']; $capelli = $_POST['capelli']; $altezza = $_POST['altezza']; $peso = $_POST['peso']; $nomei = $_POST['nomei']; $cartella = 'images/'; $percorso = $_FILES['miofile']['tmp_name']; $nomei = $_FILES['miofile']['name']; echo $_FILES['miofile']['type'] ; if($_FILES["miofile"]["type"] == "image/gif" || $_FILES["miofile"]["type"] == "image/jpg" || $_FILES["miofile"]["type"] == "image/png") { // ESEGUO L'UPLOAD CONTROLLANDO L'ESITO if (move_uploaded_file($percorso, $cartella . $nomei)) { header ("Location: registrazione.php"); } else { print "Si sono verificati dei problemi durante l'Upload. Ti preghiamo di segnalarci il problema, <a href=http://www.ccc.com/segnala-errori.asp>clicca qui.</a>"; } } else { echo "ATTENZIONE. Puoi caricare solamente file con la seguenti estenzioni: <strong>.jpg .png .gif</strong>"; exit(); } $query = "INSERT INTO utenti (username, password, email, nome, cognome, giorno, mese, anno, indirizzo, citta, paese, sesso, occhi, capelli, altezza, peso, nomei) VALUES ('$username','$password','$email','$nome','$cognome','$giorno','$mese','$anno','$indirizzo','$citta','$paese','$sesso','$occhi','$capelli','$altezza','$peso',$nomei')"; mysql_query($query) or die (mysql_error()); echo "<b>$username</b> è stato registrato con successo!<br>"; echo "<b>Questi sono i tuoi dati:</b><br><br>"; echo "<b>Username:</b> $username <br>"; echo "<b>Password:</b> $password <br>"; echo "<b>Email:</b> $email <br>"; echo "<b>Nome:</b> $nome <br>"; echo "<b>Cognome:</b> $cognome <br>"; echo "<b>Data di Nascita:</b> $giorno - $mese - $anno <br>"; echo "<b>Indirizzo:</b> $indirizzo <br>"; echo "<b>Città:</b> $citta <br>"; echo "<b>Paese:</b> $paese <br>"; echo "<b>Sono:</b> $sesso <br>"; echo "<b>Colore Occhi:</b> $occhi <br>"; echo "<b>Colore Capelli:</b> $capelli <br>"; echo "<b>Altezza:</b> $altezza <br>"; echo "<b>Peso:</b> $peso <br>"; ?>
ma mi esce quest'errore:
image/gif **Warning**: Cannot modify header information - headers already sent by (output started at C:\wamp\www\modulo\registrazione.php:30) in **C:\wamp\www\modulo\registrazione.php** on line **36** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1
-
non è un errore è un warning è una cosa diversa, li puoi disabilitare e non ti compare più nulla.
Comunque se metti questa:if (move_uploaded_file($percorso, $cartella . $nomei))
{
header ("Location: registrazione.php");
exit();
}ti dovrebbe eliminare quel warning. Infatti il warning ti dice che hai gia fatto un header