- Home
- Categorie
- Coding e Sistemistica
- PHP
- errore fatale
-
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 72cosa può significare?
-
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>"; } } } ?>
-
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...