Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore form mail

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    175

    Errore form mail

    Cari amici,
    su un sito utilizzo un form con relativo script e tutto va bene. riconosce la funzione header e mi riporta in un'altra pagina. Mentre un nuovo sito con lo stesso form e lo stesso script mi da questo errore:


    Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.lazzarottifiori.com/htdocs/send.php:58) in /home/mhd-01/www.lazzarottifiori.com/htdocs/send.php on line 65

    cosa può essere?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    175
    ti ringrazio per il consiglio. ma non mi faccio capace di una cosa...che lo stesso script su due server diversi...uno va bene e uno no...

    <?php

    $receiverMail = "info@********.com";

    $nome = ltrim(rtrim(strip_tags(stripslashes($_POST['nome']))));
    $paese = ltrim(rtrim(strip_tags(stripslashes($_POST['paese']))));
    $telefono = ltrim(rtrim(strip_tags(stripslashes($_POST['telefono']))));
    $email = ltrim(rtrim(strip_tags(stripslashes($_POST['email']))));
    $inizioservizio = ltrim(rtrim(strip_tags(stripslashes($_POST['inizioservizio']))));
    $giorno = ltrim(rtrim(strip_tags(stripslashes($_POST['giorno']))));
    $mese = ltrim(rtrim(strip_tags(stripslashes($_POST['mese']))));
    $anno = ltrim(rtrim(strip_tags(stripslashes($_POST['anno']))));
    $orainizio = ltrim(rtrim(strip_tags(stripslashes($_POST['orainizio']))));
    $destinazione = ltrim(rtrim(strip_tags(stripslashes($_POST['destinazione']))));
    $numeropasseggeri = ltrim(rtrim(strip_tags(stripslashes($_POST['numeropasseggeri']))));
    $pagamento = ltrim(rtrim(strip_tags(stripslashes($_POST['pagamento']))));
    $numerovolo = ltrim(rtrim(strip_tags(stripslashes($_POST['numerovolo']))));
    $nomecartello = ltrim(rtrim(strip_tags(stripslashes($_POST['nomecartello']))));
    $veicolo = ltrim(rtrim(strip_tags(stripslashes($_POST['veicolo']))));
    $piccolo = ltrim(rtrim(strip_tags(stripslashes($_POST['piccolo']))));
    $medio = ltrim(rtrim(strip_tags(stripslashes($_POST['medio']))));
    $grande = ltrim(rtrim(strip_tags(stripslashes($_POST['grande']))));
    $informazioni = ltrim(rtrim(strip_tags(stripslashes($_POST['informazioni']))));


    $ip = getenv("REMOTE_ADDR");
    $msgformat = "Inviata da: $nome ($ip)\nEmail: $email\n\n
    Paese: $paese;
    Telefono: $telefono;
    Inizio servizio:$inizioservizio
    Giorno: $giorno;
    Mese: $mese;
    Anno: $anno;
    Ora inizio: $orainizio;
    Destinazione: $destinazione;
    Numero Passeggeri: $numeropasseggeri;
    Pagamento: $pagamento;
    Numero volo: $numerovolo;
    Nome cartello: $nomecartello;
    Veicolo: $veicolo;
    Quantità bagaglio piccolo: $piccolo;
    Quantità bagaglio medio: $medio;
    Quantità bagaglio grande: $grande;
    Informazioni: $informazioni";




    // VALIDATION
    if(empty($nome) || empty($email)) {
    echo "<h3>Email non inviata</h3>

    Riempire tutti i campi obbligatori</p>";
    }
    elseif(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {
    echo "<h3>Errore</h3>

    indirizzo email non valido</p>";
    }
    else {
    if (mail($receiverMail, $subject, $msgformat, "From: $nome <$email>")) {
    echo "<h3>Prenotazione inviata correttamente</h3>";
    }

    else {
    echo "<h3>Errore server mail</h3>";
    }
    }
    header('Location: http://www.******.com/index.php?opti...d=9&Itemid=19/');
    ?>

  4. #4
    Originariamente inviato da sgugniz
    ti ringrazio per il consiglio. ma non mi faccio capace di una cosa...che lo stesso script su due server diversi...uno va bene e uno no...
    Se ti fossi preso la briga di leggere quanto suggerito, ti faresti capace invece.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    175
    guarda che l'ho vista...è che non riesco a darmi la risposta! sul tuo link leggo:

    In condizioni normali, se una di queste funzioni viene richiamata dopo che sono stati inviati dei dati al buffer d’uscita (es. tramite echo()/print() oppure con del codice HTML all’esterno dei tag PHP) verrà sollevato un Warning: Cannot modify header information - headers already sent ...

    Il motivo di questo warning è che PHP non può inviare degli header dopo che è iniziato l’invio dei dati. Puoi verificare se gli header sono già stati inviati tramite la funzione headers_sent().
    E’ utile studiare il contenuto di questo warning perché PHP indica chiaramente sia il file che la riga che ha iniziato l’invio dei dati. Ad esempio il seguente messaggio di errore ti informa che l’output dei dati è iniziato nel file /www/test_headers.php alla riga 1 (/www/test_headers.php:1).
    Warning: Cannot modify header information - headers already sent by (output started at /www/test_headers.php:1) in /www/test_headers.php on line 3
    Esistono principalmente due modi per evitare il sollevamento di questo warning:

    richiamare le funzioni che manipolano gli header prima dell’invio dei dati, oppure spostare l’invio dei dati al buffer d’uscita dopo le funzioni che manipolano gli header;
    abilitare l’output buffering.

    Ma non riesco a capire il perchè del funzionamento su una pagina e il mancato dall'altra!

  6. #6
    Mah ... e dire che c'è scritto a chiare lettere.

    Se su un server è abilitato l'output buffering mentre sull'altro no ....

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.