• User

    errore fatale

    Ciao, vengo subito al problema

    in locale uso win con apache - mentre stavo sviulppando una classe per una piccola applicazione mi è uscito questo errore fatale:

    Fatal error: Maximum function nesting level of '100' reached,
    aborting! in C:\Program
    Files\EasyPHP-12.1\www\scarpe-gestione\php\classe.php
    on line 72

    cosa può significare?


  • User

    Posto tutta la classe - p.s. se nella funzione inserisc() tolgo la funzione controllo() non mi da più questo problema - ma io comq devo inserire questa funzione! come posso fare?

            <?php
    

    class mia{

                protected function DbConnect()
            {
                include "db_config_gest.php";
     
                $this->conn = mysql_connect($host,$user,$password) OR die("Impossibile connettersi al database");
                mysql_select_db($db, $this->conn);
            }
            
            protected function controllo()
                    {
                    
                    
                        // purifico i dati 
                $marca=filter_var($_POST['marca'], FILTER_SANITIZE_STRING);
                $colore=filter_var($_POST, FILTER_SANITIZE_STRING);
                $numero=filter_var($_POST['numero'], FILTER_SANITIZE_NUMBER_INT);
                $descrizione=filter_var($_POST['descrizione'], FILTER_SANITIZE_STRING);
                $prezzo=filter_var($_POST['prezzo'], FILTER_SANITIZE_NUMBER_FLOAT);
                $prezzospedizione=filter_var($_POST['prezzospedizione'], FILTER_SANITIZE_NUMBER_FLOAT);
                $codice=filter_var($_POST['codice'], FILTER_SANITIZE_STRING);
                $unitadisponibili= filter_var($_POST['unitadisponibili'], FILTER_SANITIZE_NUMBER_INT);
                    
                
                    $errore=array();
                    
                        if(empty($_POST['marca']))
                        {
                             $errore[]=" Marca assente";
                        }
                        
                        if(empty($_POST))
                        {
                            $errore[]= "Colore assente";
                        }
                        
                        if(empty($_POST['numero']))
                        {
                            $errore[]= "Numero assente";
                        }
                        
                        if(empty($_POST['descrizione']))
                        {
                            $errore[]= "Descrizione assente";
                        }
                        
                        if(empty($_POST['prezzo']))
                        {
                             $errore[]="Prezzo assente";
                        }
                        
                        if(empty($_POST['prezzospedizione']))
                        {
                            $errore[]= "Prezzo spedizione assente";
                        }
                        
                        if(empty($_POST['codice']))
                        {
                            $errore[]= "Codice assente";
                        }
                        
                        if(empty($_POST['unitadisponibili'])){
                        
                            $errore[]= FILTER_VAR("Non hai inserito unità disponibili",FILTER_SANITIZE_STRING);
                        
                        }
                        
                        
                        
                        //IMPLEMETA ALTRI CONTROLLI
                        
                        
                        
                        
                        if(count($errore)>0){
                        echo "Si sono verificati i seguenti errori <br />";
                        
                        for($x=0;$x<count($errore);$x++){
                        
                            echo $errore[$x]. "<br />";
                        
                        }
                        
                        
                        return false;
                        
                        
                    }else{$this->inserisci();}
                }
            
            public function inserisci(){
                
            $this->controllo();
            
                if(isset($colore) && isset($marca) && isset($numero) && isset($descrizione) && isset ($prezzo) && isset ($prezzospedizione) && isset ($codice) && isset ($unitadisponibili)){
                
                $sql = "INSERT INTO scarpe (marca ,colore ,numero ,descrizione ,prezzo ,prezzospedizione ,codice ,unitadisponibli)
                    VALUES ('$marca', '$colore','$numero', '$descrizione','$prezzo', '$prezzospedizione', '$codice', '$unitadisponibili');";
                
                $this->DbConnect();
                $res = mysql_query($sql,$this->conn);
                
                echo "Articolo inserito correttamente";    
                mysql_close($this->conn);
                }else{
                        echo FILTER_VAR("ESITO: articolo non inserito",FILTER_SANITIZE_STRING). mysql_error(); echo "<br /> <a href='#' onClick='javascript:history.back()'> torna indietro</a>";
                }
            
            }
            
            }
            ?>

  • User

    RISOLTO -> il problema era che effettivamente la funzione controllo richiamava la funzione inserisci che a sua volta richiama la funzione controllo ... avviando così un ciclo infinito...