- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ordine dei dati non rispettato in database
-
Ordine dei dati non rispettato in database
Salve..ho un problema relativoa un form
praticamente i dati che recupero dal form e che vado a scrivere nel database non rispettano l ordine di appartenenza dovuto...ad esempio
nei campi della tabella seguentinickname provincia comune giorno mese anno
bimbo 30 3 1982 SAcome ben si nota bimbo doveva essere il nickname ma va a scriverlo nel campo provincia della tabella,mentre il campo comune non lo recupera proprio
e al suo interno ci scrive il giorno di nascita,a mese invece inserisci l anno di nascita...
Posto i file script
questa e la pagina d iscrizione
[PHP]
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"></head>
<body class="centro"><table border="0" width="916" cellspacing="6" cellpadding="0">
<tr>
<td class="h8"> </td>
</tr>
<tr>
<td><table height="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td colspan="5"></td> </tr> <tr> <td colspan="5"></td> </tr> <tr> <td rowspan="3"></td> <td ></td> <td valign="top"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td></td> </tr> </table> </td> </tr> <tr> <td> </td> </tr> <tr> <td align="center">MODULO D'ISCRIZIONE AL SITO</td> </tr> <tr> <td> </td> </tr> <tr> <td> L'iscrizione al sito e una procedura semplicissima</td> </tr> <tr> <td class="h8"> </td> </tr> <tr> <td valign="top"> <table width="100%" border="0" cellspacing="8" cellpadding="0"> <tr> <td> <table border="0" cellpadding="0" cellspacing="4" width="840" height="763"> <form method="POST" enctype="multipart/form-data" action="iscrizione.php"> <tr> <td width="84">Nickname</td> <td width="309"><input type="text" value="" name="nickname" maxlength="12"></td> <td rowspan="12" width="4"> <p></p> <p></p> <p></p> <p></td> <td width="423">Il Nickname può essere composto al massimo da 12 caratteri;</td> </tr> <tr> <td width="84">Nome reale</td> <td width="309"><input type="text" value="" name="nome" maxlength="30"></td> <td width="423"> </td> </tr> <tr> <td width="84" align="left" valign="top"> Password<p>Provincia</td> <td width="309"> <input type="password" value="1111" name="password" maxlength="30" size="20"><p> <select name="provincia"> <option selected value="">-</option> <option value="AG">Agrigento</option> <option value="AL">Alessandria</option> <option value="AN">Ancona</option> <option value="AO">Aosta</option> <option value="AR">Arezzo</option> <option value="AP">Ascoli Piceno</option> <option value="AT">Asti</option> <option value="AV">Avellino</option> <option value="BA">Bari</option> <option value="BL">Belluno</option> <option value="BN">Benevento</option> <option value="BG">Bergamo</option> <option value="BI">Biella</option> <option value="BO">Bologna</option> <option value="BZ">Bolzano</option> <option value="BS">Brescia</option> <option value="BR">Brindisi</option> <option value="CA">Cagliari</option> <option value="CL">Caltanissetta</option> <option value="CB">Campobasso</option> <option value="CI">Carbonia-Iglesias</option> <option value="CE">Caserta</option> <option value="CT">Catania</option> <option value="CZ">Catanzaro</option> <option value="CH">Chieti</option> <option value="CO">Como</option> <option value="CS">Cosenza</option> <option value="CR">Cremona</option> <option value="KR">Crotone</option> <option value="CN">Cuneo</option> <option value="EN">Enna</option> <option value="FE">Ferrara</option> <option value="FI">Firenze</option> <option value="FG">Foggia</option> <option value="FC">Forli - Cesena</option> <option value="FR">Frosinone</option> <option value="GE">Genova</option> <option value="GO">Gorizia</option> <option value="GR">Grosseto</option> <option value="IM">Imperia</option> <option value="IS">Isernia</option> <option value="AQ">L Aquila</option> <option value="SP">La Spezia</option> <option value="LT">Latina</option> <option value="LE">Lecce</option> <option value="LC">Lecco</option> <option value="LI">Livorno</option> <option value="LO">Lodi</option> <option value="LU">Lucca</option> <option value="MC">Macerata</option> <option value="MN">Mantova</option> <option value="MS">Massa Carrara</option> <option value="MT">Matera</option> <option value="MD">Medio Campidano [Sanluri]</option> <option value="ME">Messina</option> <option value="MI">Milano</option> <option value="MO">Modena</option> <option value="NA">Napoli</option> <option value="NO">Novara</option> <option value="NU">Nuoro</option> <option value="OG">Ogliastra [Lanusei, Tortoli]</option> <option value="OT">Olbia-Tempio</option> <option value="OR">Oristano</option> <option value="PD">Padova</option> <option value="PA">Palermo</option> <option value="PR">Parma</option> <option value="PV">Pavia</option> <option value="PG">Perugia</option> <option value="PU">Pesaro - Urbino</option> <option value="PE">Pescara</option> <option value="PC">Piacenza</option> <option value="PI">Pisa</option> <option value="PT">Pistoia</option> <option value="PN">Pordenone</option> <option value="PZ">Potenza</option> <option value="PO">Prato</option> <option value="RG">Ragusa</option> <option value="RA">Ravenna</option> <option value="RC">Reggio Calabria</option> <option value="RE">Reggio Emilia</option> <option value="RI">Rieti</option> <option value="RN">Rimini</option> <option value="RM">Roma</option> <option value="RO">Rovigo</option> <option value="SA">Salerno</option> <option value="SS">Sassari</option> <option value="SV">Savona</option> <option value="SI">Siena</option> <option value="SR">Siracusa</option> <option value="SO">Sondrio</option> <option value="TA">Taranto</option> <option value="TE">Teramo</option> <option value="TR">Terni</option> <option value="TO">Torino</option> <option value="TP">Trapani</option> <option value="TN">Trento</option> <option value="TV">Treviso</option> <option value="TS">Trieste</option> <option value="UD">Udine</option> <option value="VA">Varese</option> <option value="VE">Venezia</option> <option value="VB">Verbania</option> <option value="VC">Vercelli</option> <option value="VR">Verona</option> <option value="VV">Vibo Valentia</option> <option value="VI">Vicenza</option> <option value="VT">Viterbo</option> </select>
</td>
<td width="423" align="left" valign="top">
Inserisci la password per entrare nel sito<p>Inserisci
la tua provincia di appartenenza</td>
</tr>
<tr>
<td width="84">Comune</td>
<td width="309"><input type="text" value="" name="comune" maxlength="40"></td>
<td width="423">Inserisci il comune in cui
risiedi</td>
</tr>
<tr>
<td width="84">Data di nascita</td>
<td width="309">
<select class="data1" name="giorno">
<option selected value="">-</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>  / <select name="mese"><option selected value="">-</option>
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
<option value="4">04</option>
<option value="5">05</option>
<option value="6">06</option>
<option value="7">07</option>
<option value="8">08</option>
<option value="9">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>  / <select name="anno"><option selected value="">-</option>
<option value="1994">1994</option>
<option value="1993">1993</option>
<option value="1992">1992</option>
<option value="1991">1991</option>
<option value="1990">1990</option>
<option value="1989">1989</option>
<option value="1988">1988</option>
<option value="1987">1987</option>
<option value="1986">1986</option>
<option value="1985">1985</option>
<option value="1984">1984</option>
<option value="1983">1983</option>
<option value="1982">1982</option>
<option value="1981">1981</option>
<option value="1980">1980</option>
<option value="1979">1979</option>
<option value="1978">1978</option>
<option value="1977">1977</option>
<option value="1976">1976</option>
<option value="1975">1975</option>
<option value="1974">1974</option>
<option value="1973">1973</option>
<option value="1972">1972</option>
<option value="1971">1971</option>
<option value="1970">1970</option>
<option value="1969">1969</option>
<option value="1968">1968</option>
<option value="1967">1967</option>
<option value="1966">1966</option>
<option value="1965">1965</option>
<option value="1964">1964</option>
<option value="1963">1963</option>
<option value="1962">1962</option>
<option value="1961">1961</option>
<option value="1960">1960</option>
<option value="1959">1959</option>
<option value="1958">1958</option>
</select> </td>
<td width="423">Il formato risulta essere
in giorno/mese/anno</td>
</tr>
<tr>
<td width="84">Sesso</td>
<td width="309">
<select name="sesso">
<option selected value="">-</option>
<option value="femmina">Donna</option>
<option value="maschio">Uomo</option>
</select>
</td>
<td width="423">Sei maschio o donna?</td>
</tr>
<tr>
<td valign="top" width="84">e-mail</td>
<td valign="top" width="309">
<input type="text" value="" name="utenteemail" maxlength="100" size="33"></td>
<td width="423">Inserisci un indirizzo
mail valido</td>
</tr>
<tr>
<td height="42" width="84"> Tua Descrizione</td>
<td height="42" width="309">
<textarea rows="13" name="descrizione" cols="36"></textarea></td>
<td height="42" width="423"> </td>
</tr>
<tr>
<td colspan="2"><p><input type="hidden" name="MAX_FILE_SIZE" value="3000000000">
Invia una tua foto: <input name="userfile" type="file"><p> <p> <p> <textarea class="boxtxt2" rows="12" cols="47">INFORMATIVA SULLA PRIVACYect....
</textarea>
</td>
<td class="w294t" width="423">
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>Cliccando sul pulsante 'Invia dati' l'utente dichiara di aver letto ed accettato le condizioni sul trattamento dei dati personali (INFORMATIVA SULLA PRIVACY) che rappresentano una garanzia del rispetto della privacy.
</td>
</tr>
<tr>
<td colspan="2"><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><input type="checkbox" name="privacy" value="1"></td> <td></td> <td>Accetto</td> </tr> </table> </td> <td width="423"></td> </tr> <tr> <td width="84"> </td> <td width="309"> </td> <td width="423"> </td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="Invia dati"></td> <td width="423"></td> </tr> </table> </td> </tr> </form> </table> </td> </tr> </table> </td> <td ></td> <td rowspan="3"></td> </tr> <tr> <td colspan="5"></td> </tr> <tr> <td colspan="5"></td> </tr> </table> </td>
</tr>
</table>
<table border="0" width="917" cellspacing="7" cellpadding="0">
<tr>
<td class="testo8center">
<p align="center">Mio sito></td>
</tr>
</table><br>
</body>
</html>[/PHP]
mentre quest altra e la paghina che elabora
iscrizione.php
[PHP]
<?php
//connessione al database con valori ovviamente non veri
// Includo la connessione al database
require('config.php');
//recupero i valori dal form iscriviti
$cnickname = $_POST['nickname'];
$cprovincia = $_POST['provincia'];
$cnome = $_POST['nome'];
$ccomune = $_POST['comune'];
$cgiorno = $_POST['giorno'];
$cmese = $_POST['mese'];
$canno = $_POST['anno'];
$cutenteemail = $_POST['utenteemail'];
$csesso = $_POST['sesso'];
$cpassword = $_POST['password'];
$cdescrizione = $_POST['descrizione'];// Controllo il Nome Utente
if(strlen($cnome) < 4 || strlen($cnome) > 12)
die('Mi dispiace ma il tuo nome reale non deve superare i 12 caratteri');
// Controllo il nickname
elseif(strlen($cnickname) < 4 || strlen($cnickname) > 12)
die('Errore il nickname deve essere composto da un minimo di 4 caratteri ad un massimo di 12');
// Controllo la Password
elseif(strlen($cpassword) < 4 || strlen($cpassword) > 12)
die('Errore la password deve essere composta da un minimo di 4 caratteri ad un massimo di 12');
// Controllo l'email
elseif(!eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $cutenteemail))
die('Email non valida');
// Controllo il nickname non sia già occupato
elseif(mysql_num_rows(mysql_query("SELECT nome FROM iscritti WHERE nome = '$cnickname' LIMIT 1")) == 1)
die('Nickname non disponibile');
// Controllo l'indirizzo email non sia già registrato
elseif(mysql_num_rows(mysql_query("SELECT utenteemail FROM iscritti WHERE utenteemail = '$cutenteemail' LIMIT 1")) == 1)
die('Questo indirizzo email risulta già registrato ad un altro utente');
// Registrazione dell'utente nel database
else
{//variabili contenenti la parte relativa alle foto
$source_file='/membri/italiawebchat/foto/';
$output_file='/membri/italiawebchat/miniature/';
$size='100';
$quality='10';//Recupero il percorso temporaneo del file
$userfile_tmp = $_FILES['userfile']['tmp_name'];//recupero il nome originale del file caricato
$userfile_name = $_FILES['userfile']['name'];print "<pre>";
//copio il file dalla locazione temporanea alla mia cartella upload
if (move_uploaded_file($userfile_tmp, $source_file . $userfile_name));function resize($source_file, $output_file, $size, $quality)
{
//jpeg resizer
$success = false;
list($width, $height) = getimagesize($source_file);$new_width = intval(($width * $size) / max($width, $height));
$new_height = intval(($height * $size) / max($width, $height));// Formato immagine
$l = strlen($source_file);
if($source_file[$l-1] == 'f' && $source_file[$l-2] == 'i' && $source_file[$l-3] == 'g')
$image_in = imagecreatefromgif($source_file);
elseif($source_file[$l-1] == 'g' && $source_file[$l-2] == 'n' && $source_file[$l-3] == 'p')
$image_in = imagecreatefrompng($source_file);
else
$image_in = imagecreatefromjpeg($source_file);if ( $image_out = imagecreatetruecolor($new_width, $new_height) )
{
imagecopyresampled($image_out, $image_in, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
if ( imagejpeg($image_out, $output_file, $quality) )
{
$success = true;
}
imagedestroy($image_out);
}
imagedestroy($image_in);return $success;
}// directory immagini
$img_dir = 'foto/';
$img_anteprime = 'miniature/';// apro la directory
$handle = opendir($img_dir);// Creo un ciclo ed utilizzo readdir per esplorare il contenuto della directory
while (false !== ($files = readdir($handle)))
{
// Genero le anteprime
if ($files != "." && $files != "..")
{
$a = resize($img_dir.$files, $img_anteprime.$files, 100, 50) ;
}}
{
// Query per l'inserimento dell'utente nel database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione,foto,provincia,comune,giorno,mese,anno,nickname) VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione','$userfile_name','$cnickname','$cgiorno','$cmese','$canno','$cprovincia','$ccomune')";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
print "Grazie per esserti iscritto"; // Reindirizzo l'utente ad una pagina di conferma della registrazione
header('Location: login.htm');
exit;
//Se l'operazione è andata a buon fine...
print "Benvenuto";}
}
?>
[/PHP]Nella mia tabella ho in tutto 12 campi...
nell ordiner che segue
id nome password sesso data utenteemail descrizione foto nickname provincia comune giorno mese annoFino al campo foto i dati vengono scritti tutti correttamente...mentre daò campo nickname in poi risultano sballati:x
-
$strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione,foto,provincia,comune,giorno,mese,anno,nickname)";
$strsql.=" VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione','$userfile_name','$cnickname','$cgiorno','$cmese','$canno','$cprovincia','$ccomune')";Questa è la query, che effettivamente mi sembra che metta i valori nei campi sbagliati, ridagli un occhiatina
-
@Thedarkita said:
$strsql="INSERT INTO iscritti (nome,utenteemail,sesso,password,descrizione,foto,provincia,comune,giorno,mese,anno,nickname)";
$strsql.=" VALUES ('$cnome','$cutenteemail','$csesso','$cpassword','$cdescrizione','$userfile_name','$cnickname','$cgiorno','$cmese','$canno','$cprovincia','$ccomune')";Questa è la query, che effettivamente mi sembra che metta i valori nei campi sbagliati, ridagli un occhiatina
ho provato ma semprela stessa cosa...
ho fatto un altro caso allora..sono andato in phpmyadmin e ho cambiato di nome agli ultimi 6 campi della tabella...ovvero quelli in cui venivano inseriti i dati in campi non loro...quindi dove doveva uscire per esempio il comune e usciva invececome valore il nickname....quel campo li l ho chiamato appunto nickname invece che comune e cosi la stessa con gli altri:)
-
Credo che Thedarkita abbia ragione, infatti l'ordine dei campi della INSERT è diverso dall'ordine dei campi VALUES (controlla a partire da Foto in poi e vedrai che sono diversi).
Quindi credo sia sufficiente mettere nelle stesso ordine le due serie per risolvere il tuo problema.
-
infatti comune,nickname, provincia si vede subito che sono sbagliati
-
@Thedarkita said:
infatti comune,nickname, provincia si vede subito che sono sbagliati
Si...avete proprio ragione...cambiando l ordine ho risolto...
non sapevo che si dovesse per forza rispettare un ordine di inserimento fra la stringa insert e quella value.....
Abbiamo imparato un altra cosa
-
Beh se non li rispetti mica php sa cosa vuoi fare...
ciauz