- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema form php...ricevo una mail vuota
-
ma e' un lavoro grosso da fare nel mio caso ,filtrare le variabili?intendo dire e' complesso perche sono alle prime armi...grazie ancora
-
Ho provato cosi...ma non funziona e ho provato anche togliendo $Citta2= lasciando solo $_POST['Citta2']; ...la mail arriva compilata ma con tutti i campi attaccati e non si capisce niente,praticamente la mail che arriva non ha tutti i campi divisi ma e' una frase unica,non legge i campi penso.
<?php
/* INVIO SEMPLICE */
$destinatario = "mia mail";
$oggetto = "Email inviata dal sito";
$Citta2 = $_POST['Citta2'];
$Mare = $_POST['Mare'];
$Montagna = $_POST['Montagna'];
$Lago = $_POST['Lago'];
$Citta = $_POST['Citta'];
$Provincia = $_POST['Provincia'];
$NomeH = $_POST['NomeH'];
$Categoria = $_POST['Categoria'];
$Periodo = $_POST['Periodo'];
$Da = $_POST['Da'];
$Sito = $_POST['Sito'];
$Email = $_POST['Email'];
$Nome = $_POST['Nome'];$da = $email;
$intestazioni = "From: $da";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
?>
-
Ragazzi ce nessuno che mi puo aiutare?graziee
-
@gf233 said:
Ho provato cosi...ma non funziona e ho provato anche togliendo $Citta2= lasciando solo $_POST['Citta2']; ...la mail arriva compilata ma con tutti i campi attaccati e non si capisce niente,praticamente la mail che arriva non ha tutti i campi divisi ma e' una frase unica,non legge i campi penso.
<?php
/* INVIO SEMPLICE */
$destinatario = "mia mail";
$oggetto = "Email inviata dal sito";
$Citta2 = $_POST['Citta2'];
$Mare = $_POST['Mare'];
$Montagna = $_POST['Montagna'];
$Lago = $_POST['Lago'];
$Citta = $_POST['Citta'];
$Provincia = $_POST['Provincia'];
$NomeH = $_POST['NomeH'];
$Categoria = $_POST['Categoria'];
$Periodo = $_POST['Periodo'];
$Da = $_POST['Da'];
$Sito = $_POST['Sito'];
$Email = $_POST['Email'];
$Nome = $_POST['Nome'];$da = $email;
$intestazioni = "From: $da";
mail($destinatario,$oggetto,$messaggio,$intestazioni);
?>Bhe la devi impaginare..
Se non vuoi fare una email HTML devi usare \n per una nuova linea e/o \t per una tabulazione.
-
Ti compilo solo la prima riga per avere un minimo di sicurezza, poi le altre le fai da solo.
[PHP]$messaggio = "Citta: ".htmlentities($_POST['Citta2'])."\n";[/PHP]
-
perfetto,grazie 1000 ragazzi!!!!!!!!!!!!!!!!!!!!!!
-
Salve a tutti sono nuovo del forum e soprattutto di linguaggio php. Leggendo questa discussione ho notato che il form in questione è molto simile al mio, il mio è ancora più semplice. Nonostante abbia seguito i consigli citati quando mi invia la mail, invece di tutti i campi:nome,città,email e testo del messaggio, mi arriva solo il testo del messaggio..Dove sbaglio?
Vi posto il codice:
Html
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento senza titolo</title>
<style type="text/css">
<!--
#form1 {
width: 500px;
margin-left: 150px;
margin-top: 50px;
}
fieldset {
margin-left: 10px;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
background-color: #09F;
color: #FFF;
padding: 20px;
}
fieldset legend {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
text-transform: uppercase;
}
fieldset #submit {
margin-left: 400px;
padding: 0px;
}
fieldset #invia {
margin-left: 400px;
}
-->
</style>
</head>
<body>
<form action="invia.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<fieldset>
<legend>Informazione di registrazione</legend>
<p>
<label for="nome">Nome</label>
<input type="text" name="nome" id="nome" tabindex="10" />
</p>
<p>
<label for="citta">Città</label>
<input type="text" name="citta" id="citta" tabindex="20" />
</p>
<p>
<label for="email">Email</label>
<input type="text" name="email" id="email" tabindex="30" />
</p>
<p> </p>
</fieldset>
<fieldset>
<legend></legend>
<legend>IL tuo Messaggio</legend>
<p>
<label>
<textarea name="testo" cols="50" rows="5" id="testo"></textarea>
</label>
</p>
</p>
<input type="submit" name="invia" id="invia" value="Invia" /></p>
</fieldset>
</form>
</body>
</html>PHP
<?php
$destinatario = "[email protected]";
$oggetto = "email";$messaggio = "nome: ".htmlentities($_POST['nome']);
$messaggio = "citta: ".htmlentities($_POST['citta']);
$messaggio = "Email: ".htmlentities($_POST['email']);
$messaggio = "testo: ".htmlentities($_POST['testo']);$da = $email ;
$intestazioni = "From: $da";mail($destinatario,$oggetto,$messaggio,$intestazioni);
?>
Grazie mille per l'attenzione(se ci sarà
Saluti
-
Devi modificare le quattro righe dove assegni i valori al messaggio in questo modo:
[php]$messaggio = "nome: ".htmlentities($_POST['nome'])."\n";
$messaggio .= "citta: ".htmlentities($_POST['citta'])."\n";
$messaggio .= "Email: ".htmlentities($_POST['email'])."\n";
$messaggio .= "testo: ".htmlentities($_POST['testo']);[/php]In questo modo concateni i vari valori e aggiungi anche un "a capo".
-
Grazie mille per la risposta...funziona tutto adesso...
Per caso sai anche se esiste qualcosa di facile facile per rendere obbligatori nome e email per esempio? Cioè che se non mettono quelli la mail non viene inviata?Grazie ancora per l'attenzione e la disponibilità..
Saluti
-
Ecco come potresti fare per controllare che siano stati inseriti il nome e l'e-mail:
[php]if (isset($_POST['nome']) && is_string($_POST['nome']) && trim($_POST['nome']) != '')
&& isset($_POST['email']) && is_string($_POST['email']) && trim($_POST['email']) != '')) {
//Codice per inviare l'e-mail
} else {
echo 'Devi compilare i campi nome e e-mail.';
}[/php]
-
Buongiorno, prima di scrivere al form ho provato e riprovato ma purtroppo non sono riuscito a capire che codice mi manca. praticamente ho copiato un form dal un sito, l'ho messo in ogni pagina del mio sito, ma non capisco che codice manca per fare in modo che tutti i dati vengano inviati al " mio" indirizzo mail. vi scrivo il codice che ho messo in tutte le pagine <h4>RICHIESTE INFO</h4>
<form id="form_prenotazione" name="form_prenotazione" method="post" action="prenotazione-villaggi-vieste.html" onsubmit="return validateFormPrenotazione();"><input name="nomecognome" type="text" id="nomecognome" value="nominativo" onfocus="this.value=''" />
<input name="email" type="text" id="email" value="e-mail" onfocus="this.value=''" /><textarea name="messaggio">Note</textarea>
<input type="checkbox" name="checkbox" value="checkbox" />
<a href="#" onclick="window.open('privacy.html','','scrollbars=yes,width=500,height=500,location =1'); return false;">privacy</a><input type="submit" name="Submit_prenotazione" value="RICHIEDI ORA" class="submitbutton" />
</form> ho provato a inserire questo codice all'inizio della pagina prenotazione-villaggi-vieste.html . <?
$MailToAddress = "...........";
$MailFromAddress = $Email;
$MailSubject = "Utente che chiede info dal mio sito";
if (!$MailFromAddress) {
$MailFromAddress = "Tuo nome";
}
$Header = "Utente che desidera informazioni su...";
$Footer = "_______________________________________";
?>
ma niente .. attendo un vostro aiuto.. vi ringrazio anticipatamente Marco
-
Ciao Marco,
Per mandare una email bisogna usare la funzione mail() che tu non stai usando.
Come al solito gli esempi migliori sono sul manuale di PHP, in questo caso ce ne sono addirittura quattro:
-
Ciao, innanzitutto ti ringrazio per la celere risposta. purtroppo ho provato con i vari manuali ma non sono riuscito. gentilmente potresti scrivermi tu il codice magari con affianco la spiegazione " almeno una volta per tutte capisco il meccanismo ! grazie ancora .. ps non è molto che mi sono appassionato in questo campo ... sono ancora inesperto !!! ti ringrazio ancora per l'interessamento
-
-
ho provato a mettere il tuo codice <?php
mail('[email protected]','Oggetto','Messaggio');
?> nella pagina ........... prenotazione-villaggi-vieste.html ............ ho cambiato la mail ma ancora niente..
-
C'è scritto qualcosa nel log degli errori?
-
<form id="form_prenotazione" name="form_prenotazione" method="post" action="prenotazione-villaggi-vieste.html" onsubmit="return validateFormPrenotazione();">
<input name="nomecognome" type="text" id="nomecognome" value="nominativo" onfocus="this.value=''" />
<input name="email" type="text" id="email" value="e-mail" onfocus="this.value=''" /><textarea name="messaggio">Note</textarea>
<input type="checkbox" name="checkbox" value="checkbox" />
<a href="#" onclick="window.open('privacy.html','','scrollbars=yes,width=500,height=500,location =1'); return false;">privacy</a><input type="submit" name="Submit_prenotazione" value="RICHIEDI ORA" class="submitbutton" />
</form>
e nella pagina
prenotazione-villaggi-vieste.html
<?php
mail('[email protected]','Oggetto','Messaggio');
?><head>
-
Devi sostituire "Messaggio" con $_POST['messaggio'] e così via.
mail('[email protected]','Oggetto',$_POST['messaggio']);
Non te lo faccio io perché devi capire come funziona.
-
<?php
mail('[email protected]',$_POST['nomecognome'], $_POST['email'], $_POST['messaggio'], $_POST['checkbox'] , $_POST['submit']);
?>
nel caso in cui è giusto, come faccio ad aggiungere altri indirizzi mail ?? però non voglio che si vedano le mail di tutti nella richiesta e nemmeno nella sorgente della pagina.
-
ho provato e riprovato ma niente.. ma dovrebbe andare anche se la pagina è html giusto ???