Visualizzazione risultati 1 fino 5 di 5

Discussione: Problema con header delle sessioni

  1. #1
    L'avatar di effedigi
    effedigi non è connesso Neofita
    Data registrazione
    17-08-2005
    Residenza
    Bari
    Messaggi
    4

    Predefinito Problema con header delle sessioni

    Ciao a tutti!
    Ho il seguente problema con le sessioni:

    Warning: Cannot modify header information - headers already sent by (output started at
    C:\xampp\htdocs\wwwroot\Intranet\scrivi_log.txt:9) in
    C:\xampp\htdocs\wwwroot\Intranet\index.php on line 22

    Il codice di index.php è il seguente:

    <?php
    session_start();
    $_SESSION['loginOK'] = false;
    $_SESSION['username'] = 'guest';
    $_SESSION['password'] = '';
    $_SESSION['livello'] = 'guest';
    $_SESSION['position'] = 'index';
    /* ------------- CONNESSIONE ---------------

    ...parametri di connessione al db...

    -------------------------------------------- */
    $Utente = "GUEST";
    $Mes = " si e\' connesso";
    $Pos = "index";
    include("scrivi_log.txt");
    header('Location: home.php'); <---- RIGA 22 INDICATA DAL WARNING !!!!
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <TITLE>Intranet aziendale</TITLE>
    <META http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <META NAME="MSSmartTagsPreventParsing" content="true">
    <META NAME="DESCRIPTION" CONTENT="bla bla bla ... ">
    <META NAME="KEYWORDS" CONTENT="bla, bla, bla ....">
    <META NAME="Generator" CONTENT="Microsoft FrontPage 5.0">
    <META NAME="LANGUAGE" CONTENT="ITALIAN">
    <META NAME="ROBOTS" CONTENT="index">
    <META NAME="ROBOTS" CONTENT="follow">
    <link rel=stylesheet href="intranet.css" type="text/css">
    <script src="your_browser.js" type="text/javascript"></script>
    </head>

    <BODY>
    </body>
    </html>

    ... in pratica mi serve solo per settare in un certo modo alcune variabili di sessione.

    Riporto alcuni settaggi del php.ini:

    output_buffering = On
    expose_php = On
    register_globals = Off
    session.use_cookies = 1

    La cosa strana è questo stesso codice gira in una intranet aziendale dove ho installato Apache 2.0 php5 e mysql 4.2,
    mentre a sul PC di casa, dove ho installato XAMPP (Apache 2.0 php5.2 e mysql 4.x), continua a darmi il warning, e lo fa
    praticamente su tutti moduli dove c'è un 'session start'.

    Sono due giorni che continuo a fare tutte le prove possibili, ma non c'e' verso!.
    Mi date una mano?
    Ultima modifica di effedigi : 15-04-2008 alle ore 17.08.59
    Non hai capito davvero qualcosa se non sei in grado di spiegarlo a tua nonna...(A. Einstein)

  2. #2
    Guest

    Predefinito

    Se non ho letto male il messaggio di warning il problema potrebbe stare qui :

    Codice PHP:
    include("scrivi_log.txt");
    header('Location: home.php');

    non puoi reindirizzare l'header di una pagina se e' gia stato stampato codice html, e dato che scrivi_log.txt viene incluso come file di testo in automatico dopo hon puoi redirezionare la pagina.

  3. #3
    L'avatar di effedigi
    effedigi non è connesso Neofita
    Data registrazione
    17-08-2005
    Residenza
    Bari
    Messaggi
    4

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    Se non ho letto male il messaggio di warning il problema potrebbe stare qui :

    Codice PHP:
    include("scrivi_log.txt");
    header('Location: home.php');

    non puoi reindirizzare l'header di una pagina se e' gia stato stampato codice html, e dato che scrivi_log.txt viene incluso come file di testo in automatico dopo hon puoi redirezionare la pagina.
    In teoria ... hai ragione! La cosa stranissima è che QUEL codice gira perfettamente sulla Intranet aziendale di cui ho scritto prima.
    Inoltre nelle pagine del mio sito (effedigi.altervista.org) lo stesso codice funziona perfettamente e inoltre la session_start la metto tranquillamente nel BODY e poi faccio le include e le header vari ... insomma funziona tutto alla perfezione!!!
    Ho capito che la session_start dovrebbe venire prima di ogni output, ma allora perchè il mio sito funziona???
    Comunque ti posto il sorgente di scrivi_log.txt:

    <?php
    $DataLog = date("d/m/Y H:i:s");
    $ID = fopen("logfile.html","a");
    fputs($ID,"\r\n");
    fputs($ID,"$DataLog - $Pos - $Utente -> $Mes");
    fclose($ID);
    ?>
    Non hai capito davvero qualcosa se non sei in grado di spiegarlo a tua nonna...(A. Einstein)

  4. #4
    Guest

    Predefinito

    Dato che scrivi_log.txt contiene codice php io gli toglierei l'estensione txt in modo da evitare che qualcuno possa arrivare a leggere il codice contenuto.

    Per il resto dato che qui su av e sul tuo server aziendale funziona potrebbe essere che il problema sia dovuto alla configurazione del file php.ini.

    Hai controllato che i settaggi del tuo php.ini siano uguali a quelli del server aziendale?

  5. #5
    L'avatar di effedigi
    effedigi non è connesso Neofita
    Data registrazione
    17-08-2005
    Residenza
    Bari
    Messaggi
    4

    Predefinito

    Citazione Originalmente inviato da ilpcportal Visualizza messaggio
    Hai controllato che i settaggi del tuo php.ini siano uguali a quelli del server aziendale?
    Ovviamente si: sono identici a parte i path. Ora che ci penso, non ho controllato i moduli delle estensioni, xke xampp ne ha molti di piu e sono ordinati diversamente. Provero a controllarli uno per uno!
    Grazie comunque. Ciao!
    Non hai capito davvero qualcosa se non sei in grado di spiegarlo a tua nonna...(A. Einstein)

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •