Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327

    Form Mail in HTML & PHP email in arrivo vuote.

    Scusatemi, qualcuno saprebbe illuminarmi su questa mia perplessità?

    Ho un form in html5 così composto:

    codice HTML:
    <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
                                    <div class="form-group">
                                        <input type="text" name="name" class="form-control" required="required" placeholder="Nome">
                                    </div>
                                    <div class="form-group">
                                        <input type="email" name="email" class="form-control" required="required" placeholder="Email">
                                    </div>
                                    <div class="form-group">
                                        <textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Scrivi il messaggio"></textarea>
                                    </div>                        
                                    <div class="form-group">
                                        <button type="submit" class="btn btn-primary pull-right">Invia</button>
                                    </div>
                                </form>        
    Invio la mail in questo modo:

    Codice PHP:
    <?php    header('Content-type: application/json');    $status = array(        'type'=>'success',        'message'=>'Grazie per la tua richiesta. Ci metteremo in contatto con te al più presto possibile! '    );
        
    $name = @trim(stripslashes($_POST['name']));     $email = @trim(stripslashes($_POST['email']));     $subject = @trim(stripslashes($_POST['subject']));     $message = @trim(stripslashes($_POST['message'])); 
        
    $email_from $email;    $email_to 'miamail@miamail.it';//replace with your email
        
    $body 'Name: ' $name "\n\n" 'Email: ' $email "\n\n" 'Subject: ' $subject "\n\n" 'Message: ' $message;
        
    $success = @mail($email_to$subject$body'From: <'.$email_from.'>');
        echo 
    json_encode($status);    die;?>
    Adesso, la mail arriva......ma vuota. Perchè?
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  2. #2
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Il subject non credo venga impostato.
    Prova ad usare questo metodo, di solito non ho mai avuto problemi

    codice:
    $destinatario ="email@destinatario.it";
    $headers .= "From: $nome<$email>\r\n";  
    $headers .= "X-Sender: <$email>\r\n";
    $headers .= "X-Mailer: PHP\r\n"; 
    $headers .= "X-Priority: 3\r\n"; //1 UrgentMessage, 3 Normal 
    $headers .= "Return-Path: <$email>\r\n"; // Return-path 
    $oggetto = "Richiesta informazioni dal sito miosito.it";
    $corpo ="Qualcuno ha fatto una richiesta di informazioni
    
    Nome:$nome
    Telefono: $telefono
    Email: $email
    
    ha fatto la seguente richiesta:
    $richiesta
    ";
    
    if(mail($destinatario, $oggetto, $corpo, $headers)){
        //Email inviata
    }else{
        //Errore nell'invio
        }

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    Ciao Sgogghy...grazie per la tua disponibilità.
    Ho provato con il codice che mi hai postato, ma la mail arriva sempre vuota,
    ......come è possibile?
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  4. #4
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Bè puoi provare a stampare le variabili del form nella pagina sendmail.php per controllare se vengono portare correttamente, in questo modo puoi escludere se è un problema di invio.
    Potresti anche dichiarare una variabile nella pagina sendmail.php e metterla nel body dell'email e controllare se questa viene spedita correttamente.
    Insomma un po' di test per vedere dove può essere situato il problema

  5. #5
    Quote Originariamente inviata da p73 Visualizza il messaggio
    Scusatemi, qualcuno saprebbe illuminarmi su questa mia perplessità?

    Ho un form in html5 così composto:

    codice HTML:
    <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
                                    <div class="form-group">
                                        <input type="text" name="name" class="form-control" required="required" placeholder="Nome">
                                    </div>
                                    <div class="form-group">
                                        <input type="email" name="email" class="form-control" required="required" placeholder="Email">
                                    </div>
                                    <div class="form-group">
                                        <textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Scrivi il messaggio"></textarea>
                                    </div>                        
                                    <div class="form-group">
                                        <button type="submit" class="btn btn-primary pull-right">Invia</button>
                                    </div>
                                </form>        
    Invio la mail in questo modo:

    Codice PHP:
    <?php    header('Content-type: application/json');    $status = array(        'type'=>'success',        'message'=>'Grazie per la tua richiesta. Ci metteremo in contatto con te al più presto possibile! '    );
        
    $name = @trim(stripslashes($_POST['name']));     $email = @trim(stripslashes($_POST['email']));     $subject = @trim(stripslashes($_POST['subject']));     $message = @trim(stripslashes($_POST['message'])); 
        
    $email_from $email;    $email_to 'miamail@miamail.it';//replace with your email
        
    $body 'Name: ' $name "\n\n" 'Email: ' $email "\n\n" 'Subject: ' $subject "\n\n" 'Message: ' $message;
        
    $success = @mail($email_to$subject$body'From: <'.$email_from.'>');
        echo 
    json_encode($status);    die;?>
    Adesso, la mail arriva......ma vuota. Perchè?
    secondo me l'errore è nell'impostare dei DIV all'interno di un FORM, prova a togliere i DIV lasciando solo gli input e separandoli da un <br> e vedi cosa succede.

  6. #6
    il br non si usa mai
    se non sei un poeta
    controlla o meglio scegli un enctype

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    327
    Io sto impazzendo con questo form.

    Sgogghy...facendo alcune prove vedo che non mi passa proprio le variabili, quindi presumo che il problema sia nel form.......
    ......i <br> di cui parla
    Galletziz non penso c'entrino niente, i dv servono comunque per l'impostazione grafica del form.
    Qualcuno saprebbe aiutarmi? Grazie!
    Errare è umano, Perseverare è Diabolico.
    sapiente è colui ke sa di non sapere.

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    questo il log ....

    mail() on [C:\Web_Sites\__Test\PHP\TEST\x\sendemail.php:19]: To: miamail@miamail.it -- Headers: From: <info@example.com>

    PHP Notice: Undefined index: subject in C:\Web_Sites\__Test\PHP\TEST\x\sendemail.php on line 10
    PHP Warning: json_encode(): Invalid UTF-8 sequence in argument in C:\Web_Sites\__Test\PHP\TEST\x\sendemail.php on line 20
    {"type":"success","message":null}

    ciao
    Marino

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    Codice PHP:
    <?php 
    $name 
    trim(stripslashes($_POST['name'])); 
    $email trim(stripslashes($_POST['email'])); 
    // $subject = trim(stripslashes($_POST['subject'])); 
    $subject 'xyz'
    $message trim(stripslashes($_POST['message'])); 
    $email_from $email
    $email_to 'miamail@miamail.it';
    $body 
    'Name: '.$name."\n\n"
    .'Email: '.$email."\n\n"
    .'Subject: '.$subject."\n\n"
    .'Message: '.$message;
    $header 
    "MIME-Version: 1.0\r\n"
    ."Content-type: text/html; charset=utf-8\r\n"
    ."From: <".$email_from.">\r\n";
    $status = array( 
      
    'type'=>'success'
      
    'message'=>'Grazie per la tua richiesta. Ci metteremo in contatto con te al più presto possibile! ' 
    );
    $success mail($email_to$subject$body$header);
    if (
    $success) print "<b>MESSAGGIO INVIATO</b>";
    else  print 
    "<b>ERRORE : MESSAGGIO NON INVIATO</b>";
    // echo json_encode($status); 
    die;
    ?>
    poi controlla di avere impostato bene,
    SMTP server
    porta
    eventuale crittografia
    user id
    password
    a meno che non siano già impostate dal servizio di hosting
    ciao
    Marino

  10. #10
    Utente di HTML.it L'avatar di sgogghy
    Registrato dal
    Sep 2010
    Messaggi
    237
    Se puoi controlla che l'impostazione del server "register_global" sia impostato su ON

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.