Aiuto con la Form Mail

mathew83

Nuovo Utente
29 Mag 2009
16
0
0
Salve, sono nuovo ma visto come avete aiutate un altro utente che aveva il mio stesso problema, spero riusciate a risolvere anche il mio.

Sto sviluppando una form mail, ma non riesco a farla funzionare.

Il contact form in questione è il seguente:

http://www.larometta.it/en/try.html

Il codice ho lasciato quello scaricato dal sito:





<?
/*
############################ Contact Form ###########################
### |-----------------------------------------------------------| ###
### | WRITTEN 2005 by planetluc.com c/o Lukas Stalder | ###
### | THIS SMALL SCRIPT IS FREE AND MAY BE REDISTRIBUTED | ###
### |-----------------------------------------------------------| ###
#####################################################################
*/



/*
// ################ INSTALLATION #################

1. open the .php file where you want to have the contact form in.
2. paste this whole code in there
3. adapt values in the config section below to your needs.
4. upload the file - that's it!

// ############## END INSTALLATION ###############
*/




// ################### CONFIG ###################

// CSS classes & styles
$class_txt = "text";
$class_inputbutton = "inputButton";
$class_inputline = "inputLine";
$class_inputfield = "inputField";
$style_inputline = "width:355px;";
$style_inputfield = "width:355px;";

// email
$target_address = "[email protected]";
$email_subject = "Richiesta Informazioni";

// error messages
$err_name = "Please enter a namen.";
$err_phone = "Please enter a phone number.";
$err_msg = "Please fill out the 'request' field.";
$err_email = "Please enter a valid email address.";

// misc text
$msg_date = "Date";
$msg_company = "Company";
$msg_name = "Name";
$msg_address = "Address";
$msg_city = "Zip/City";
$msg_phone = "Phone";
$msg_email = "Email";
$msg_answerby = "Reply by";
$txt_email = "Email";
$txt_phone = "Phone";
$txt_post = "Post";
$txt_send = "Send";
$txt_mandatory = "mandatory";
$msg_request = "Request";
$msg_indent = 11;

// messages
$txt_thankyou = "<div class='$class_txt'><h2>Thank you for getting in contact with us!</h2>Your request has been sent and you'll be contacted as soon as possible.</div>";
$txt_error = "<div style='color: #cc3300' class='$class_txt'><h2>Following errors occurred:</h2>{errors}</div>"; // {errors} is replaced by the errors that occurred



// ### GERMAN TRANSLATION ###

/*

$email_subject = "Anfrage an Dott.com";

// error messages
$err_name = "Bitte Namen angeben.";
$err_phone = "Bitte Telefon angeben.";
$err_msg = "Formulieren Sie bitte Ihr Anliegen.";
$err_email = "Geben Sie bitte eine g&uuml;ltige Email Adresse an.";

// misc text
$msg_date = "Datum";
$msg_company = "Firma";
$msg_name = "Name";
$msg_address = "Adresse";
$msg_city = "PLZ/Ort";
$msg_phone = "Fon";
$msg_email = "Email";
$msg_answerby = "Antwort per";
$txt_email = "Email";
$txt_phone = "Telefon";
$txt_post = "Post";
$txt_send = "Abschicken";
$txt_mandatory = "Pflichtfeld";
$msg_request = "Anfrage";

// messages
$txt_thankyou = "<div class='$class_txt'><h2>Danke f&uuml;r Ihr Interesse!</h2>Ihre Anfrage wurde verschickt und Sie werden baldm&ouml;glichst kontaktiert werden.</div>";
$txt_error = "<div style='color: #cc3300' class='$class_txt'><h2>Bitte beachten Sie folgendes:</h2>{errors}</div>"; // {errors} is replaced by the errors that occurred

*/


// ################ END CONFIG #################




function spaces($num, $fill=" "){
$foo="";
for ($i=0; $i<$num; $i++) $foo.=$fill;
return $foo;
}

function isValidEmail($addr){
if(eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $addr))
return true;
else
return false;
}


// start form evaluation
$error="foo";
if ($_REQUEST['do']=="send"){
$error=false;
if ($_REQUEST['name']=="") $error.="&raquo; $err_name<br>";
if ($_REQUEST['fon']=="") $error.="&raquo; $err_phone<br>";
if ($_REQUEST['message']=="") $error.="&raquo; $err_msg<br>";
if (!isValidEmail($_REQUEST['email'])) $error.="&raquo; $err_email<br>";
if ($error===false){

$message="$msg_date:".spaces($msg_indent-strlen($msg_date)).date("d M Y, H:i", time());
if ($_REQUEST['firma']) $message.="\n$msg_company:".spaces($msg_indent-strlen($msg_company)).$_REQUEST['firma'];
if ($_REQUEST['name']) $message.="\n$msg_name:".spaces($msg_indent-strlen($msg_name)).$_REQUEST['name'];
if ($_REQUEST['adresse']) $message.="\n$msg_address:".spaces($msg_indent-strlen($msg_address)).$_REQUEST['adresse'];
if ($_REQUEST['ort']) $message.="\n$msg_city:".spaces($msg_indent-strlen($msg_city)).$_REQUEST['ort'];
if ($_REQUEST['fon']) $message.="\n$msg_phone:".spaces($msg_indent-strlen($msg_phone)).$_REQUEST['fon'];
$message.="\n$msg_email:".spaces($msg_indent-strlen($msg_email))."mailto:".$_REQUEST['email'];
$message.="\n\n".spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
$message.="\n$msg_answerby ".$_REQUEST['kontakt']."!\n";
$message.=spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
$message.="\n\n$msg_request:\n\n".$_REQUEST['message'];

mail($target_address, $email_subject, $message, "From: ".$_REQUEST['email']);
echo $txt_thankyou;

}else if ($error!==false) $error=str_replace("{errors}", $error, $txt_error);

}

if ($error!==false){

if($error!="foo") echo $error;

// form
echo "<script language='JavaScript' type='text/JavaScript'>\n";
echo "window.onload = function(){ document.form1.firma.focus(); }\n";
echo "</script>\n";
echo "<form name='form1' method='post' action=''>\n";
echo "<table border='0' cellpadding='1' cellspacing='0' class='txt'>\n";
echo "<tr><td>&nbsp;</td>\n";
echo "<td height='19'>&nbsp;</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_company</td>\n";
echo "<td height='19'><input name='firma' id='firma' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['firma']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_name*</td>\n";
echo "<td height='19'><input name='name' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['name']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_address</td>\n";
echo "<td height='19'><input name='adresse' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['adresse']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_city</td>\n";
echo "<td height='19'><input name='ort' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['ort']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_phone*</td>\n";
echo "<td height='19'><input name='fon' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['fon']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_email*</td>\n";
echo "<td height='19'><input name='email' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['email']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_answerby*</td>\n";
echo "<td height='19' class='$class_txt'><input name='kontakt' type='radio' value='$txt_email' checked> $txt_email&nbsp;&nbsp;\n";
echo "<input name='kontakt' type='radio' value='$txt_phone'> $txt_phone&nbsp;&nbsp;\n";
echo "<input name='kontakt' type='radio' value='$txt_post'> $txt_post\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_request*</td>\n";
echo "<td height='19'><textarea name='message' cols='45'style='$style_inputfield' rows='10' class='$class_inputfield'>".$_REQUEST['message']."</textarea></td></tr>\n";

echo "<tr><td width='75' >&nbsp;</td>\n";
echo "<td height='19' align='right'>* $txt_mandatory</td></tr>\n";

echo "<tr><td width='75'>&nbsp;</td>\n";
echo "<td height='19'><input name='Submit' type='Submit' class='$class_inputbutton' value='$txt_send'>\n";
echo "<input name='do' type='hidden' id='do' value='send'></td>\n";
echo "</tr></table>\n";
echo "</form>\n";

}
/*
######################### END Contact Form ##########################
#####################################################################
*/
?>


spero qualcuno mi possa aiutare, grazie per la disponibilità e complimenti per il forum.
 
Mi è appena arrivata una mail, dal mio form, quindi funziona è già un passo avanti, solo che ciò avviene quando si clicca il pulsante invia e l'utente viene rimandata al successivo form da compilare, come si può ovviare questo passaggio e spedire un mail già dal primissimo form ( anche perchè non ha senso che me la spedisca dal secondo in cui non c'è nessuna formattazione del sito).

Grazie ancora per la disponibilità
 
ciao
scusa una domanda:
ma per il form semplice che hai sul sito, uno script più complicato non sei riuscito a trovarlo:D?

prova a guardare tra gli script qui di mrwm
 
ciao
scusa una domanda:
ma per il form semplice che hai sul sito, uno script più complicato non sei riuscito a trovarlo:D?

prova a guardare tra gli script qui di mrwm

Si, anche tu hai ragione, però era il primo che ho trovato sul link di mr webmaster, scusa il link, non funziona, cmq suppongo sia lo stesso che ho già guardato quello di mr webmaster, mi sapresti consigliare uno script, facile da modificare e utile per ciò che mi serve?
 
ciao
quarda nello zip
prima di cancellare qualcosa esamina lo script è ampiamente commentato
provalo (al massimo non funzia, spero di no:D), eventualmente sono qui

dimenticavo ho fatto solo il form, devi inserirlo nella tua pagina.
per provarlo, prima decommenta le righe indicate e caricalo così come è e provalo, dopo lo inserisci
 
Ultima modifica:
ciao
quarda nello zip
prima di cancellare qualcosa esamina lo script è ampiamente commentato
provalo (al massimo non funzia, spero di no:D), eventualmente sono qui

dimenticavo ho fatto solo il form, devi inserirlo nella tua pagina.
per provarlo, prima decommenta le righe indicate e caricalo così come è e provalo, dopo lo inserisci

Grazie mille, domani lo testo e ti faccio sapere.
 
Ciao l'ho inserito alla seguente pagina,

http://www.larometta.it/en/try2.php

ho fatto qualche test e mi sembra funzionante, non so veramente come ringraziarti!
All'inizio ho avuto qualche problema perchè insistevo nel salvare la pagina in html, poi ho capito che andava salvata in php ed è andato tutto liscio.
Ci mancherebbe che cancellassi l'autore del form, dopo tutto quello che hai fatto!
Un ultima cosa, non ho ben capito quella questione del cambio di link nel caso il codice sia errato ed il cambio di link nel caso l'email venga inviata con successo.
L'avvenuto invio lo volevo linkare ad un pagina più carina graficamente, come si fa?
L'errato invio lo volevo linkare ad una pagina in cui lo specificava e quindi dopo non so ( 20 secondi ), rimandava in automatico al form mail per ritentare l'invio, mi potresti spiegare come si fa?

In ogni modo grazie mille per la disponibilità, ce ne fosse di persone come te!
 
ciao
decommenta le due righe

PHP:
if(mail($to,$oggetto,$messaggio,$headers)){
			//a te il compito di mettere il messaggio in forma grafica migliore
			echo "<h2>EMAIL INVIATA CORRETTAMENTE</h2><br>grazie di averci conttatato<br>sarai richiamato quanto prima";
			//torno al form, se su due pag diverse al posto di paginaFORM.php metti il nome
			//della pagina del form e decommenta la riga sotto
			echo "<meta http-equiv='Refresh' content='3; URL=paginaFORM.php'>";
		}else{
			//a te il compito di mettere il messaggio in forma grafica migliore
			echo "<h2>ERRORE DI TRASMISSIONE</h2><br>riprova più tardi";
			//*********torno al form, se su due pag diverse al posto di paginaFORM.php metti il nome
			//della pagina del form e decommenta la riga sotto
			echo "<meta http-equiv='Refresh' content='3; URL=paginaFORM.php'>";
		}

ti ricordo che
equiv='Refresh' content='3; equiv='Refresh' content='3; URL=paginaFORM.php'>";

al posto di equiv='Refresh' content='3; URL=paginaFORM.php'>";
devi inserire il nome della tua pagina

e che content='3
sono i secondi di attesa prima del refresh che puoi cambiare
ciao
 
ciao
penso di si, un unico dubbio (non conoscendo molto js). io ho il controllo del form

HTML:
<script language="Javascript" type="text/javascript">
<|--
function ControllaForm()
{
var controllo=false; 
if (document.formContatti.Nome_contact_01.value == "" )
{
controllo=true;
alert("Attenzione: Il campo NOME non può essere vuoto.\nIl form non sarà inviato");
}
//controllo degli altri campi....

if (controllo){return false}else{return true} 
}
// -->
</SCRIPT>

<form name="formContatti" method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" OnSubmit="return ControllaForm(this)">

nome <input id="Nome" name="Nome_contact_01" value="" class="input_txt input_medio"  type="text">
<!-- altri campi ......-->
</form>
il js da l'alert se lascio il campo vuoto, ma non se metto uno o più spazi
dove devo inserire la function che hai postato
grazie
 
a meno che tu non abbia gia riparato tutto il danno ho notato che nella pagina di codice che hai postato tutti gli "if" gli "else" e gli "elseif" non si aprono mai. Addirittura uno non apre e non chiude. Adesso correggo la tua pagnia e te la posto!
 
Così ora dovrebbe andare bene:
PHP:
<? 
/*
############################ Contact Form ###########################
### |-----------------------------------------------------------| ###
### | WRITTEN 2005 by planetluc.com c/o Lukas Stalder | ###
### | THIS SMALL SCRIPT IS FREE AND MAY BE REDISTRIBUTED | ###
### |-----------------------------------------------------------| ###
################################################## ###################
*/ 



/*
// ################ INSTALLATION #################

1. open the .php file where you want to have the contact form in.
2. paste this whole code in there
3. adapt values in the config section below to your needs.
4. upload the file - that's it!

// ############## END INSTALLATION ###############
*/




// ################### CONFIG ###################

// CSS classes & styles
$class_txt = "text";
$class_inputbutton = "inputButton";
$class_inputline = "inputLine";
$class_inputfield = "inputField";
$style_inputline = "width:355px;";
$style_inputfield = "width:355px;";

// email
$target_address = "[email protected]";
$email_subject = "Richiesta Informazioni";

// error messages
$err_name = "Please enter a namen.";
$err_phone = "Please enter a phone number.";
$err_msg = "Please fill out the 'request' field.";
$err_email = "Please enter a valid email address.";

// misc text
$msg_date = "Date";
$msg_company = "Company";
$msg_name = "Name";
$msg_address = "Address";
$msg_city = "Zip/City";
$msg_phone = "Phone";
$msg_email = "Email";
$msg_answerby = "Reply by";
$txt_email = "Email";
$txt_phone = "Phone";
$txt_post = "Post";
$txt_send = "Send";
$txt_mandatory = "mandatory";
$msg_request = "Request";
$msg_indent = 11;

// messages
$txt_thankyou = "<div class='$class_txt'><h2>Thank you for getting in contact with us!</h2>Your request has been sent and you'll be contacted as soon as possible.</div>";
$txt_error = "<div style='color: #cc3300' class='$class_txt'><h2>Following errors occurred:</h2>{errors}</div>"; // {errors} is replaced by the errors that occurred



// ### GERMAN TRANSLATION ###

/* 

$email_subject = "Anfrage an Dott.com";

// error messages
$err_name = "Bitte Namen angeben.";
$err_phone = "Bitte Telefon angeben.";
$err_msg = "Formulieren Sie bitte Ihr Anliegen.";
$err_email = "Geben Sie bitte eine g&uuml;ltige Email Adresse an.";

// misc text
$msg_date = "Datum";
$msg_company = "Firma";
$msg_name = "Name";
$msg_address = "Adresse";
$msg_city = "PLZ/Ort";
$msg_phone = "Fon";
$msg_email = "Email";
$msg_answerby = "Antwort per";
$txt_email = "Email";
$txt_phone = "Telefon";
$txt_post = "Post";
$txt_send = "Abschicken";
$txt_mandatory = "Pflichtfeld";
$msg_request = "Anfrage";

// messages
$txt_thankyou = "<div class='$class_txt'><h2>Danke f&uuml;r Ihr Interesse!</h2>Ihre Anfrage wurde verschickt und Sie werden baldm&ouml;glichst kontaktiert werden.</div>";
$txt_error = "<div style='color: #cc3300' class='$class_txt'><h2>Bitte beachten Sie folgendes:</h2>{errors}</div>"; // {errors} is replaced by the errors that occurred

*/


// ################ END CONFIG #################




function spaces($num, $fill=" "){
$foo="";
for ($i=0; $i<$num; $i++) $foo.=$fill;
return $foo;
}

function isValidEmail($addr){
if(eregi("^[a-z0-9]+([_.-][a-z0-9]+)*@([a-z0-9]+([.-][a-z0-9]+)*)+\\.[a-z]{2,4}$", $addr)){
return true;
}else{
return false;
}


// start form evaluation
$error="foo";
if ($_REQUEST['do']=="send"){
$error=false;
if ($_REQUEST['name']==""){ $error.="&raquo; $err_name<br>"; 
}
if ($_REQUEST['fon']==""){ $error.="&raquo; $err_phone<br>"; 
}
if ($_REQUEST['message']==""){ $error.="&raquo; $err_msg<br>"; 
}
if (!isValidEmail($_REQUEST['email'])){ $error.="&raquo; $err_email<br>";
}
if ($error===false){

$message="$msg_date:".spaces($msg_indent-strlen($msg_date)).date("d M Y, H:i", time());
if ($_REQUEST['firma']) { $message.="\n$msg_company:".spaces($msg_indent-strlen($msg_company)).$_REQUEST['firma'];
}if ($_REQUEST['name']) { $message.="\n$msg_name:".spaces($msg_indent-strlen($msg_name)).$_REQUEST['name'];
}if ($_REQUEST['adresse']){ $message.="\n$msg_address:".spaces($msg_indent-strlen($msg_address)).$_REQUEST['adresse'];
}if ($_REQUEST['ort']) { $message.="\n$msg_city:".spaces($msg_indent-strlen($msg_city)).$_REQUEST['ort'];
}if ($_REQUEST['fon']) { $message.="\n$msg_phone:".spaces($msg_indent-strlen($msg_phone)).$_REQUEST['fon'];
$message.="\n$msg_email:".spaces($msg_indent-strlen($msg_email))."mailto:".$_REQUEST['email'];
$message.="\n\n".spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
$message.="\n$msg_answerby ".$_REQUEST['kontakt']."!\n";
$message.=spaces(strlen("$msg_answerby ".$_REQUEST['kontakt'])+1, "=");
$message.="\n\n$msg_request:\n\n".$_REQUEST['message'];

mail($target_address, $email_subject, $message, "From: ".$_REQUEST['email']);
echo $txt_thankyou;

}else if ($error!==false){ $error!=str_replace("{errors}", $error, $txt_error);

}

if ($error==false){

if($error="foo"){ 
echo $error;
}else{
// form
echo "<script language='JavaScript' type='text/JavaScript'>\n";
echo "window.onload = function(){ document.form1.firma.focus(); }\n";
echo "</script>\n";
echo "<form name='form1' method='post' action=''>\n";
echo "<table border='0' cellpadding='1' cellspacing='0' class='txt'>\n";
echo "<tr><td>&nbsp;</td>\n";
echo "<td height='19'>&nbsp;</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_company</td>\n";
echo "<td height='19'><input name='firma' id='firma' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['firma']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_name*</td>\n";
echo "<td height='19'><input name='name' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['name']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_address</td>\n";
echo "<td height='19'><input name='adresse' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['adresse']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_city</td>\n";
echo "<td height='19'><input name='ort' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['ort']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_phone*</td>\n";
echo "<td height='19'><input name='fon' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['fon']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_email*</td>\n";
echo "<td height='19'><input name='email' type='text' class='$class_inputline' style='$style_inputline' value='".$_REQUEST['email']."'>\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_answerby*</td>\n";
echo "<td height='19' class='$class_txt'><input name='kontakt' type='radio' value='$txt_email' checked> $txt_email&nbsp;&nbsp;\n";
echo "<input name='kontakt' type='radio' value='$txt_phone'> $txt_phone&nbsp;&nbsp;\n";
echo "<input name='kontakt' type='radio' value='$txt_post'> $txt_post\n";
echo "</td></tr>\n";
echo "<tr><td width='75' class='$class_txt'>$msg_request*</td>\n";
echo "<td height='19'><textarea name='message' cols='45'style='$style_inputfield' rows='10' class='$class_inputfield'>".$_REQUEST['message']."</textarea></td></tr>\n";

echo "<tr><td width='75' >&nbsp;</td>\n";
echo "<td height='19' align='right'>* $txt_mandatory</td></tr>\n";

echo "<tr><td width='75'>&nbsp;</td>\n";
echo "<td height='19'><input name='Submit' type='Submit' class='$class_inputbutton' value='$txt_send'>\n";
echo "<input name='do' type='hidden' id='do' value='send'></td>\n";
echo "</tr></table>\n";
echo "</form>\n";

}
/*
######################### END Contact Form ##########################
################################################## ###################
*/ 
?>
 
Ultima modifica:
Innanzitutto grazie anche a Steave 67 per aver contribuito, però ora mi sento un pò confuso, non ho ben capito, qual'èil codice finale, che devo inserire.

Domanda per Borgo Italia, potresti ripostarmelo, quello completo finale?

Un'ultima cosa, ieri mi sono auto inviato due mail, per vedere se funzionava, ma a tutt'ora ancora non mi sono arrivate, com'è possibile?

In compenso questa mattina ho ricevuto, una mail di prova di qualche utente di questo forum, quindi credo che funzioni solo quando ne abbia voglia lui, non si pouò ovviare a questo problema, o è dovuto al fatto che mi appoggio ad Aruba?

Ps Ora testo il link alla pagina di avvenuto invio

In ogni caso grazie mille, per la vostra inconmensurabile disponibilità!
 

Discussioni simili