Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Problemi controllo campi form

    Salve,
    ho un form per l'inserimento di dati "inserimentovalori2.php" che passa i valori in "salvavalori2.php" che li inserisce nel db MySQL. Vorrei fare un controllo dei campi inseriti; su un sito ho trovato uno script secondo me ben fatto per il controllo dei campi inseriti che ho chiamato "controllocampi.php". Ho pensato allora di fare la seguente modifica: "inserimentovalori2.php" passa i valori inseriti a "controllocampi.php" che li controlla e in caso affermativo li passa a "salvavalori2.php" per scriverli nel db, in caso errato mi da errore. Il mio problema è però che non riesco a passare i dati da "inserimentovalori2.php" a "controllocampi.php"; posto il codice per avere un aiuto:

    controllocampi.php:
    codice:
    <?php
    
    $id_piatto= $_POST['id_piatto'];
    $alimento1= $_POST['alimento1'];
    //controllo campi vuoti
    // Inizializzazione degli errori
    
    	$errore=0;
    	$errore_id_piatto=0;
    	$errore_alimento1=0;
    
    // Verifico che tutti i campi siano pieni
    // I campi che ho sono: nome, cognome, user/nick, mail, password, ripeti password
     
    	if ($_REQUEST[id_piatto]=="") {
    		$errore_id_piatto=1;
    		$errore=1;
    	}
    
     
    	if ($_REQUEST[alimento1]=="") {
    		$errore_alimento1=1;
    		$errore=1;
    	}
    
    
    // ************************************************************	
    // Vado a verificare gli errori e se c'è errore faccio stampare
    // ************************************************************
    	if(($_REQUEST[invia4]=="Invia" AND $errore == 1)) 
    {
     
    	if ($errore_id_piatto==1) {
    		echo "Controlla di aver scritto il id_piatto 
    ";	
    	}
     
    	if ($errore_alimento1==1) {
    		echo "Controlla la alimento1
    ";	
    	}
    
    }
     
    if($errore == 0) {
    	header("Location: salvavalori2.php"); 
    }
    ?>

    l'errore é:
    Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\xampp\htdocs\mensa\controllocampi.php:40) in D:\xampp\xampp\htdocs\mensa\controllocampi.php on line 151

    Grazie a tutti

  2. #2
    Ciao, probabilmente hai già stampato qualcosa a video e quindi php non riesce a inviare l'header. Assicurati che non ci sia nessun output prima di controllocampi.php

  3. #3
    Scusami ma non ho capito cosa intendi..puoi spiegarmi meglio?
    Cmq in rete ho trovato l'uso di ob_start() e ob_end_flush()...effettivamente arrivo in salvavalori2.php ma non mi esegue le quey di inserimento nel db:
    codice:
    <?php
    
    $id_piatto= $_POST['id_piatto'];
    $alimento1= $_POST['alimento1'];
    //controllo campi vuoti
    // Inizializzazione degli errori
    
    	$errore=0;
    	$errore_id_piatto=0;
    	$errore_alimento1=0;
    
    // Verifico che tutti i campi siano pieni
    // I campi che ho sono: nome, cognome, user/nick, mail, password, ripeti password
     
    	if ($_REQUEST[id_piatto]=="") {
    		$errore_id_piatto=1;
    		$errore=1;
    	}
    
     
    	if ($_REQUEST[alimento1]=="") {
    		$errore_alimento1=1;
    		$errore=1;
    	}
    
    
    // ************************************************************	
    // Vado a verificare gli errori e se c'è errore faccio stampare
    // ************************************************************
    	if(($_REQUEST[invia4]=="Invia" AND $errore == 1)) 
    {
     
    	if ($errore_id_piatto==1) {
    		echo "Controlla di aver scritto il id_piatto 
    ";	
    	}
     
    	if ($errore_alimento1==1) {
    		echo "Controlla la alimento1
    ";	
    	}
    
    }
     
    if($errore == 0) {
    	header("Location: salvavalori2.php"); 
    ob_end_flush();
    }
    ?>

  4. #4
    nella fretta mi sono scordato ob_start(); all'inizio della pagina.
    perchè non inserisce più i dati nel db?

  5. #5
    ho notato che in controllocampi.php $_POST contiene effettivamente i valori che inserisco id_piatto e alimento1, però il contenuto di $_POST in salvavalori2.php e 0, quindi controllocampi.php non gli passa niente..è possibile? Suggerimenti?

  6. #6
    Puoi postare anche il form? Comunque intendevo dire che prima di header() non deve essere stato inviato nessun output.

    Da php.net:
    Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
    Il warning ti sta semplicemente dicendo che non può inviare l'header, poiché un output è già stato inviato, ed è cominciato dalla riga 40 di controllocampi.php. Prova a non stampare gli errori e vedi se così funziona.

  7. #7
    form "inserimentovalori2.php":
    codice:
    <form name ="inserimento_valori "action="salvavalori2.php" method="post">
    Piatto: <input type="text" name="id_piatto" size="15" maxlength="25" value="<?php echo $id_piatto;?>">
    
    
    COMPOSIZIONE
    
    
    Alimento1: <input type="text" name="alimento1" size="15" maxlength="25" value="<?php echo $alimento1;?>">
    Quantità: <input type="text" name="quantità" size="15" maxlength="25" value="<?php echo $quantità;?>">
    Kcal: <input type="text" name="kcal" size="5" maxlength="5" value="<?php echo $kcal;?>">
    Proteine: <input type="text" name="proteine" size="5" maxlength="5" value="<?php echo $proteine;?>"> 
    Carboidrati: <input type="text" name="carboidrati" size="5" maxlength="5" value="<?php echo $carboidrati;?>"> 
    Grassi: <input type="text" name="grassi" size="5" maxlength="5" value="<?php echo $grassi;?>"> 
    Acqua: <input type="text" name="acqua" size="5" maxlength="5" value="<?php echo $acqua;?>"> 
    Zuccheri: <input type="text" name="zuccheri" size="5" maxlength="5" value="<?php echo $zuccheri;?>"> 
    Fibre: <input type="text" name="fibre" size="5" maxlength="5" value="<?php echo $fibre;?>"> 
    Amminoacidi: <input type="text" name="amminoacidi" size="5" maxlength="5" value="<?php echo $amminoacidi;?>"> 
    
    
    
    Alimento2: <input type="text" name="alimento2" size="15" maxlength="25" value="<?php echo $alimento2;?>"> 
    Quantità: <input type="text" name="quantità2" size="15" maxlength="25" value="<?php echo $quantità2;?>">
    Kcal: <input type="text" name="kcal2" size="5" maxlength="5" value="<?php echo $kcal2;?>">
    Proteine: <input type="text" name="proteine2" size="5" maxlength="5" value="<?php echo $proteine2;?>"> 
    Carboidrati: <input type="text" name="carboidrati2" size="5" maxlength="5" value="<?php echo $carboidrati2;?>"> 
    Grassi: <input type="text" name="grassi2" size="5" maxlength="5" value="<?php echo $grassi2;?>"> 
    Acqua: <input type="text" name="acqua2" size="5" maxlength="5" value="<?php echo $acqua2;?>"> 
    Zuccheri: <input type="text" name="zuccheri2" size="5" maxlength="5" value="<?php echo $zuccheri2;?>"> 
    Fibre: <input type="text" name="fibre2" size="5" maxlength="5" value="<?php echo $fibre2;?>"> 
    Amminoacidi: <input type="text" name="amminoacidi2" size="5" maxlength="5" value="<?php echo $amminoacidi2;?>"> 
    
    
    
    Alimento3: <input type="text" name="alimento3" size="15" maxlength="25" value="<?php echo $alimento3;?>"> 
    Quantità: <input type="text" name="quantità3" size="15" maxlength="25" value="<?php echo $quantità3;?>">
    Kcal: <input type="text" name="kcal3" size="5" maxlength="5" value="<?php echo $kcal3;?>">
    Proteine: <input type="text" name="proteine3" size="5" maxlength="5" value="<?php echo $proteine3;?>"> 
    Carboidrati: <input type="text" name="carboidrati3" size="5" maxlength="5" value="<?php echo $carboidrati3;?>"> 
    Grassi: <input type="text" name="grassi3" size="5" maxlength="5" value="<?php echo $grassi3;?>"> 
    Acqua: <input type="text" name="acqua3" size="5" maxlength="5" value="<?php echo $acqua3;?>"> 
    Zuccheri: <input type="text" name="zuccheri3" size="5" maxlength="5" value="<?php echo $zuccheri3;?>"> 
    Fibre: <input type="text" name="fibre3" size="5" maxlength="5" value="<?php echo $fibre3;?>"> 
    Amminoacidi: <input type="text" name="amminoacidi3" size="5" maxlength="5" value="<?php echo $amminoacidi3;?>"> 
    
    
    
    </div>
    <div class="invia4"><input type="submit" value="Invia"    name="invia4"></div>
    <div class="reset4"><input type="reset"  value="Cancella" name="reset4"></div>
    
    </form>
    "salvavavalori2.php"
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//IT" "http://www.w3.org/TR/html4/frameset.dtd"> 
    <html> 
    <head>
    
    <link rel="stylesheet" type="text/css" href="style.css"/>
    </head>   
    <div class = "inserimentoeseguito"><h3>INSERIMENTO ESEGUITO</h3></div>[*]Inserisci nuovo
     [*]Home page</br>
    
     <?php
    
    
    var_dump($_POST);
    $id_piatto= $_POST['id_piatto'];
    $alimento1= $_POST['alimento1'];
    /*$quantità= $_POST['quantità'];
    $kcal= $_POST['kcal'];
    $proteine= $_POST['proteine'];
    $carboidrati=$_POST['carboidrati'];
    $grassi= $_POST['grassi'];
    $acqua=$_POST['acqua'];
    $zuccheri=$_POST['zuccheri'];
    $fibre=$_POST['fibre'];
    $amminoacidi=$_POST['amminoacidi'];
    
    $alimento2= $_POST['alimento2'];
    $quantità2= $_POST['quantità2'];
    $kcal2= $_POST['kcal2'];
    $proteine2= $_POST['proteine2'];
    $carboidrati2=$_POST['carboidrati2'];
    $grassi2= $_POST['grassi2'];
    $acqua2=$_POST['acqua2'];
    $zuccheri2=$_POST['zuccheri2'];
    $fibre2=$_POST['fibre2'];
    $amminoacidi2=$_POST['amminoacidi2'];
    
    $alimento3= $_POST['alimento3'];
    $quantità3= $_POST['quantità3'];
    $kcal3= $_POST['kcal3'];
    $proteine3= $_POST['proteine3'];
    $carboidrati3=$_POST['carboidrati3'];
    $grassi3= $_POST['grassi3'];
    $acqua3=$_POST['acqua3'];
    $zuccheri3=$_POST['zuccheri3'];
    $fibre3=$_POST['fibre3'];
    $amminoacidi3=$_POST['amminoacidi3'];*/
    
    
    $host = "localhost";
    $pass = "freddie";
    $user = "root";
    $db = "mensa";
    $connessione = mysql_connect($host,$user,$pass) or die("Connessione non avvenuta!!!");
    $database = mysql_select_db($db,$connessione) or die ("Database non trovato!!!");
    /*$sql = " INSERT INTO valori SET kcal = '$kcal' , proteine = '$proteine',  carboidrati= '$carboidrati', grassi = '$grassi' , acqua = '$acqua' ,   zuccheri = '$zuccheri', fibre = '$fibre', amminoacidi = '$amminoacidi' , id_piatto = '$id_piatto'";*/
    
    $sql = " INSERT INTO piatti SET id_piatto = '$id_piatto'"; 
    $result = mysql_query($sql) or die("Query non eseguita");
    
    $sql1 = " INSERT INTO primipiatti SET id_piatto = '$id_piatto' , alimento1 = '$alimento1', alimento2 = '$alimento2' , alimento3 = '$alimento3'"; 
    $result1 = mysql_query($sql1) or die("Query non eseguita1");
    
    $sql3 = " INSERT INTO valori SET id_piatto = '$id_piatto'   
    ,alimento1 ='$alimento1',  quantità= '$quantità', kcal= '$kcal', proteine ='$proteine', carboidrati ='$carboidrati', grassi ='$grassi', acqua ='$acqua', zuccheri = '$zuccheri', fibre = '$fibre', amminoacidi = '$amminoacidi'    
    ,alimento2 ='$alimento2', quantità2= '$quantità2',kcal2= '$kcal2', proteine2 ='$proteine2', carboidrati2 ='$carboidrati2', grassi2 ='$grassi2', acqua2 ='$acqua2', zuccheri2 = '$zuccheri2', fibre2 = '$fibre2', amminoacidi2 = '$amminoacidi2'     
    ,alimento3 ='$alimento3', quantità3= '$quantità3',kcal3= '$kcal3', proteine3 ='$proteine3', carboidrati3 ='$carboidrati3', grassi3 ='$grassi3', acqua3 ='$acqua3', zuccheri3 = '$zuccheri3', fibre3 = '$fibre3', amminoacidi3 = '$amminoacidi3' ";
    $result3 = mysql_query($sql3) or die("Query non eseguita2");
    
    
    
    /*, alimento1 = '$alimento1' , alimento2 = '$alimento2', kcal = '$kcal' , kcal2 = '$kcal2', proteine = '$proteine',  carboidrati= '$carboidrati', grassi = '$grassi' , acqua = '$acqua' ,   zuccheri = '$zuccheri', fibre = '$fibre', amminoacidi = '$amminoacidi'*/
    
    
    ?>
    per quanto riguarda "controllocampi" credo di aver risolto con questa modifica:
    codice:
    if($errore == 0) {
    	?>
    	<META HTTP-EQUIV="REFRESH" CONTENT="2; URL=http://localhost/mensa/salvavalori2.php">
    	<?php
    	//header("Location: salvavalori2.php"); 
    	//exit;
    	
    }
    il problema ora è che non inserisce i dati nel db...

  8. #8

  9. #9
    non esegue la query:
    codice:
    $sql = " INSERT INTO piatti SET id_piatto = '$id_piatto'"; 
    $result = mysql_query($sql) or die("Query non eseguita");
    quindi controlla che i campi siano pieni ma non li inserisce nel db

  10. #10
    la stampa di $_POST da inserimentovalori2.php a controllocampi.php mi da i valori inseriti, la stampa da controllocampi.php a salvavalori.php è vuota, ottengo array{0}!!
    Dove sbaglio??

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.