Errore form invio mail+php

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
Ciao a tutti! E' da giorni che non riesco a far funzionare un semplice form html+php o meglio la mail arriva ma vuota :crying: come se le variabili passate in post non ricevessero niente..
Questo è l'html:
HTML:
<div class="status alert alert-success" style="display: none"></div>

<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="Il tuo messaggio"></textarea>
        </div>                        
        <div class="form-group">
                <input type="submit" class="btn btn-primary pull-right" value="Invia">
        </div>
</form>	       
</div>

Quando premo submit dovrebbe andare al file sendemail.php ma non succede niente, e nel primo div non mi esce neanche "grazie per aver inviato il messaggio" ma solo uno spazio bianco vuoto.
Ecco il listato php:
PHP:
<?php

	header('Content-type: application/json');

	$status = array(

		"Grazie per averci contattato!"

	);



    $name = @trim(stripslashes($_POST['name'])); 

    $email = @trim(stripslashes($_POST['email'])); 

    

    $message = @trim(stripslashes($_POST['message'])); 



    $email_from = $email;

    $email_to = '[email protected]';



    $body = "Name: ".$name."\n\n"."Email: ".$email."\n\n"."Info dal sito the     krills"."\n\n"."Message:".$message;



    $success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email_from.'>');



    echo json_encode($status);

    die;

?>

Non so davvero più dove sbattere la testa anzi mi rendo conto che probabilmente è una cazzatina, ma davvero non ne vengo fuori :boxing:
Grazie in anticipo a chiunque sappia aiutarmi!
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ho modificato

PHP:
// header('Content-type: application/json');
$status = "Grazie per averci contattato!";

$success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email_from.'>'); 
if ($success) print "<b>MESSAGGIO INVIATO</b>";
else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>";
echo "<br />".$status; 
die;

poi ho inserito

PHP:
ini_set("SMTP"     ,$eM_Host);
ini_set("smtp_port",$eM_Port);
ini_set("username" ,$eM_Username);
ini_set("password" ,$eM_Password);

per il mio mail provider ho dovuto mettere

PHP:
$email_from = $eM_Username

la mail é arrivata con il contenuto atteso

il testo "ERRORE : MESSAGGIO NON INVIATO" puoi gestirlo nel log di php (consiglio)
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
ho modificato

PHP:
// header('Content-type: application/json');
$status = "Grazie per averci contattato!";

$success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email_from.'>'); 
if ($success) print "<b>MESSAGGIO INVIATO</b>";
else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>";
echo "<br />".$status; 
die;

poi ho inserito

PHP:
ini_set("SMTP"     ,$eM_Host);
ini_set("smtp_port",$eM_Port);
ini_set("username" ,$eM_Username);
ini_set("password" ,$eM_Password);

per il mio mail provider ho dovuto mettere

PHP:
$email_from = $eM_Username

la mail é arrivata con il contenuto atteso

il testo "ERRORE : MESSAGGIO NON INVIATO" puoi gestirlo nel log di php (consiglio)

Ciao grazie per il tuo contributo. Questo è il mio attuale php seguendo i tuoi consigli. Ma adesso la mail proprio non arriva :D Giuro di non aver mai avuto così tanti problemi su un form mail come sta volta
PHP:
$status = "Grazie per averci contattato!"; 
	 $name = @trim(stripslashes($_POST['name'])); 

    $email = @trim(stripslashes($_POST['email'])); 

    

    $message = @trim(stripslashes($_POST['message']));
    $body = $name."\n\n".$message;
	 ini_set("mail.thekrills.com",$eM_Host); 
	 ini_set("25",$eM_Port); 
	 ini_set("user@miamail" ,$eM_Username); 
	 ini_set("passmiamail" ,$eM_Password); 	 
	 $email_from = $eM_Username;
	 $success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email.'>');  
	 if ($success) print "<b>MESSAGGIO INVIATO</b>"; 
	 else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>"; 
	 echo "<br />".$status;  
	 die;
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
ciao
puo essere una stupidaggine quella che dico, ma dove valorizzi la variabile $email_to?

Azz... Vedi che a stare troppo sopra il problema mi perdo su stupidate?! Ora l'ho valorizzata ma ancora non arriva niente..
PHP:
<?php

	// header('Content-type: application/json');

	 $status = "Grazie per averci contattato!";  
     $name = @trim(stripslashes($_POST['name']));  

    $email = @trim(stripslashes($_POST['email']));  

     

    $message = @trim(stripslashes($_POST['message'])); 
    $body = $name."\n\n".$message; 
     ini_set("mail.thekrills.com",$eM_Host);  
     ini_set("25",$eM_Port);  
     ini_set("[email protected]" ,$eM_Username);  
     ini_set("miapasw" ,$eM_Password);       
     $email_from = $eM_Username; 
     $success = @mail($email_from, 'Info dal sito Krills', $body, 'From: <'.$email.'>');   
     if ($success) print "<b>MESSAGGIO INVIATO</b>";  
     else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>";  
     echo "<br />".$status;   
     die;  



    

?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova a fare questa cosa stupida e vedi se funzia
PHP:
<?php
$name = "pinco"; 
$email = "[email protected]";
$body="nel mezzo di camin di nostra vita mi ritrovai per una selva oscura...che l'email era sparita";
$email_to="[email protected]"
if(mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email.'>')){
	echo "invio OK";
}else{
	echo "invio KO";
}
?>
poi un paio di consigli:
1. non usare il silent, la @, gli errori devono essere eliminati e non nascosti
2. usa la classe phpmailler risolve diversi problemi
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
Niente non da segni di vita! Ma il problema è che se io imposto action="sendemail.php" non dovrebbe andarmi al file php quando premo il submit del form? Perchè ora quando schiaccio non succede niente! Cioè al file sendemail secondo me manco ci arriva!
 

Rikk73

Utente Attivo
7 Apr 2015
141
6
18
Arezzo
Altra cosa stupida, sicuramente, ma nella action="sendmail.php" il percorso è corretto, cioè il file php è nella stessa cartella del file con il form o ad esempio in una sotto cartella?
Ripeto sicuramente è una banalità, ma spesso sono prorpio queste banalità che ci sfuggono
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
non ho guardato le altre risposte, in ogni caso hai scambiato qualche valore soprattutto nelle ini_set,

ini_set potrebbero essere superflue se il tuo php.ini é già settato con i parametri giusti
quindi esegui una prima volta, commentandoli, altrimenti inserisci i valori per te validi
ti posto l'intero codice che a me funziona correttamente,
PHP:
<?php 
ini_set("SMTP"     ,"out.alice.it");
ini_set("smtp_port","25");
ini_set("username" ,"[email protected]");
ini_set("password" ,"CAMBIAMI");

// header('Content-type: application/json');

$status = "Grazie per averci contattato!";

$name = trim(stripslashes($_POST['name']));  
$email = trim(stripslashes($_POST['email']));  
$message = trim(stripslashes($_POST['message']));  
$email_from = $email;

$email_to = '[email protected]'; 

$body = "Name: ".$name."\n\n"."Email: ".$email."\n\n"."Info dal sito the krills"."\n\n"."Message:".$message; 

$success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email_from.'>'); 
if ($success) print "<b>MESSAGGIO INVIATO</b>";
else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>";

echo "<br />".$status; 
die; 
?>
Cattura.PNG
 
Ultima modifica:

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
Confermo che il file index.html e sendemail.php sono nella stessa cartella (root). Potrebbe essere forse che devo salvare il file index.php invece che .html? Ora sono fuori casa ma dopo potrei provare. Qualcuno ha esperienza in merito?
Grazie!
 

Rikk73

Utente Attivo
7 Apr 2015
141
6
18
Arezzo
Non credo, se in index.html non c'è codice php, l'estensione non deve essere per forza .php
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
non ho guardato le altre risposte, in ogni caso hai scambiato qualche valore soprattutto nelle ini_set,

ini_set potrebbero essere superflue se il tuo php.ini é già settato con i parametri giusti
quindi esegui una prima volta, commentandoli, altrimenti inserisci i valori per te validi
ti posto l'intero codice che a me funziona correttamente,
PHP:
<?php 
ini_set("SMTP"     ,"out.alice.it");
ini_set("smtp_port","25");
ini_set("username" ,"[email protected]");
ini_set("password" ,"CAMBIAMI");

// header('Content-type: application/json');

$status = "Grazie per averci contattato!";

$name = trim(stripslashes($_POST['name']));  
$email = trim(stripslashes($_POST['email']));  
$message = trim(stripslashes($_POST['message']));  
$email_from = $email;

$email_to = '[email protected]'; 

$body = "Name: ".$name."\n\n"."Email: ".$email."\n\n"."Info dal sito the krills"."\n\n"."Message:".$message; 

$success = @mail($email_to, 'Info dal sito Krills', $body, 'From: <'.$email_from.'>'); 
if ($success) print "<b>MESSAGGIO INVIATO</b>";
else  print "<b>ERRORE : MESSAGGIO NON INVIATO</b>";

echo "<br />".$status; 
die; 
?>
Vedi l'allegato 2968

Ok adesso la mail arriva ma vuota :gun: tu hai usato il mio form html?
 

Rikk73

Utente Attivo
7 Apr 2015
141
6
18
Arezzo
Comunque riguardando adesso il form html, la textarea non ha valorizzat0 l'attributo name="message", non c'è proprio, al suo posto c'è id="message"

edit:
come non detto..... l'ho vista ora, mi era sfuggita
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
una cosa: vuota o non arriva?
se arriva vuota metti dei var_dump per verificare se i campi di input vengono ricevuti e se si come
PHP:
<?php
//...
echo "<pre>";
var_dump($_POST['name']);
var_dump($_POST['email']);
var_dump($_POST['message']);
echo "</pre>";
$name = trim(stripslashes($_POST['name']));  
$email = trim(stripslashes($_POST['email']));  
$message = trim(stripslashes($_POST['message']));  
//....
?>
che la index sia php o html come diceva rikk73 non c'entra nulla, salvo che tu non metta il form e l'invio nella stessa pagina, allora deve essere php.
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
La mail arriva vuota ma il var_dump non stampa nulla perchè il problema secondo me è alla fonte. Quando in un form html metti action="sendemail.php" method="post", già con questa configurazione quando premo su submit dovrebbe andarmi alla pagina sendemail.php concordate? Ecco qui invece quando premo invio non va da nessuna parte e arriva una mail vuota. Se volete provare andate su www.thekrills.com sezione contatti.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
susa ma mi sembra che tu stai dicendo un controsenzo.
ripartiamo:
tu hai una pagina index.html con un form che punta ad una pagina sendmail.php, giusto?
da quello che dici premendo il submit ti arriva una email vuota, giusto?
se al submit non trovasse la pagina sendmail.php ti darebbe l'errore "pagina non trovata", ma se ti arriva l'email (anche se vuota) vuol dire che la pagina sendmail.php viene chiamata, trovata e processa, per quello che può, i dati ed invia
per prima cosa verifica che i nomi dei campi di input siano perfettamente uguali ai nomo delle variabili $_POST, come detto, se l'email viene inviata, se metti i var_dump che ti ho indicato e appena prima dei vari stip qualcosa devi vedere.
se i campi non vengono inviato ottieni dal var_dump la scritta NULL
 

Francesco Polese

Utente Attivo
4 Mar 2015
30
0
0
30
Sacile
francescopolese.it
Ed è proprio qui che non mi capisco! E' vero la mail arriva vuota quindi la funzione mail() viene chiamata. Ma se all'interno del file sendemail.php scrivo ad esempio: echo "Ciao" la url nel browser rimane thekrills.com che è la index invece dovrebbe essere thekrills.com/sendemail.php no?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Ok adesso la mail arriva ma vuota tu hai usato il mio form html?
si ho usato il tuo form senza modifiche,
index.html chiama sendemail.php
index.html viene eseguito in windows con un "collegamento" (index)
Codice:
"C:\Program Files\Internet Explorer\iexplore.exe" [url]http://localhost/test_site/php/test/_FrancescoPolese/index.html[/url]

Cattura.PNG
 
Ultima modifica:

Rikk73

Utente Attivo
7 Apr 2015
141
6
18
Arezzo
sendmail.php è il motore del tuo form di contatto, recupera (o almeno dovrebbe) i dati, li elabora come tu gli hai detto, invia la mail ma poi, inviata la mail cosa fa?

Il fatto che tu veda o voglia vedere http://......./sendmail.php nella url dipende, sintetizzando, da una scelta che puoi fare subito dopo l'invio della mail:

- una cosa cosa tipo header('location: index.html'); -> e quindi torni nell'index e non vedrai mail sendmail.php
- un output html o semplicemente echo "Bravo hai inviato la mail!!!!!" e quindi rimani in sendmail.php e la vedi nella url
 
Discussioni simili
Autore Titolo Forum Risposte Data
F Form mail php errore invio PHP 5
Shyson Se invio form e c'è errore, form non ritorna a video PHP 0
SolidSnake4 errore durante invio dati con form PHP 2
L form multipla php sql,errore in inserimento MySQL 0
M [PHP] errore in semplie form inserimento dati PHP 7
L errore mysql per form di registrazione PHP 3
C Form con dentro div errore validatore w3c HTML e CSS 6
K Errore in script creando il form PHP 0
Jam1 Errore nel creare miniature da immagini caricate su un mio form PHP 0
A errore di un form PHP 17
C errore form di contatto PHP 17
S Form contatti: ma dove è l'errore? PHP 7
M Form Errore email campi vuoti PHP 5
S form contatti errore PHP 14
B form informazioni - messaggio d'errore PHP 2
G Errore funzione per form PHP 2
S Dare segnalazione errore stessa pagina del form email PHP 8
C Form mail: Errore Supporto Mr.Webmaster 1
free5zone errore form $_POST PHP 1
carla146 errore in form Supporto Mr.Webmaster 1
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
P Errore nell'indirizzo degli elementi HTML e CSS 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0

Discussioni simili