Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313

    inserimento cliente errato

    Buongiorno a tutti,
    ho una pagina php per inserire i dati di un cliente e fino a ieri tutto bene, ma oggi mi da un errore strano... mi dice "Problemi durante l'inserimento del cliente " e non riesco a capire cosa sia successo visto che non ho modificato nulla del mio codice.
    Ho una pagina form che mi rimanda 6 valori:
    1)idcliente - varchar (10)
    2)nome - varchar (45)
    3)cognome - varchar (45)
    4)cf - varchar (16)
    5)piva - varchar (16)
    6)note - varchar (50)

    che vengono passati alla pagina registra.php:
    Codice PHP:
    <?php

    include("config.php");

    //includo la class cliente

    require_once("cliente.class01.php");

    //istanzio un nuovo oggetto "cliente"

    $cliente = new cliente;

    ?>

    <html>

        <head>

            <title>Registrazione cliente</title>

        </head>

        <body>

        <?php

        
    //setto i dati nell'oggetto

        
    $cliente->imposta($_POST);

        
    //prova ad aggiungere il nuovo cliente

        
    $cliente->aggiungi();

        
    ?>

        </body>

    </html>
    che come potete vedere passa il tutto alla pagina cliente.class01.php:
    Codice PHP:
    <html>

        <?php



    class cliente{

        
    //Attributi

        
    var $arrData = array();

        var 
    $strSQL "";

        var 
    $bool true;

        

        
    //Metodi

        /**

         * Metodo: imposta - questo metodo serve ad impostare l'array arrData recuperato tramite $postData

        * input

        * @param array $postData - Array contenente i vari valori da associare all'array arrData

        */

        
    function imposta($postData){

                
    $this->arrData $postData;

        }

        
    /**

        * Metodo: aggiungi - con questo metodo inseriamo i dati dell'array nel Database

        */

        
    function aggiungi(){

            
    //controllo che l'array non sia vuoto

            
    if(!empty($this->arrData)){

                
    //controllo che tutti i campi siano pieni

                
    foreach($this->arrData as $value){

                    if(
    strlen($value) == 0){

                        
    $this->bool false;

                        break; 
    //Evito di visualizzare piu' volte lo stesso messaggio

                    
    }

                }

            }else{

                
    $this->bool false;

            }

            

            if(
    $this->bool){

                
    //costruzione automatica della query SQL

                
    $this->strSQL "INSERT INTO cliente ("

                                                    
    implode(", "array_keys($this->arrData))

                                                    . 
    ") VALUES('"

                                                    
    implode("', '"$this->arrData)

                                                    . 
    "')";

                
    //Esecuzione query...

                
    if(mysql_query($this->strSQL)){

                    
    ?>

                    <head>

                        <title>Conferma avvenuto inserimento cliente</title>

                        <script type="text/javascript" language="JavaScript">

                        <!--

                            var theURL = 'finestracliente.htm';

                            var width  = 500;

                            var height = 50;

                            var l = Math.floor((screen.width-width)/2);

                            var t = Math.floor((screen.width-height)/5);

                            function popWindow() {

                                newWindow = window.open(theURL,'newWindow','toolbar=no,menubar=no,resizable=no,scrollbars=no,status=no,location=no,width='+width+',height='+height+',top='+t+',left='+l);

                            }

                            popWindow('finestracliente.htm');

                            location.href="clienteform.php";

                        //-->

                        </script>

                    

                    

                    </head><?php

                
    }else{

                    echo 
    "Problemi durante l'inserimento del cliente";

                }

            }else{

                echo 
    "Attenzione: specificare tutti i campi";

            }

        }

    }

    ?>

    </html>
    riuscite ad aiutarmi a capire perchè non va e mi da sempre l'errore "Problemi durante l'inserimento del cliente"?
    Grazie mille a tutti.

    Buona giornata

  2. #2
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    fai un var_dump della query oppure non utilizzare il messaggio di errore personalizzato bensì mysql_error()
    If you think your users are idiots, only idiots will use it. DropBox

  3. #3
    Utente di HTML.it L'avatar di spawn88
    Registrato dal
    Feb 2012
    residenza
    Milano
    Messaggi
    313
    GRAZIE MILLE
    risolto tutto.
    era colpa di un'apice
    ma non c'è un modo per comunicare all'utente che certi caratteri non si possono inserire oppure un modo per bloccare i caratteri non desiderati nella cella del form e far si che appena l'utente tenta di inserirli gli appaia un messaggio (anche a commento) che gli dica che certi caratteri non sono ammessi?

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    di solito si fa solo la differenza tra campi numerici e alfabetici, poi il resto, soprattutto gli apici lo devi controllare tu! occhiio che molto probabilmente il tuo script può esser vittima di injection!!
    quindi "bonifica" tutti i campi provenienti dal form
    fai un giro sul form e\o sul web e troverai infiniti modi su cme prevenire le sqlinjection e quindi risolvere anche il problema dei caratteri speciali...
    If you think your users are idiots, only idiots will use it. DropBox

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.