• User Attivo

    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 seguenti

    nickname provincia comune giorno mese anno
    bimbo 30 3 1982 SA

    come 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">&nbsp;</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> &nbsp/&nbsp<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> &nbsp/&nbsp<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 PRIVACY

    ect....

    </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 anno

    Fino al campo foto i dati vengono scritti tutti correttamente...mentre daò campo nickname in poi risultano sballati:x


  • ModSenior

    $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


  • User Attivo

    @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:)


  • User

    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.


  • ModSenior

    infatti comune,nickname, provincia si vede subito che sono sbagliati


  • User Attivo

    @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:yuppi:


  • ModSenior

    Beh se non li rispetti mica php sa cosa vuoi fare...
    ciauz