• User Newbie

    La riga 10 dello script titan.php produce un output (echo o ?>) e per qualche ragione viene eseguita prima dell'istruzione header("Location...") e questo provoca un errore perché gli header della risposta HTTP possono essere modificati solo prima che il server inizi l'output.

    Tuttavia ho letto da qualche parte che lo stesso errore può essere generato se lo script PHP non termina esattamente con ?>, in pratica dopo l'ultimo tag di chiusura dello scripting lato server, non dev'esserci neanche un carattere, neanche un "a capo".


  • User Attivo

    Questo è il codice della pagina titan.php: penso sia tutto ok.
    Ho riprovato la stessa pagina su altervista e funziona benissimo 😞

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <?PHP
       header("location: http://www.gazzetta.it"); 
    ?>
    </body>
    </html>
    

  • Super User

    Prova così

    
    <?PHP
       header("location: [http://www.gazzetta.it](http://www.gazzetta.it/)"); 
    ?> 
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    
    </body>
    </html>
    
    

  • User Attivo

    Non funziona lo stesso... ma non è che devo impostare qualche parametro sul server?? Come mai su altervista funziona??


  • User Attivo

    Nessuna soluzione??

    Se qualcuno mi sa dire come realizzare la stessa cosa in un altro modo va bene lo stesso... l'importante che mi faccia il redirect su un altra pagina... non è importante che sia php.


  • Super User

    [php]<?php
    header("location: http://www.gazzetta.it");
    exit();
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    </head>
    <body>

    </body>
    </html>[/php]


  • User Attivo

    Perfetto.... thanks a lot!! :ciauz:


  • Super User

    @asso82 said:

    Perfetto.... thanks a lot!! :ciauz:

    de nada 🙂


  • User Newbie

    Ciao, mi attacco qui tanto il tema è lo stesso...

    Io ho una pagina web con codice html, vari div, ecc. se metto un header all'interno della pagina non funziona, se lo metto all'inizio, prima di tutto, si. Però in questo modo la scritta che mi produce l'header mi viene in cima alla pagina, e non all'interno dove dovrebbe stare... come posso fare?

    Ecco il codice:

    <?php
    include_once("include/config.php");
    include_once("include/auth.lib.php");

    list($status, $user) = auth_get_status();
    if($status == AUTH_NOT_LOGGED){
    $uname = strtolower(trim(isset($_POST['uname'])));
    $passw = strtolower(trim(isset($_POST['passw'])));
    if($uname == "" or $passw == ""){
    $status = AUTH_INVALID_PARAMS;
    }else{
    list($status, $user) = auth_login($uname, $passw);
    if(!is_null($user)){
    list($status, $uid) = auth_register_session($user);
    }
    }
    }

    switch($status){
    case AUTH_LOGGED:
    header('LOCATION: http://127.0.0.1:81/Museo2/index.php');
    echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
    break;
    case AUTH_INVALID_PARAMS:
    header('LOCATION: http://127.0.0.1:81/Museo2/index.php');
    echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
    break;
    .............
    .............
    }
    ?>

    <html>
    <head>
    <title>Index</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="stile.css"></head>
    <body>
    <div id="container">
    <div id="content">
    ...........
    [la scritta dell'header dovrebbe stare qua]
    ............
    </div>
    </div>
    </body>
    </html>


  • Moderatore

    metti gli

    exit; dopo gli header 😄


  • User

    ciao mi allaccio anch'io alla discussione, mica potreste darmi una mano?io vorrei che se un utente non risp alle domande 1o 2 o 3 lo script lo manda in una pag errore.php. grazie:bho: mi va benissimo anche una soluzione alternativa!

    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
    $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");
    $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);
    ?>


  • User

    Occhio anche alla L di location che va maiuscola. Da qualche parte ho letto che la L maiuscola è più "compatibile" di quella minuscola.