[Risolto] FORM MAIL DAL SITO

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

[Risolto] FORM MAIL DAL SITO

Messaggio da tempestaluna »

Ciao e tutti, dal sito html.it ho scaricato il seguente form mail in php:

Codice: Seleziona tutto

<?
$nome = $_POST['nome'];
$mail = $_POST['mail'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

$destinatario = "booking@ilpuntoverde.grosseto.it";
mail($destinatario,$oggetto,$messaggio);
?>
<?
echo "<div align=\"center\">
  <table width=\"491\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
    <tr> 
      <td height=\"29\" colspan=\"2\" valign=\"top\"><h1>E-mail inviata con successo</h1></td>
    </tr>
    <tr> 
      <td height=\"283\" colspan=\"2\" valign=\"top\"><p>La tua e-mail è stata 
          inviata con successo!!!<br />
          <br />
          Ecco qui un riepilogo delle informazioni da te inviate: </p>
        <p>Il tuo nome : $nome 
        <p>La tua e-mail : $mail</p>
        <p>Il tuo messaggio: $messaggio</p></td>
    </tr>
    <tr> 
      <td width=\"168\" height=\"14\" valign=\"top\"><p><a href=\"prenotare.php\">Indietro</a></p></td>
      <td width=\"323\"></td>
    </tr>
  </table>
</div>";
?>
l'ho provato e funziona solo:
1) non mi fa vedere chi mi ha inviato la mail
2) vorrei aggiungere qualche campo in più e non ci riesco
3) vorrei se possibile far in modo che con tale form non arrivi ne a me ne ai miei visitatori mail spam!!.

Ho provato ad inserire nuovi campi come cognome, indirizzo, telefono, ho inserito anche una stringa per il mittente ma modificando così non funziona un granchè:

Codice: Seleziona tutto

<?
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$indirizzo = $_POST['indirizzo'];
$cap = $_POST['cap'];
$comune = $_POST['comune'];
$provincia = $_POST['provincia'];
$mail = $_POST['mail'];
$telefono = $_POST['telefono'];
$cell = $_POST['cell'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

$mittente = $_POST['mail'];

$destinatario = "booking@ilpuntoverde.grosseto.it";
mail($destinatario,$oggetto,$messaggio);
?>
<?
echo "<div align=\"center\">
  <table width=\"491\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
    <tr> 
      <td height=\"29\" colspan=\"2\" valign=\"top\"><h1>E-mail inviata con successo</h1></td>
    </tr>
    <tr> 
      <td height=\"283\" colspan=\"2\" valign=\"top\"><p>La tua e-mail è stata 
          inviata con successo!!!<br />
          <br />
          Ecco qui un riepilogo delle informazioni da te inviate: </p>
        <p>Il tuo nome : $nome | Il tuo Cognome: $cognome</p>
        <p>Il tuo indirizzo : $indirizzo | Il tuo Cap: $cap</p>
        <p>Il tuo comune : $comune | La tua provincia: $provincia</p>
        <p>Il tuo telefono : $telefono | Il tuo cellulare: $cell</p>
        <p>La tua e-mail : $mail</p>
        <p>Il tuo messaggio: $messaggio</p></td>
    </tr>
    <tr> 
      <td width=\"168\" height=\"14\" valign=\"top\"><p><a href=\"prenotare.php\">Indietro</a></p></td>
      <td width=\"323\"></td>
    </tr>
  </table>
</div>";
?>
Come posso risolvere questo mio problema mi sapete aiutare?
Ultima modifica di tempestaluna il martedì 15 dicembre 2009, 17:08, modificato 1 volta in totale.
Avatar utente
steff
Moderatore Globale
Moderatore Globale
Messaggi: 40345
Iscrizione: domenica 18 febbraio 2007, 19:48
Desktop: LXQt+labwc
Distribuzione: Arch; Debian; Ubuntu Server
Sesso: Maschile
Località: Toscana
Contatti:

Re: FORM MAIL DAL SITO

Messaggio da steff »

Per questo no, io uso  uno in perl che fa tutto quello che chiedi:
http://www.scriptarchive.com/formmail.html
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: FORM MAIL DAL SITO

Messaggio da tempestaluna »

provo ad andare a vedere ma non me ne intendo un granchè di perl cmq grazie :)
Avatar utente
utey
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 435
Iscrizione: martedì 22 agosto 2006, 14:32
Località: Pavia

Re: FORM MAIL DAL SITO

Messaggio da utey »

Non funziona un granché in che senso?
Comunque una cosa che noto è che nell'inviare la mail non utilizzi i dati che hai aggiunto. Come vuoi inserirli? Nella pagina di risposta almeno vengono visualizzati correttamente?
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: FORM MAIL DAL SITO

Messaggio da tempestaluna »

utey ha scritto: Non funziona un granché in che senso?
Comunque una cosa che noto è che nell'inviare la mail non utilizzi i dati che hai aggiunto. Come vuoi inserirli? Nella pagina di risposta almeno vengono visualizzati correttamente?
Vediamo se riesco a spiegarmi meglio..
questo form funziona con 2 pagine:
invia.php che contiene questo codice:

Codice: Seleziona tutto

<?
$nome = $_POST['nome'];
$mail = $_POST['mail'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

$destinatario = "ostuni57@libero.it";
mail($destinatario,$oggetto,$messaggio);
?>
<?
echo "<div align="center">
  <table width="491" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td height="29" colspan="2" valign="top"><h1>E-mail inviata con successo</h1></td>
    </tr>
    <tr> 
      <td height="283" colspan="2" valign="top"><p>La tua e-mail è stata 
          inviata con successo!!!<br />
          <br />
          Ecco qui un riepilogo delle informazioni da te inviate: </p>
        <p>Il tuo nome : $nome</p>
        <p>La tua e-mail : $mail</p>
        <p>Il tuo messaggio: $messaggio</p></td>
    </tr>
    <tr> 
      <td width="168" height="14" valign="top"><p><a href="invia.html">Indietro</a></p></td>
      <td width="323"></td>
    </tr>
  </table>
</div>";
?>
e invia.html che contiene questo codice:

Codice: Seleziona tutto

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="copyright" content="Gabriele Ostuni" />
<title>Invia i tuoi commenti</title>

<script language="JavaScript" type="text/javascript">
function verifica(){
var nome = document.invio.nome.value;
var mail = document.invio.mail.value;
var oggetto = document.invio.oggetto.value;
var messaggio = document.invio.messaggio.value;

var mail_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
if (!mail_reg_exp.test(mail) || (mail == "") || (mail == "undefined")) {
alert("Inserire un indirizzo email corretto.");
document.invio.mail.select();
return false;
   
} else if (nome == ""){
alert('Inserisci il tuo nome');
document.invio.nome.focus();
return false;

} else if (mail == "") {
alert('Inserisci la tua e-mail');
document.invio.mail.focus();
return false;

}else if (oggetto == "") {
alert('Inserisci l\'oggetto del messaggio');
document.invio.oggetto.focus();
return false;

}else if (messaggio == "") {
alert('Inserisci il testo');
document.invio.messaggio.focus();
return false;

}else	{
	document.invio.action = "invia.php";
	document.invio.submit();
		}
}
</script>
<link rel="stylesheet" type="text/css" href="stile.css" />
</head>

<body>
<div align="center">
  <table width="491" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td width="491" height="29" valign="top"><h1>Invio E-mail</h1></td>
    </tr>
    <tr> 
      <td height="55" valign="top"> <p> Per contattarci completa in modo corretto 
          tutti i campi e clicca sul pulsante invia.<br />
          N.B. Se non inserisci un indirizzo corretto non saremo in grado di contattarti.</p></td>
    </tr>
    <tr> 
      <td height="253" valign="top">
	<form method="post" action="invia.php" name="invio">
          <p>Nome:         
            <input type="text" name="nome" />
            <br />
            Mail:            
            <input type="text" name="mail" />
            <br />
            Oggetto:     
            <input type="text" name="oggetto" />
          </p>
          <p>Messaggio:<br />
            <br />
            <textarea cols="60" rows="10" name="messaggio">
</textarea>
            <br />
            <br />
            <input name="button" type="button" onclick="verifica()" value="Invia" />
          </p>
        </form>
        </td>
    </tr>
  </table>
</div>
</body>
</html>
il codice che ho scaricato funziona correttamente se inserisco nella pagina del form invia.html solo i dati per cui è stato creato vale a dire: nome, mail, oggetto e messaggio. Una volta iseriti mi fa vedere i dati che ho appena scritto e mi invia il tutto alla mia casella di posta, facendomi vedere:

1) nel destinatario: una mail anonima
2) nell'oggetto: l'oggetto del form
3) nella finestra della mail: il messaggio del mio form

non è male per me potrebbe andare apparte la mail anonima che arriva che spero di poter risolvere ma quando vado a modificare come ho fatto vedere prima, aggiungendo qualche parametro in più mi da 2 problemi

1) o non mi invia la mail dicendomi che c'è un'errore (e mi pare chiaro)
2) o mi dice mail inviata quando poi non ricevo nulla.

come faccio andando per gradi a risolvere il problema dell'inserimento di nuovi campi?
Avatar utente
utey
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 435
Iscrizione: martedì 22 agosto 2006, 14:32
Località: Pavia

Re: FORM MAIL DAL SITO

Messaggio da utey »

1) la mail è anonima perché la funzione mail non riceve la variabile contenente l'email del mittente. Aggiungi:

Codice: Seleziona tutto

$header = "From: ". $nome . " <" . $email . ">\r\n";
e modifica:

Codice: Seleziona tutto

mail($destinatario,$oggetto,$messaggio,$header);
Per la seconda parte finché mi dici che c'è un errore non so cosa suggerirti. Per essere più preciso prova a inserire solo un nuovo campo, e nel codice php, prima dell'istruzione di invio della mail, fagli stampare a video il valore della variabile che hai aggiunto.
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: FORM MAIL DAL SITO

Messaggio da tempestaluna »

utey ha scritto: 1) la mail è anonima perché la funzione mail non riceve la variabile contenente l'email del mittente. Aggiungi:

Codice: Seleziona tutto

$header = "From: ". $nome . " <" . $email . ">\r\n";
e modifica:

Codice: Seleziona tutto

mail($destinatario,$oggetto,$messaggio,$header);
Per la seconda parte finché mi dici che c'è un errore non so cosa suggerirti. Per essere più preciso prova a inserire solo un nuovo campo, e nel codice php, prima dell'istruzione di invio della mail, fagli stampare a video il valore della variabile che hai aggiunto.
ho provato ad inserire questi dati ma adesso non mi invia neanche la mail  :'( che posso fare?
Avatar utente
utey
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 435
Iscrizione: martedì 22 agosto 2006, 14:32
Località: Pavia

Re: FORM MAIL DAL SITO

Messaggio da utey »

L'unica è andare per gradi e mettere degli echo che stampino il valore delle variabili in modo da capire perché lo script non funziona.
Avatar utente
tempestaluna
Prode Principiante
Messaggi: 44
Iscrizione: venerdì 2 gennaio 2009, 10:55
Contatti:

Re: FORM MAIL DAL SITO

Messaggio da tempestaluna »

GRAZIE MILLE CMQ HO RISOLTO CON UN'ALTRO FORM ;)
Avatar utente
kelev
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1766
Iscrizione: giovedì 4 settembre 2008, 0:27

Re: FORM MAIL DAL SITO

Messaggio da kelev »

Metti risolto nel topic
"E alla fine sei da solo, dove vai, con chi brindi?"
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti