Visualizzazione dei risultati da 1 a 9 su 9

Discussione: errore con header

  1. #1

    errore con header

    Ciao,
    ho inserito la funzione header nella mia pagina di controllo login, nel caso in cui l'utente si logga, per fare il redirect ad una pagina e mi da il seguente errore:

    Warning: Cannot modify header information - headers already sent by (output started at /Verifica_utente.php:16) in /Verifica_utente.php on line 75

    perchè non funziona?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    perché probabilmente mostri qualcosa a schermo prima del redirect che fai tramite header

  3. #3
    quindi questa funzione non puo' essere usata se c'e' del codice html prima?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Esattamente.
    Puoi però usare il javascript per reindirizzare ad una pagina, ma non capisco il senso di mostrare a schermo qualcosa prima di reindirizzare l'utente.

  5. #5
    quindi questa funzione non puo' essere usata se c'e' del codice html prima?

  6. #6
    il motivo e' che c 'e' del codice fisso in ogni pagina che mostra il menu' la foto ed il logo aziendale. se invece racchiudo tutto il codice in una pagina .php e poi lo inserisco con l'include, risolvo lo stesso il problema?

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Sinceramente? Non ho capito
    Prova a mettere il codice che usi, anche inventato, così magari si trova insieme una soluzione

  8. #8
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Di norma prima di inviare un header non deve essere presente nessun tipo di output... sia esso un echo, html o anche solo un singolo spazio. La soluzione al tuo problema è quindi eliminare l'output che precede l'invio dell'header... oppure bufferizzare l'output da inviare

    Codice PHP:
    <?php

    ob_start
    (); // questo deve stare in cima a tutto

    // qui metti che vuoi e ovviamente gli headers

    ob_end_flush(); // qui rilasci l'output 

    etc etc
    Vedi tu cosa ti conviene fare... ma se fossi in te creerei un file contenente la struttura comune a tutte le pagine (logo, menu...) e la includerei in tutte le pagina DOPO aver fatto le operazioni sugli header. Decidi tu quale strada seguire.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  9. #9
    ok grazie proverò: però per farvi capire posto tutto il codice della pagina
    Praticamente questo è il file che permette il controllo del login e quindi di entrare poi nell'area privata al quale possono accedere solo gli utenti registrati.
    Io volevo implementare delle funzioni di Log in / Log out ed utilizzare per questo gli header

    Cmq il codice php è questo:

    <?php require_once("Session.php"); ?>




    <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Verifica Utente</title>
    <link href="stile.css" rel="stylesheet" type="text/css" />
    </head>

    <body>
    <div id="contenitore_sito">
    <div id="header">
    <div id="logo">[img]immagini/logo.jpg[/img]</div>
    <div id="menu_funz">

    <li >Home
    [*]Info
    <li >Mappa
    <li >Contatti
    <li >Credits

    </div>


    </div>
    <div id="sez_ricerca">
    <div id="sez_ric1">[img]immagini/header_grigio.jpg[/img]</div>
    <div id="sez_ric2">
    <ul id="menu_css_orizzontale">
    [*]AZIENDA[*]PROFILI[*]SERVIZI[*]GALLERIA
    [/list]
    </div>


    </div>
    <div id="foto">[img]immagini/Header_profili.jpg[/img]</div>
    <div id="sez_centr">

    <div class="sezione_verifica">




    <?php
    $utente = $_POST["utente"];
    $password = $_POST["password"];
    $id= $_GET['id'];

    include ("connetti.php");

    $richiesta="SELECT * FROM `utenti_privati` WHERE `Nome_utente` = '$utente' AND `Psw`= '$password'";

    $dati=mysql_query($richiesta);
    while($riga=mysql_fetch_array($dati))
    {
    $nome = $riga['Nome'];
    $cognome = $riga['Cognome'];



    }

    if(mysql_num_rows($dati)>0)
    {
    //accesso effettuato

    $messaggio .= "Utente trovato, login effettuato";
    $_SESSION['Id_utente'] = $trovato ['Id_utente'];
    $_SESSION['Nome_utente'] = $trovato ['Nome_utente'];
    header ("Location: Area_privata.php");\\così non funziona mentre con l'include funziona;
    }
    else

    echo ("<div class='testo_utente_errato'>

    Gentile utente,

    i tuoi dati non sono presenti nel nostro database. Vai alla pagina Registrati e compila il form inserimento dati.

    Cordiali saluti, Mercuri Alluminio srl

    </div>");


    echo "<div id='footer'>Mercuri Alluminio Srl; Tutti i diritti sono riservati 2011- P. Iva: 02221160027</div>";



    ?>
    <?php
    include ("chiudi.php");
    ?>


    </div>

    </div>
    </body>
    </html>

    Quindi volevo dire: se eliminino la parte html e la includo in una pagina php che inserisco qui con l' include ( "Header.php") mi da lo stesso errore quando poi faccio il redirect con la funzione header sotto?

    Cmq grazie per i suggerimenti..
    P.s. scusate ma non riesco a postare il codice correttamente con i tag previsti dal forum html

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 © 2024 vBulletin Solutions, Inc. All rights reserved.