Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema collegamente php con database

    Ciao a tutti,
    ho un problema a collegare delle form con un database.
    In particolare non riesco proprio a creare gli utenti nel database, mi dice sempre "Problemi durante l'inserimento del cliente " cioè cose se sbagliassi a inserire i dati nei form, sto uscendo pazzo, vi allego la mia soluzione:

    Questo e la pagina html che contiene il form:
    codice:
    form
    <form method="post" action="registrazioni/plugin_registrazione.php">
    
    	<p style="text-align: left;">Nome: <input name="nome" type="text" /></p>
    	<p style="text-align: left;">Cognome: <input name="cognome" type="text" /></p>
    	<p style="text-align: left;">E-Mail: <input name="email" type="text" /></p>
            <p style="text-align: left;">Password: <input name="password" type="password" /></p>
    	<p style="text-align: left;">Data di nascita: <input name="datadinascita" type="text" /></p>
            <p style="text-align: left;">Indirizzo: <input name="indirizzo" type="text" /></p>
            <p style="text-align: left;">Città: <input name="citta" type="text" /></p>
            <p style="text-align: left;">Prov:
                                                   <SELECT name="prov">
                                                   <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="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="SP">LA SPEZIA</option>
                                                   <option value="AQ">L'AQUILA</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="MS">MASSA-CARRARA</option>
                                                   <option value="MT">MATERA</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="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 E 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 DI CALABRIA</option>
                                                   <option value="RE">REGGIO NELL'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">VERBANO-CUSIO-OSSOLA</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></p>
    	
    	<input type="submit" value="Invia" />
    
    </form>
    Codice di plugin_registrazione.php:


    Ecco il codice della classe:
    codice:
    <?php  class utente { //ATTRIBUTI 	var $arrayDati = array(); 	var $strSQL= ""; 	var $bool = true;  //CON LA FUNCTION IMPOSTA ASSOCIAMO L'ARRAY $_POST DELLE FORM AD $arrayDati //IMPOSTANDO UN ARRAY DA PASSARE ALLE FUNZIONI GENERALIZZIAMO IL PROBLEMA //SENZA DOVER SCRIVERE X OGNI FUNZIONE TUTTI GLI ATTRIBUTI RICEVUTI DALLE FORM 	function imposta($postDati) 	{ 		$this->arrayDati = $postDati; 	}  //CON LA FUNCTION AGGIUNGI INSERIAMO I DATI DELL'ARRAY NEL DATABASE 	function aggiungi() 	{ //COME PRIMA COSA VEDIAMO SE L'ARRAY è VUOTO IN TAL CASO BOOL = FALSO 		if(!empty($this->arrayDati)){ 			//CONTROLLO CHE TUTTI I CAMPI SIANO PIENI 			foreach($this->arrayDati as $value){ 				if(strlen($value) == 0){ 					$this->bool = false; 					break; //APPENA UN CAMPO è VUOTO ESCO DAL CICLO 				} 			} 		}else{ 			$this->bool = false; 		}  		if($this->bool){ 			//COSTUZIONE AUTOMATICA DELLA QUERY TRAMITE VARIE FUNZIONI IN PARTICOLARE: 			//IMPLODE CHE UNISCE GLI ELEMENTI DI UN ARRAY FORMANDO UNA STRINGA NEL NOSTRO 			//CASO SEPARIAMO GLI ELEMENTI DELL'ARRAY CON LE , 			//INOLTRE GRAZIE ALLA FUNZIONE array_keys RICERCHIAMO PER PRIMA COSA LA CHIAVE 			$this->strSQL = "INSERT INTO cliente (" 												. implode(", ", array_keys($this->arrayDati)) 												. ") VALUES('" 												. implode("', '", $this->arrayDati) 												. "')"; 			//Esecuzione query... 			if(mysql_query($this->strSQL)){ 				echo  "Cliente aggiunto con successo"; 			}else{ 				echo "Problemi durante l'inserimento del cliente"; 			} 		}else{ 			echo "Attenzione: specificare tutti i campi"; 		} 	} } ?>
    codice:
    <?php //CONNESSIONE MYSQL 	mysql_connect("localhost","root") or die ("impossibile connettersi a mysql"); //SELEZIONIAMO IL DATABASE 	mysql_select_db("wordpress") or die ("impossibile selezionare il database"); //INCLUDIAMO LA CLASSE UTENTE ATTRAVERSO REQUIRE ONCE 	require_once("class_utente.php"); //ISTANZIO UN NUOVO OGGETTO "utente" 	$utente = new utente; ?> <html>     <head>         <title>Registrazione cliente</title>     </head>     <body>  	<?php //SETTIAMO I DATI DELL'OGGETTO 	$utente->imposta($_POST); //AGGIUNGIAMO IL NUOVO UTENTE.    	$utente->aggiungi(); 	?>     </body> </html>
    Qualcuno saprebbe dirmi cosa ho sbaglaito e xke non mi aggiunge gli utenti??

  2. #2
    premesso che il codice tutto su una riga non e' facile da valutare un errore potrebbe essere che nel $_POST ricevi anche il submit che sicuramente non ha riscontro nella tabella.

    fai il debug stampando la query che produci e utilizzando la funzione mysql_error() al posto del generico "Problemi etc..."

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Niente anche con mysql_error(); non mi dice nulla. Inoltre nn ho capito a cosa ti riferisci quando parli di submit.
    Cmq riscrivo il codice in maniera leggibile, pardon:

    File plugin_registrazione.php:
    Codice PHP:
    <?php
        mysql_connect
    ("localhost","root") or die ("impossibile connettersi a mysql");
        
    mysql_select_db("wordpress") or die ("impossibile selezionare il database");
        require_once(
    "class_utente.php");
        
    $utente = new utente;
    ?>
    <html>
         <head>
              <title>Registrazione cliente</title>
         </head>
         <body>
           <?php
                    $utente
    ->imposta($_POST);
                    
    $utente->aggiungi();
                
    ?>
          </body>
    </html>

    File class_utente.php:
    Codice PHP:
    <?php

    class utente
    {
    //ATTRIBUTI
        
    var $arrayDati = array();
        var 
    $strSQL"";
        var 
    $bool true;
        function 
    imposta($postDati)
        {
            
    $this->arrayDati $postDati;
        }

        function 
    aggiungi()
        {
        if(!empty(
    $this->arrayDati))
                           {
                
    //CONTROLLO CHE TUTTI I CAMPI SIANO PIENI
                
    foreach($this->arrayDati as $value)
                                   {
                    if(
    strlen($value) == 0)
                                           {
                        
    $this->bool false;
                        break; 
    //APPENA UN CAMPO è VUOTO ESCO DAL CICLO
                            
    }
                               }
                  }
                          else
                          {
                
    $this->bool false;
                      }
                  if(
    $this->bool){
    //COSTUZIONE AUTOMATICA DELLA QUERY TRAMITE VARIE FUNZIONI IN PARTICOLARE:
    //IMPLODE CHE UNISCE GLI ELEMENTI DI UN ARRAY FORMANDO UNA STRINGA NEL NOSTRO
    //CASO SEPARIAMO GLI ELEMENTI DELL'ARRAY CON LE ,
    //INOLTRE GRAZIE ALLA FUNZIONE array_keys RICERCHIAMO PER PRIMA COSA LA CHIAVE
                
    $this->strSQL "INSERT INTO cliente ("
                                        
    implode(", "array_keys($this->arrayDati))
                                    . 
    ") VALUES('"
                                    
    implode("', '"$this->arrayDati)
                                    . 
    "')";
                
    //Esecuzione query...
                
    if(mysql_query($this->strSQL)){
                    echo  
    "Cliente aggiunto con successo";
                }else{
                    
    mysql_error();
                
    //    echo "Problemi durante l'inserimento del cliente";
                
    }
            }else{
                echo 
    "Attenzione: specificare tutti i campi";
            }
        }
    }
    ?>
    Ora che è piu leggibile cerco anche di essere più chiaro sull'errore che mi restituisce:
    in pratica se non inserisco alcuni campi mi esce il messaggio corrette :"Attenzione: specificare tutti i campi", mentre se inserisco tutti i campi anche con una primary key nuova (la uemail) mi restituisce cmq problemi durante l'inserimento del cliente;
    Poi non sono nemmeno tanto convinto di come ho usato la funzione array_keys :S.
    Perdonate la mia noobità

  4. #4
    1) quando entri nella pagina stampa $_POST e vedi cosa contiene

    Codice PHP:
    ....
    <?php

    echo "<pre>";
    print_r($_POST);

                    
    $utente->imposta($_POST); 
    .....
    2) stampa la query.
    Codice PHP:
                $this->strSQL "INSERT INTO cliente ("
                                        
    implode(", "array_keys($this->arrayDati))
                                    . 
    ") VALUES('"
                                    
    implode("', '"$this->arrayDati)
                                    . 
    "')";
    echo 
    $this->strSQL;

                
    //Esecuzione query...
                
    if(mysql_query($this->strSQL)){ 
    .... 

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Ok grz mille, anche se alla fine ho risolto in un altro modo senza creare delle classi, ora cerco in internet il metodo per controllare l'inserimento nella form in real time.
    Grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.