• User

    problemi con l'header

    ciao a tutti:)...ho deciso di imparare il php, e grazie alla guida sul sito ho fatto qualcosa, ma ora ho un problema che non riesco a risolvere:bho:.praticamente ho un file inserisci.php dove l'utente risp alle domande e un file salva.php dove le risposte che vengono inserite vanno nel db mysql, solo che se le dom o 1 o 2o 3 non hanno risposta voglio andare per esempio ad un'altra pag errore.php, solo che con header mi da questo errore:
    Warning: Cannot modify header information - headers already sent by (output started at
    c:\programmi\easyphp1-8\www\prova\config.inc.php:14) in c:\programmi\easyphp1-8\www\prova\salva.php on line 31
    credo di aver capito che header nn sta bene con include ma ho provato tutto e non ci riesco a farlo funziona.grazie per las risposta;).

    inserisco i file:
    inserisci.php

    <html>
    <body>
    <?php
    include("config.inc.php");
    <form method="post" action="save.php">
    <right>
    SEZIONE A: INFORMAZIONI GENERALI<br><br>
    1-ETA':<br><br>
    <input type="radio" name="eta" value="da 18 a 24 anni">da 18 a 24 anni
    <input type="radio" name="eta" value="da 25 a 34 anni">da 25 a 34 anni
    <input type="radio" name="eta" value="da 35 a 44 anni">da 35 a 44 anni
    <input type="radio" name="eta" value="da 45 a 55 anni">da 45 a 55 anni
    <input type="radio" name="eta" value="oltre 55 anni">oltre 55 anni<br><br>
    2-SESSO :<br><br>
    <input type="radio" name="sesso" value="M">M
    <input type="radio" name="sesso" value="F">F<br><br>
    3-QUALIFICA<br><br>
    <input type="radio" name="personale" value="tecnico-amministrativo">tecnico-amministrativo
    <input type="radio" name="personale" value="docente">docente <br> <br>
    SEZIONE B: ORARIO DI LAVORO <br> <br>
    1-COME E' ARTICOLATO IL SUO ORARIO DI LAVORO?<br><br>
    <input type="radio" name="orario" value="su 5 gg per 7 ore e 12 min">su 5 gg per 7 ore e 12 min
    <input type="radio" name="orario" value="su 5 gg: 6 ore per 3 gg e 9 ore per 2 gg">su 5 gg: 6 ore per 3 gg e 9 ore per 2 gg
    <input type="radio" name="orario" value="su 4 giorni">su 4 giorni<br>
    altro(specificare): <input type="text" name="orario_altro" size="40"><br><br>
    <br><br><br><input type="submit" value="invia i dati">
    <input type="reset" value="cancella">
    </form>
    <hr>
    ?>
    </body>
    </html>

    salva.php

    <?php
    include("config.inc.php");
    $eta=$_REQUEST['eta'];
    $sesso=$_REQUEST['sesso'];
    $personale=$_REQUEST['personale'];
    $orario=$_REQUEST['orario'];
    $orario_altro=$_REQUEST['orario_altro'];
    if ($eta == "" OR $sesso == "" OR $personale == ""){
    header("Location:http//localhost/prova/errore.php");
    exit;}
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php<br><br>");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php<br><br>");
    $query = "INSERT INTO questionario_piurisp (orario,
    orario_altro) VALUES ('$orario', '$orario_altro')";
    if (mysql_query($query, $db))
    echo "LE RISPOSTE SONO STATE INSERITE CORRETTAMENTE PER LA DOMANDA 4<br><br>";
    else
    echo "ERRORE DURANTE L'INSERIMENTO NEL DATABASE DELLA DOMANDA 4<br><br>";
    $query = "INSERT INTO questionario_unarisp (eta, sesso, personale) VALUES ('$eta', '$sesso', '$personale')";
    if (mysql_query($query, $db))
    echo "LE RISPOSTE SONO STATE INSERITE CORRETTAMENTE PER LE DOMANDE 1-2-3<br><br>";
    else
    echo "ERRORE DURANTE L'INSERIMENTO NEL DATABASE DELLE DOMENDE 1-2-3<br><br>";
    mysql_close($db);
    ?>


  • Super User

    Nel file config.inc.php hai già un output, gli header vanno inviati per primi


  • User

    ciao, grazie. non sono molto esperto, cioè che dovrei fare?mettere include("config.inc.php") dopo il controllo if?


  • Super User

    Si, fai questa prova e vedi che succede


  • User

    ho fatto così:
    <?php
    $eta=$_REQUEST['eta'];
    $sesso=$_REQUEST['sesso'];
    $personale=$_REQUEST['personale'];
    $orario=$_REQUEST['orario'];
    $orario_altro=$_REQUEST['orario_altro'];
    if ($eta == "" OR $sesso == "" OR $personale == ""){
    header("Location:http//localhost/prova/errore.php");
    exit;}
    include("config.inc.php");
    .....

    ma mi da errore:
    Warning: Cannot modify header information - headers already sent by (output started at
    c:\programmi\easyphp1-8\www\prova\salva.php:14) in c:\programmi\easyphp1-8\www\prova\salva.php on line 8


  • User

    ciao, ne ho provate di tutte ma non funziona, mica hai trovato da darmi una soluzione? mi va benissimo anche un'altra soluzione!!grazie 😉


  • User

    ragazzi mi date una mano?


  • Super User

    Prima di <?php non deve esserci alcuno spazio, controlla che si trovi proprio all'inizio del file


  • User

    ho controllato non fa. io i dati li passo con una form post, poi li devo recuperare nella pag salva.php e quindi fare il controllo if. non è che che richiamando i valori tramite request da noia?forse devo usare $_POST[]?oppure richiamo i valori tramite request poi include("controllo.php") dove in controllo.php ci metto l'if con l'header?spero di essermi spiegato, grazie