[PHP] Non mi effettua header

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti. E' da qualche giorno che sto cercando di riuscire a risolvere questo errore ma non ci sono ancora riuscito e speravo in un vostro aiuto.
L'errore che mi genera è questo:
Codice:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\monitoraggio_AGG-remoto.php:257) in C:\xampp\htdocs\test\monitoraggio_AGG-remoto.php on line 263
Questo errore me lo ha generato dopo che ho scritto queste semplicissime righe di codice:
Codice:
<?php
if (isset ($_POST['excel']))
{
$nome_tabella = $lavoro;
$_SESSION['$lavoro'] = $nome_tabella;
header ("location:exel.php");
}
?>
Un'annotazione: se questo codice lo provo in un nuovo file funziona perfettamente, ma se lo inserisco all'interno del mio sito genera l'errore che ho scritto prima.
Secondo voi quali potrebbero essere le cause?
 
Ciao.
Il problema è che c'è del codice qualche riga più sopra che produce un output, mandando in errore la funzione header().
 
Ciao Adeknite, grazie per la risposta.
Ti vorrei fare una domanda: secondo te come potrei riuscire a trovare quella riga di codice che crea problemi? Ho riletto il codice ma non trovo errori; infatti prima di scrivere quelle righe di codice (che ho anche riportato nel post) non avevo nessun tipo di problema.
Ciao, grazie.
 
Prova a postare qua il codice.
In ogni caso, potrebbe anche essere un file esterno che viene incluso in quella pagina.
 
Ciao AdeKnite. Prima di postarti il codice ti spiego brevissimamente quello che fa.
Un utente effettua il login e successivamente passa in un altra pagina attraverso la quale può verificare dei dati.
Ora ti posto il codice della pagina che mi dà quell'errore (scusa ma devo spezzare il codice in due repliche perchè è un po lunghetto).
Codice:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
<style type="text/css">
body {
    font-family: "Trebuchet MS";
    text-align: center;
    background-color: #46494E;
}
#TESTATA {
    width: 1000px;
    text-align: left;
    font-size: 45px;
    font-weight: bold;
    color: #1CC06A;
}
#CORPO {
    width: 1000px;
    margin-right: auto;
    margin-left: auto;
    color: #FFFFFF;
}
#MENU {
    background-color: #1CC06A;
    width: 200px;
    float: left;
}
#GRAFICO {
    width: 800px;
    float: left;
    color: #FFFFFF;
}
#TABELLA {
    width: 1000px;
    margin-right: auto;
    margin-left: auto;
    color: #000000;
}
#ERRORI {
    color: #CC0000;
    font-size: 14px;
}
</style>

<?php
// faccio la connessione al server e al database
$con = mysql_connect ("localhost", "root","") or die ("Connessione non disponibile".mysql_error());
$db = mysql_select_db ("database", $con) or die ("Connessione con il database non disponibile".mysql_error());

// leggo i valori di user e password
$user = $_SESSION['username'];
$pass = $_SESSION['password'];

$committente = mysql_query("SELECT nome_committente FROM utenti WHERE username = '$user' AND password = '$pass' ORDER BY id");

// estraggo il nome della tabella in cui sarà memorizzato il monitoraggio e lo salvo nella variabile $lavoro
$lavoro = mysql_result($committente,0);


if (isset ($_POST['excel']))
{
  $TBLmonit = $_POST['tab_monit'];
  $_SESSION['tab_monit'] = $TBLmonit;
  header ("refresh:1; url = excel.php");
}

    if (isset ($_POST['aggiorna']))
    {
      // leggo i valori di "data_inizio" e "data_fine" eliminando i trattini
      $min=$_POST['data_inizio'];
      $min1 = substr($min,0,4);
      $min2 = substr($min,5,2);
      $min3 = substr($min,8,2);
      $minore = $min1.$min2.$min3;
    
      $max=$_POST['data_fine'];
      $max1 = substr($max,0,4);
      $max2 = substr($max,5,2);
      $max3 = substr($max,8,2);
      $maggiore = $max1.$max2.$max3;
      
      if ($min == "Effettua una scelta" AND $max == "Effettua una scelta")
        exit();
      
      if ($min == "Effettua una scelta")
        exit();
      
      if ($max == "Effettua una scelta")
        exit();
    
      //trovo il min id e il max id
      $query=mysql_query("SELECT MIN(id) AS min, MAX(id) AS max FROM $lavoro WHERE $campo_data=$minore OR $campo_data=$maggiore");
      $riga=mysql_fetch_assoc($query);
      $id_min=$riga['min'];
      $id_max=$riga['max'];
      
    // estraggo i valori corrispondenti agli id
    // Se sull'asse X viene scelta la data o l'ora, l'ordinamento avviene per id, altrimenti avviene in base alla variabile X
      if (($campo_x == 'data') or ($campo_x == 'ora'))
      {
        $sql7="SELECT * FROM $lavoro WHERE id>=$id_min AND id<=$id_max ORDER BY id";   
      }
      else
      {
        $sql7="SELECT * FROM $lavoro WHERE id>=$id_min AND id<=$id_max ORDER BY $campo_x";   
      }   
    
      $sth7 = mysql_query($sql7) or die('Query fallita: ' . mysql_error());

      // "costruisco" indicando i nomi delle colonne della tabella - una deve essere in formato stringa (asse x) ed una in formato number (asse y)
      $table7['cols'] = array (
      array('label' => $campo_x, 'type' => 'string'),
      array('label' => $campo_y, 'type' => 'number')
      );
      $rows7 = array();
      if ($sth7)
      {
        while($r7 = mysql_fetch_assoc($sth7))
        {
          $temp7 = array();
          $temp7[] = array('v' => (string) $r7[$campo_x]);
          $temp7[] = array('v' => (float) $r7[$campo_y]);
          $rows7[] = array('c' => $temp7);
        }
      }
      $table7['rows'] = $rows7;
      $jsonTable = json_encode($table7);
    }

?>

</head>
Ciao, grazie
 
questa è la seconda parte del codice che parte immediatamente dopo </head>
Codice:
<body>

<div id="TESTATA">
</div>

<br />
<div id="CORPO">
    <div id="MENU">
        <br />
        <form method="post">
            <input name="guida" type="submit" value="Guida all'utilizzo" style="width:170px; height:30px; background-color:#CCCCFF; color:black; font-weight:bold;" onclick="" />
        <br />
            <hr />Unità di misura
        <br />
        <br />
            Fessure: mm
        <br />
            Angoli: gradi sessadecimali
        <br />
            Temperatura: °C
        <br />
            <hr />
            1. Documenti
        <br />
        <br />
            <input name="excel" style="width: 180px; height:30px; background-color:#CCCCFF;color:black;font-weight:bold;" type="submit" value="Esporta la tabella in excel" />
        <br />
            <hr />
            2. Dati COMPLETI
        <br />
        <br />
            <input name="aggiorna_totale" type="submit" style="height:30px; background-color:#CCCCFF;color:black;font-weight:bold;" value="TABELLA" />
            Pagina
        <select name="pagina" style="width: 50px">
            <?php
            // calcolo numero totale delle righe della tabella del database
              $record_totali = mysql_query("SELECT * FROM $lavoro");
              $N = mysql_num_rows ($record_totali);
         
            // calcolo numero pagine (ogni pagina visualizza 30 record) e chiudo la connessione
              $P=ceil($N/30);
              $con1 = mysql_close();
         
              // inserisco il numero delle pagine dentro il drop-down box
              for ($i=1; $i<=$P; $i++)
              {
              echo '<option>' .$i.'</option>';            
              }
            ?>
            </select>
        <br />
            <hr />3. Dati FILTRATI
        <br />
        <br />
            Inizio periodo
        <br />
            <select name="data_inizio" style="width: 170px">
            <?php
              $campo_data='data';
            // seleziono la colonna del tempo o delle letture con la variabile $campo_x che varia in base al login e alla dicitura "DISTINCT" che
            // scarta eventuali doppioni presenti in lista
              $drop_x = mysql_query("SELECT DISTINCT $campo_data FROM $lavoro ORDER by data");  // in questo modo le date vengono visualizzate in ordine crescente

              // inserisco all'interno del drop-down box la scritta "Effettua una scelta" seguita dalle date
              if ($campo_x == '')
              {
                echo '<option> Effettua una scelta </option>';
              }
              else
              {
                echo '<option>' .$campo_data.'</option>';
              }
         
              while ($record = mysql_fetch_array($drop_x))
              {
              echo '<option value='.$record[0].'>'.$record[0].'</option>';
              }
            ?>
            </select>
        <br />
            Fine periodo
        <br />
            <select name="data_fine" style="width: 170px">
            <?php
              $campo_data='data';
            // seleziono la colonna del tempo o delle letture con la variabile $campo_x che varia in base al login e alla dicitura "DISTINCT" che
            // scarta eventuali doppioni presenti in lista
              $drop_x = mysql_query("SELECT DISTINCT $campo_data FROM $lavoro ORDER by data");  // in questo modo le date vengono visualizzate in ordine crescente

              // inserisco all'interno del drop-down box la scritta "Effettua una scelta" seguita dalle date
              if ($campo_x == '')
              {
                echo '<option> Effettua una scelta </option>';
              }
              else
              {
                echo '<option>' .$campo_data.'</option>';
              }
         
              while ($record = mysql_fetch_array($drop_x))
              {
              echo '<option value='.$record[0].'>'.$record[0].'</option>';
              }
            ?>
            </select>
        <br />
            Asse X
        <br />
            <select name="asse_x" style="width: 170px">
            <?php
            // leggo i nomi delle colonne dalla tabella e le inserisco nel drop-down box
            $drop_x = mysql_query("SHOW COLUMNS FROM $lavoro");
            $campo_x = $_POST['asse_x'];  
            echo '<option> Effettua una scelta </option>';
            while ($record = mysql_fetch_array($drop_x))
            {
              if (($record[0]!='id') and ($record[0]!='umidita') and ($record[0]!='tempint'))          
              {
                echo '<option value='.$record[0].'>'.$record[0].'</option>';
              }
            }
            ?>
            </select>
        <br />
            Asse Y
        <br />
            <select name="asse_y" style="width: 170px">
            <?php
            // leggo i nomi delle colonne dalla tabella e le inserisco nel drop-down box
            $drop_y = mysql_query("SHOW COLUMNS FROM $lavoro");
            $campo_y = $_POST['asse_y'];
            echo '<option> Effettua una scelta </option>';
            while ($record = mysql_fetch_array($drop_y))
            {
              if (($record[0]!='id') and ($record[0]!='data') and ($record[0]!='ora') and ($record[0]!='umidita') and ($record[0]!='tempint'))
              {
                echo '<option value='.$record[0].'>'.$record[0].'</option>';
              }          
            }
            ?>

            </select>
        <br />
        <br />
            <input name="aggiorna" style="width: 170px;height:30px; background-color:#CCCCFF;color:black;font-weight:bold;" type="submit" value="VISUALIZZA DATI" />
        <br />
            <hr />4. Opzioni Visualizzazione
        <br />
        <br />
            <input name="nascondi_tab" style="width: 170px; height:30px; background-color:#CCCCFF; color:black;font-weight:bold;" type="button" value="Nascondi tabella" onclick="" />
        <br />
        <br />
            <input name="visualizza_tab" style="width: 170px; height:30px; background-color:#CCCCFF; color:black;font-weight:bold;" type="button" value="Visualizza tabella" onclick="" />
        <br />
        <br />
            <input name="stampa_tab" style="width: 170px; height:30px; background-color:#CCCCFF; color:black;font-weight:bold;" type="button" value="Stampa tabella" onclick="" />
        <br />
        <br />
            <input name="stampa_graph" style="width: 170px; height:30px; background-color:#CCCCFF; color:black;font-weight:bold;" type="button" value="Stampa grafico" onclick="" />
        <br />
        <br />
        </form>
    </div>
    <div id="GRAFICO">
   
<script type="text/javascript" src="../AppData/Local/Temp/smartstructure2/jsapi"></script>
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1.1", {packages:["line"]});
      google.setOnLoadCallback(drawChart);
     
      function drawChart() {
      var data = new google.visualization.DataTable(<?=$jsonTable?>);

      var options = {
            chart: {          
            title: 'Monitoraggio',
            subtitle: 'Acquisizione dati'},
            series: {
              // DEFINISCO GLI ASSI A CUI DARE IL NOME
            0: { axis: 'AsseY'}
          },
          axes: {
          // AGGIUNGO IL NOME ALL'ASSE
          y: {
             AsseY: {label: 'Asse Y'}
           }
          }
        };                
      var chart = new google.charts.Line(document.getElementById('linechart_material'));

        chart.draw(data, options);
      }
    </script>
   
    <div id="linechart_material" style="width: 850px; height: 350px; margin-left:auto; margin-right:auto"></div>
   
    </div>
</div>
<br />
<div id="TABELLA">

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1.1", {packages:["table"]});
      google.setOnLoadCallback(drawTable);

      function drawTable() {
        var data = new google.visualization.DataTable(<?=$jsonTable?>);

        var table = new google.visualization.Table(document.getElementById('table_div'));

        table.draw(data, {showRowNumber: true, width: '750px', height: '100%'});
      }
    </script>
   
    <div id="table_div"></div>

</div>

</body>

</html>
Ciao, grazie.
 
ciao
questo è un out html
HTML:
<!DOCTYPE html>
e anche questo (lo spazio)
PHP:
<!-- qui sotto cè uno spazio-->

<?php
header('location: pinco.php');
?>
quuindi o header prima di qualsiasi out html oppure es
PHP:
<?php
ob_start();
sesshion_start();
?>
<!DOCTYPE html><html><head></head>
<body>
<!-- .... -->
<?php
header('location: pinco.php');
?>
<!-- .... -->
</body></html>
<?php
ob_end_flush();
?>
 
Ciao a tutti. Vi ringrazio tantissimo, ora funziona alla grande!!! :D:D:D
Ciao, spero di contraccambiare in qualche modo.
 

Discussioni simili