Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Warning: Cannot modify header information - headers already sent by

    Ragazzi ho un problema che non so come risolvere, allora ho una pagina che mi recupera dei dati a seconda di cosa fa l'utente, il problema e che per ogni azione la pagina deve reindirizzare l'utente ad un altra pagina con la funzione haders, solo che mi restituisce sempre questo errore:

    Warning: Cannot modify header information - headers already sent by

    So che non deve essere messo prima di nessun echo e senza spazi vuoi ma nel mio caso come faccio?
    Codice PHP:
    switch ($action) {
        case 
    'Iscriviti':
        
    $email = (isset($_POST['email'])) ? $_POST['email'] : '';
        
        
    $query 'select user_id from ml_users';
        
    $result mysql_query($query$db) or die (mysql_error($db));    
        
        if(
    mysql_num_rows($result) > 0) {
            
    $row mysql_fetch_assoc($result);
            
    $user_id $row['user_id'];
        } else {
            
    $query 'insert into ml_users (email, user_id) values ("' mysql_real_escape_string($email$db) . '")';
            
    mysql_query($query$db);
            
    $user_id mysql_insert_id($db);
        }
        
    mysql_free_result($result);
        
                
    $query 'insert into ml_subscriptions
                (user_id, pending)
                values
                (' 
    $user_id ', TRUE) ';
                
    mysql_query($query$db);    
                
                
    $message 'Salve,' "\n" .
                
    $message .='Conferma questo indirizzo di e-mail per essere inserito nella nostra newsletter, basta
                cliccare il link qui sotto:' 
    "\n\n";
                
    $message .= 'ml_user_transact.php?user_id=' .
                
    $user_id .'&action=confirm' "\n\n\n";    
                
    $message .='Se invece questa e-mail ti giunge in errore ignorala'"\n\n\n";
                
                
    $mail = new SimpleMail();
                
    $mail->setToAddress($email);
                
    $mail->setFromAddress('');
                
    $mail->setSubject('Conferma Iscrizione Newsletter');
                
    $mail->setTextBody($message);
                
    $mail->send();
                unset(
    $email);
                
    header('Location: ml_thanks.php');
                break;


  2. #2
    potresti provare a mettere

    ob_start();

    prima dello switch

    e poi


    ob_end_flush();

    alla riga sotto la header location

  3. #3
    Grazie webking2003 tu mi vieni sempre in aiuto cmq non posso metterlo perchè ho diversi case, quindi se lo metto prima dello switch è uguale per tutti, io dovrei avere un header diverso per ogni case.

  4. #4
    al 99% ciò si verifica xkè nella pagina nella quale hai questo script hai qualche altro output.
    Ad esempio:
    - vi qualche echo
    - vi è una riga bianca in cima allo pagina
    - vi è html generico fuori al tag <?php ?>

  5. #5
    Non lo posso mettere alla prima riga xk ogni case ha una pagina diversa
    es:
    Codice PHP:
    switch ($action) {
        case 
    'Iscriviti':
            
    header('Location: ml_thanks.php');

    //altro case
            
    case 'cancellati':
            
    header('Location: ml_delete.php');

    come posso fare?

  6. #6
    Questo mi genera errore, non capisco perchè:
    Codice PHP:
    <?
    require 'db.inc.php';
    require 
    'class.SimpleMail.php';
    $db mysql_connect (MYSQL_HOSTMYSQL_USERMYSQL_PASSWORD) or 
    die(
    'Non è possibile collegarsi al db!');
    mysql_select_db(MYSQL_DB$db) or die (mysql_error($db));
    $action = (isset($_REQUEST['action'])) ? $_REQUEST['action'] : '';
    switch (
    $action) {
        case 
    'Iscriviti':
        
    ob_start();
        
    header ('Location: case.php');
        
    ob_end_flush();
        
    //RECUPERA E-MAIL
        
    $email = (isset($_POST['email'])) ? $_POST['email'] : '';
        
        
    $query 'SELECT
        user_id 
        FROM 
        ml_users
        WHERE
        email="' 
    mysql_real_escape_string($email$db) . '"';
        
    $result mysql_query($query$db) or die (mysql_error($db));    
        
        if(
    mysql_num_rows($result) > 0) {
            
    $row mysql_fetch_assoc($result);
            
    $user_id $row['user_id'];
        } else {
            
    $lastname = (isset($_POST['lastname'])) ? 
            
    $_POST['lastname'] : '';
            
            
    $query 'INSERT INTO
            ml_users 
            (email,lastname)
            VALUES 
            ("' 
    mysql_real_escape_string($email$db) . '", ' .
            
    '"' .  mysql_real_escape_string($lastname$db) . '")';
            
    mysql_query($query$db);
            
    $user_id mysql_insert_id($db);
        }
        
    mysql_free_result($result);
        
                
    $query 'INSERT INTO
                ml_subscriptions
                (user_id, pending)
                VALUES
                (' 
    $user_id ', TRUE)';
                
    mysql_query($query$db);    
                
                
    $message 'Salve '  $lastname "\n" .
                
    $message .='Conferma questo indirizzo e-mail per essere inserito nella nostra newsletter, basta
                cliccare il link qui sotto:' 
    "\n\n";
                
    $message .= 'http://www.adhoc-group.it/test/ml_user_transact.php?user_id=' .
                
    $user_id .'&action=ok' "\n\n\n";    
                
    $message .='Se invece questa e-mail ti giunge in errore ignorala'"\n\n\n";
                
    $message .='Per ulteriori informazioni vista il nostro sito web'"\n";
                
    $message .='http://www.adhoc-group.it/test';
                
                
    $mail = new SimpleMail();
                
    $mail->setToAddress($email);
                
    $mail->setFromAddress('newsletter@adhoc-grouop.it');
                
    $mail->setSubject('Conferma Iscrizione Newsletter');
                
    $mail->setTextBody($message);
                
    $mail->send();
                unset(
    $email);
    break;
    mi da sempre :
    Warning: Cannot modify header information - headers already sent by

  7. #7
    Hai tolto gli spazi vuoti prima di <? spero...

  8. #8
    Ho risolto grazie lo stesso!!

  9. #9
    Originariamente inviato da goikiu
    Hai tolto gli spazi vuoti prima di <? spero...
    Ciao Jigulina, scusa, avrei lo stesso problema, potresti dire come lo hai risolto?
    Grazie
    Alessandra

  10. #10
    si metti, all 'inizio dell script proprio come prima riga questo:
    <?php
    ob_start();
    ?>

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