Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138

    Warning: Cannot modify header information....

    Sono sicuro che di quest'errore si sia già parlato tanto, quindi probabilmente qualcuno mi saprà dire il perchè e in cosa sbaglio poichè ho bisogno di capire.
    Ho realizzato molte volte uno script di login, però visto che all'inizio mi trovai di fronte a quest'errore ho usato sempre funzioni di redirect diverse dal "header" e in alcuni casi la funzione ob_start per permettere il corretto funzionamento di qualche script, ora però vorrei capire il perchè di questo errore in cosa sbaglio nello scrivere uno script? qualcuno può dare a questo semplice codice di uno script che effettua il login che genere l'errore:

    Warning: Cannot modify header information - headers already sent by (output started at xxx\login.php8) in xxx\login.php on line 26

    Codice PHP:
    <?
    //Effettuo la connessione al database
    include("connessione.php");

    //recupero username e password dal sito
    $password $_POST['password'];
    $username $_POST['username'];

    //simulo che esistano dei dati accesso amministratore
    $usernameadmin "pinco";
    $passwordadmin "palla";

    //se non hai inserito tutte le informazioni
    if (empty($password)|empty($username))
    {
            
    //genero l'alarm
            
    ?>
            <SCRIPT type="text/javascript">
            alert("Non hai inserito la password oppure l'username!");
            </SCRIPT>
            <?
            header
    ("Location: modulologin.php"); //si ricarica la pagina di login
            
    exit; 
    }
     
    //effettuo il controllo se sono o meno l'amministratore
    if (($username==$usernameadmin)&($password==$passwordadmin))
    {
            
    //genero l'alarm
            
    ?>
            <SCRIPT type="text/javascript">
            alert("Benventuo Amministratore! Sta per essere reindirizzato al suo  
                              pannello di controllo");
            </SCRIPT>
            <?
            header
    ("Location: pannello_di_controllo.php"); //si carica il pannello di   
                              
    controllo
            
    exit; 
    }
    else
    {
            
    //seleziono le informazioni prenseti nel database corrispondenti a 
                             
    username e password inseriti
            $query
    ="query di selezione delle info";
            
    $result mysql_query($query$db);
            
    //conto i risultati
            
    $num_occorrenze mysql_num_rows($result);
            if (
    $num_occorrenze==0)
                {
                    
    //genero l'alarm
                    
    ?>
                    <SCRIPT type="text/javascript">
                    alert("Spiacente! Ha inserito  
                                                       password e/o username non ricoosciuti o non esatti");
                    </SCRIPT>
                    <?
                             header
    ("Location: modulologin.php"); //si carica il 
                                                       
    pannello di controllo
                             
    exit; 
                }
            if (
    $num_occorrenze==1)
                {
                    
    //genero l'alarm
                    
    ?>
                    <SCRIPT type="text/javascript">
                             alert("Benvenuto! Lei è l'utente xxx e sta per essere 
                                                       reindirizzato!");
                    </SCRIPT>
                    <?
                    header
    ("Location: paginax.php"); //si carica il 
                                                       
    pannello di controllo
                    
    exit; 
                }
    }        
    //Chiudo la connessione
    mysql_close($db);
    ?>

  2. #2
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782

    Re: Warning: Cannot modify header information....

    Originariamente inviato da zeroh

    Codice PHP:

    .....
            //genero l'alarm
            <SCRIPT type="text/javascript">
            alert("Non hai inserito la password oppure l'username!");
            </SCRIPT>
            <?
            header
    ("Location: modulologin.php"); //si ricarica la pagina di login
            
    exit; 
    ....
    ?>
    Due volte lo stesso errore, non puoi mandare header dopo aver già mandato dell'output...
    Gli header sono la primissima cosa da mandare. A meno di eseguire il buffering con ob_start() ma in quel caso la pagina viene mandata solo alla fine....

    In ogni caso non capisco il senso di mandare un alert javascript e fare un redirect http...
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  3. #3
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Grazie di avermi segnalato l'errore, io di solito non ho mai usato l'alert, ma sto lavorando ad un progetto per il tirocinio di laurea dove il mio predecessore ne faceva abbondante uso (richiesto dall'ingegnere del progetto) e dunque non avevo considerato che fosse un output. Scusate il disturbo e grazie ancora!

  4. #4
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Ops ho parlato troppo presto anche togliendo tutti gli alarm il problema permane lo stesso, per la cronaca per testare gli script in locale utilizzano easyphp quini non PHP 5

  5. #5
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    nessuno sa aiutarmi?

  6. #6
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Ho testato uno script minimo eppure l'errore è sempre lo stesso
    Codice PHP:
    <html>
    <body>
    <?

    //flag
    $flag1;

    //se non hai inserito tutte le informazioni
    if ($flag==1)
    {
            
    header("Location: index.php"); //si ricarica l'idex
            
    exit; 
    }
    ?>
    </body>
    </html>

  7. #7
    Codice PHP:
     <?
            header
    ("Location: modulologin.php"); //si ricarica la pagina di login
            
    exit; 
    ?>
    ma, dato che già usi javascript, perchè , non scrivi:

    Codice PHP:

    //genero l'alarm
            
    <SCRIPT type="text/javascript">
            
    alert("Non hai inserito la password oppure l'username!");
            
    </SCRIPT>
                    [B]
                                    <SCRIPT language="JavaScript">

                    window.location="modulologin.php";

                    </SCRIPT>
        
                    [/B] 

  8. #8
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Di solito questa è la soluzione che utilizzo e ho utilizzato negli script che ho fatto. Lo scopo di questa discussione non era il trovare una soluzione alternativa ma era capire perchè la soluzione header non funzionasse, e se sbagliavo io in qualche modo ad usarla.
    Grazie del consiglio!

  9. #9
    ok, capisco.
    analizzando...


    to hai gia tolto gli alert prima del HEADER vero?
    questo file è per caso incluso in qualche altro file con iclude o require?

    come le hai sostituite le ALERT?

    prova a togliere ogni possibile istruzione di stampa ed eseguire il file.

  10. #10
    Utente di HTML.it L'avatar di zeroh
    Registrato dal
    Feb 2002
    Messaggi
    138
    Guarda l'ultimo codice che ho postato, è banalissimo e contiene una sola stampa eppure mi da errore Warning: Cannot modify header information....

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.