Sendmail PHP invia mail vuote

Cry

Nuovo Utente
25 Gen 2017
7
1
1
Salve a tutti, come da titolo ho un problema con il mio form per i contatti, tutto funziona bene, la mail arriva, ma è completamente vuota.

PHP:
<?php
    include('config.php');
 
    $email_to =   '[email protected]';
    $name     =   $_POST['name'];
    $email    =   $_POST['email'];
    $subject  =   $_POST['subject'];
    $message  =   $_POST['message'];
 

    $headers  = "From: $email\n";
    $headers .= "Reply-To: $email\n";
 
    if(mail($email_to, $subject, $message, $headers)){
        echo 'sent';
    }else{
        echo 'failed';
    }
?>

Premetto che non ho conoscenze di PHP, ma il mio obbiettivo era comunque di impostare un piccolo script per l'invio automatico di mail.
Purtroppo però qualcosa non funziona, ma non riesco a capire cosa, sembrerebbe che non vengano letti i campi del form, tutto però sembra a posto.

Invio anche il codice HTML del form

HTML:
            <div class="col-sm-6">
              <form id="main-contact-form" name="contact-form" role="form" method="post" action="sendmail.php">
                <div class="row  wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
                  <div class="col-sm-6">
                    <div class="form-group">
                      <input type="text" name="name" class="form-control" placeholder="Nome" required="required">
                    </div>
                  </div>
                  <div class="col-sm-6">
                    <div class="form-group">
                      <input type="email" name="email" class="form-control" placeholder="E-Mail" required="required">
                    </div>
                  </div>
                </div>
                <div class="form-group">
                  <input type="text" name="subject" class="form-control" placeholder="Oggetto" required="required">
                </div>
                <div class="form-group">
                  <textarea name="message" id="message" class="form-control" rows="4" placeholder="Scrivi il messaggio" required="required"></textarea>
                </div>                     
                <div class="form-group">
                  <button type="submit" class="btn-submit">Invia</button>
                </div>
              </form> 
            </div>
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, ho provato il codice e funziona correttamente. ovviamente se non scrivi nulla nella textare la mail arriva vuota.
 

Cry

Nuovo Utente
25 Gen 2017
7
1
1
Appunto per questo, io compilo tutto il form, invio con il bottone e la mail arriva.
Ma risulta completamente vuota, non mi invia niente di ciò che ho inserito nel form
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
quello che ti arriva è solo il contenuto della textarea e cioè il campo "message"
prova a cambiare
Codice:
$message  =   $_POST['message'];
con
Codice:
$message = $_POST['message'] . " nome " . $_POST['nome'];
 

Cry

Nuovo Utente
25 Gen 2017
7
1
1
Forse non ci siamo capiti, a me non arriva proprio nulla, una mail vuota, senza mittente, oggetto e contenuto.
Il problema, probabilmente, è che non mi legge i campi dal form e spedisce quindi una mail bianca.

Il nome, non è usato, perché poi mi servirà per ampliare lo script, questa è solo una prova per vedere se funzionava, ma evidentemente ci sono già problemi qui che non riesco a capire
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
metti queste due righe nella pagina php prima di ogni altra istruzione e vedi cosa ti stampa
PHP:
<?php
var_dump($_REQUEST);
die();

edit:
non hai altro codice che interagisce con il form ? tipo javascript
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao Marino, avevo letto la tua segnalazione. Non preoccuparti sopravviverò :)
 

Cry

Nuovo Utente
25 Gen 2017
7
1
1
metti queste due righe nella pagina php prima di ogni altra istruzione e vedi cosa ti stampa
PHP:
<?php
var_dump($_REQUEST);
die();

edit:
non hai altro codice che interagisce con il form ? tipo javascript

Inserendo quelle 2 righe di codice, la mail non arriva più.

Si ho JQuary che mi fa il controllo dei campi sul form.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
posta anche il codice che ti fa i controlli, sicuramente il problema è li
 

Cry

Nuovo Utente
25 Gen 2017
7
1
1
Codice:
    var form = $('#main-contact-form');
    form.submit(function(event){
        event.preventDefault();
        var form_status = $('<div class="form_status"></div>');
        $.ajax({
            url: $(this).attr('action'),
            beforeSend: function(){
                form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Invio E-mail in corso...</p>').fadeIn() );
            }
        }).done(function(data){
            form_status.html('<p class="text-success"> Grazie per averci contattato, riceverai una risposta a breve.</p>').delay(3000).fadeOut();
        });
    });
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
manca il passaggio dei dati, non posso testare adesso, prova a cambiare la parte $ajax cosi
Codice:
$.ajax({
                url: $(this).attr('action'),
                data: $(this).serialize(),
                type: "POST",
                beforeSend: function () {
                    form.prepend(form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Invio E-mail in corso...</p>').fadeIn());
                }
            }).done(function (data) {
                form_status.html('<p class="text-success"> Grazie per averci contattato, riceverai una risposta a breve.</p>').delay(3000).fadeOut();
            });
e togli dal php quelle due righe che ti avevo fatto mettere
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
A me funziona
HTML:
<html>
    <head>
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script>
            $(document).ready(function () {
                var form = $('#main-contact-form');
                form.submit(function (event) {
                    event.preventDefault();
                    var form_status = $('<div class="form_status"></div>');
                    $.ajax({
                        url: $(this).attr('action'),
                        data: $(this).serialize(),
                        type: "POST",
                        beforeSend: function () {
                            form.prepend(form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Invio E-mail in corso...</p>').fadeIn());
                        }
                    }).done(function (data) {
                        form_status.html('<p class="text-success"> Grazie per averci contattato, riceverai una risposta a breve.</p>').delay(3000).fadeOut();
                    });
                });
            });

        </script>
    </head>
    <body>
        <div class="col-sm-6">
            <form id="main-contact-form" name="contact-form" role="form" method="post" action="sendmail.php">
                <div class="row  wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
                    <div class="col-sm-6">
                        <div class="form-group">
                            <input type="text" name="name" class="form-control" placeholder="Nome" required="required">
                        </div>
                    </div>
                    <div class="col-sm-6">
                        <div class="form-group">
                            <input type="email" name="email" class="form-control" placeholder="E-Mail" required="required">
                        </div>
                    </div>
                </div>
                <div class="form-group">
                    <input type="text" name="subject" class="form-control" placeholder="Oggetto" required="required">
                </div>
                <div class="form-group">
                    <textarea name="message" id="message" class="form-control" rows="4" placeholder="Scrivi il messaggio" required="required"></textarea>
                </div>                     
                <div class="form-group">
                    <button type="submit" class="btn-submit">Invia</button>
                </div>
            </form>
        </div>
    </body>
</html>
la pagina php
PHP:
<?php

$email_to = $_POST['email'];
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];


$headers = "From: $email\n";
$headers .= "Reply-To: $email\n";

if (mail($email_to, $subject, $message, $headers)) {
    echo 'sent';
} else {
    echo 'failed';
}
?>
A questo indirizzo trovi il codice online funzionante. Metti la tua mail nel form e vedrai che ti arriva completa.
 

Cry

Nuovo Utente
25 Gen 2017
7
1
1
Si ora funziona, ti ringrazio molto.
L'errore era nel java script per il controllo allora.

Grazie ancora.
 
  • Like
Reactions: criric
Discussioni simili
Autore Titolo Forum Risposte Data
peppoweb Nuova grave vulnerabilità in Sendmail Sicurezza e Virus 0
peppoweb Linux: una grave vulnerabilità per Sendmail Sicurezza e Virus 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10

Discussioni simili