|
Junior Member
Iscritto dal: Mar 2008
Messaggi: 8
|
[PHP] Form (vari problemi)
Ciao ragazzi,
ho caricato sul mio sito internet un form mail a campi multipli che permetta agli utenti di inviarmi una mail con i loro dati. Per fare questo ho scaricato da internet 2 file form.htm e forminvio.php già precompilati, mi è bastato aggiungere le info che mi interessavano e le informazioni riguardanti il mio dominio e mail.
Ora elenco i problemi che ho riscontrato:
1) Ho inserito alcuni campi obbligatori e quando si compilano e si preme invio appare il messaggio che l'operazione è andata a buon fine. Però quando vado a vedere sulla mia casella email non trovo niente. Viceversa se compilo tutti i campi (obbligatori e non) la mail mi arriva. Ho provato a non scrivere i dati nelle caselle obbligatorie e correttamente mi appare il messaggio di errore. Cosa uò essere?
2) ho inserito un campo text area con all'interno una formativa sulla privacy. C'è un modo per far si che ogni volta che mi arriva la mail con le info dell'utente non mi arrivi anche tutto il papiro della dichiarazione sulla privacy?
3) Si può fare in modo che quando mi arrivano le mail appaia anche la mail dell'utente nel mittente (magari quella che ha inserito nel campo con voce email)? Ora appare uno spazio vuoto
4)Sempre nella mail che mi giunge all'inizio appaiono anche dei dati che non mi interessano (require2: Nome_e_Cognome,Email
contenitore2: [email protected]
invia_Dati2: REMOTE_HOST,HTTP_USER_AGENT)
C'è un modo per non riceverli?
di seguito vi riporto anche il codice dei 2 file. Premetto che è da 2 giorni che cerco di risolvere questi problemi ma guardando in giro sui forum non ho trovato soluzioni al mio problema.
Ringrazio tutti anticipatamente
Questo è il file htm
Codice PHP:
$delay = "5";
// Il parametro $url indica la pagina alla quale si viene
// rimandati una volta compilato correttamente il modulo
// io ho messo una homepage, ma potrebbe essere qualunque altra pagina
$url = "http://www.xxxxxx.it/Untitled-5.html";
// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio con relativo IP
$provenienza = array ('xxxxxxx.it','www.xxxxxxx.it','00.000.000.000');
// Il parametro $esclusioni vi permette di NON consentire
// messaggi da un indirizzo mail specificato
// sia appartenente ad un dominio, ovvero
// 'tutte le mail che appartengono ad un dominio'
// od anche a singoli account
$esclusioni = array ('[email protected]', '[email protected]', '[email protected]');
//FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/****************************************************************************************/
$versione_form = "stabile";
function print_error($reason,$type = 0) {
global $versione_form;
build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
if ($type == "missing") {
?>
<body bgcolor='#cccccc'>
<p align='center'><font face='Arial' color='#000000' size='2'>Il modulo non è
stato inviato per le seguenti ragioni</font></p><br>
<p align='center'><font face='Arial' size='2' color='#000000'>
<?
echo $reason."\n";
?>
</font>
<p align='center'><font face='Arial' size='2' color='#000000'>Premere indietro
nel browser e riprovare.</font></p><?
} else { // every other error
?>
Il modulo non è stato inviato per le seguenti ragioni:<p align='center'>
<?
}
echo "<br><br>\n";
exit;
}
function check_banlist($esclusioni, $email) {
if (count($esclusioni)) {
$allow = true;
foreach($esclusioni as $banned) {
$temp = explode("@", $banned);
if ($temp[0] == "*") {
$temp2 = explode("@", $email);
if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
$allow = false;
} else {
if (trim(strtolower($email)) == trim(strtolower($banned)))
$allow = false;
}
}
}
if (!$allow) {
print_error("Stai usando un <b>indirizzo email escluso.</b>");
}
}
function check_referer($provenienza) {
if (count($provenienza)) {
$found = false;
$temp = explode("/",getenv("HTTP_REFERER"));
$referer = $temp[2];
for ($x=0; $x < count($provenienza); $x++) {
if (eregi ($provenienza[$x], $referer)) {
$found = true;
}
}
if (!getenv("HTTP_REFERER"))
$found = false;
if (!$found){
print_error("Provieni da un <b>dominio non autorizzato.</b>");
error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
}
return $found;
} else {
return true; //
}
}
if ($provenienza)
check_referer($provenienza);
if ($esclusioni)
check_banlist($esclusioni, $email);
function parse_form($array) {
// build reserved keyword array
$reserved_keys[] = "required";
$reserved_keys[] = "redirect";
$reserved_keys[] = "email";
$reserved_keys[] = "require";
$reserved_keys[] = "contenitore";
$reserved_keys[] = "titolo";
$reserved_keys[] = "bgcolor";
$reserved_keys[] = "text_color";
$reserved_keys[] = "link_color";
$reserved_keys[] = "vlink_color";
$reserved_keys[] = "alink_color";
$reserved_keys[] = "title";
$reserved_keys[] = "missing_fields_redirect";
$reserved_keys[] = "invia_Dati";
if (count($array)) {
while (list($key, $val) = each($array)) {
$reserved_violation = 0;
for ($ri=0; $ri<count($reserved_keys); $ri++) {
if ($key == $reserved_keys[$ri]) {
$reserved_violation = 1;
}
}
if ($reserved_violation != 1) {
if (is_array($val)) {
for ($z=0;$z<count($val);$z++) {
$content .= "$key: $val[$z]\n";
}
} else {
$content .= "$key: $val\n";
}
}
}
}
return $content;
}
function mail_it($content, $titolo, $email, $contenitore) {
mail($contenitore, $titolo, $content, "From: $email\r\nReply-To: $email\r\nX-Mailer: DT_formmail");
}
function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
if ($style_sheet)
echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
if ($title)
echo "<title>$title</title>\n";
if (!$bgcolor)
$bgcolor = "#cccccc";
if (!$text_color)
$text_color = "#80000";
if (!$link_color)
$link_color = "#0000FF";
if (!$vlink_color)
$vlink_color = "#FF0000";
if (!$alink_color)
$alink_color = "#000088";
if ($background)
$background = "background=\"$background\"";
echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
}
$contenitore_finale = split(',',$contenitore);
for ($i=0;$i<count($contenitore_finale);$i++) {
$contenitore_to_test = trim($contenitore_finale[$i]);
if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,3}$", $contenitore_to_test)) {
print_error("<b>Occorre un indirizzo email valido per continuare ($contenitore_to_test) </b>");
}
}
if ($required)
$require = $required;
if ($require) {
$require = ereg_replace( " +", "", $require);
$required = split(",",$require);
for ($i=0;$i<count($required);$i++) {
$string = trim($required[$i]);
if((!(${$string})) || (!(${$string}))) {
if ($missing_fields_redirect) {
header ("Location: $missing_fields_redirect");
exit;
}
$require;
$missing_field_list .= "<b>Non trovato: $required[$i]</b><br>\n";
}
}
if ($missing_field_list)
print_error($missing_field_list,"missing");
}
if (($email) || ($EMAIL)) {
$email = trim($email);
if ($EMAIL)
$email = trim($EMAIL);
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $email)) {
print_error("il suo <b>indirizzo email</b> non è valido");
}
$EMAIL = $email;
}
$content = parse_form($HTTP_POST_VARS);
if ($invia_Dati) {
$invia_Dati = ereg_replace( " +", "", $invia_Dati);
$splitta_Dati = split(",",$invia_Dati);
$content .= "\n------ variabili utente ------\n";
for ($i=0;$i<count($splitta_Dati);$i++) {
$string = trim($splitta_Dati[$i]);
if ($splitta_Dati[$i] == "REMOTE_HOST")
$content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
else if ($splitta_Dati[$i] == "REMOTE_USER")
$content .= "REMOTE USER: ". $REMOTE_USER."\n";
else if ($splitta_Dati[$i] == "REMOTE_ADDR")
$content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
else if ($splitta_Dati[$i] == "HTTP_USER_AGENT")
$content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
}
}
if (!$titolo)
$titolo = "Modulo dal sito";
mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);
if ($redirect) {
header ("Location: $redirect");
exit;
} else {
print "<body bgcolor='#cccccc'>
<p align='center'><font face='Arial' size='2' color='#00000'>Grazie per averci
contattato.</font></p><p align='center'><font face='Arial' size='2' color='#00000'>Riceverete
risposta all'indirizzo da voi indicato $email<br><br>...Ritorno automatico alla Home page in corso....</font></p><meta http-equiv='refresh' content='$delay; url=$url'>
<p align='center'> </p>
</body>
";
echo "<br><br>\n";
exit;
}
// <---------- fine ----------> //
?>
Questo invece è il file php
Codice PHP:
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.style1 { font-size: 9px;
font-weight: bold;
}
.style2 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
}
.style3 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
color: #FF0000;
}
.style4 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #FF0000;
font-weight: bold;
}
.style5 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; }
.style6 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; color: #333333; font-weight: bold; font-style: italic; }
.Stile1 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<form method="post" action="formInvio.php">
<div align="center">
<input type="hidden" name="require" value="Nome_e_Cognome,Email,La_barca_si_trova_a,Tipo_Intervento,Marca_e_Modello_apparati,Descrizione_Problema">
<input type="hidden" name="contenitore" value="[email protected]">
<input type="hidden" name="invia_Dati" value="REMOTE_HOST,HTTP_USER_AGENT">
</div>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="82%" bgcolor="#FFFFFF">
<tr>
<td width="100%" valign="baseline">
<div align="center">
<p><img src="/Immagini/service.png" alt="" width="581" height="29"></p>
<p align="center"><br>
In questa pagina trovate il modulo da compilare per richiedere un intervento direttamente a bordo della vostra imbarcazione.Completate tutti i dati richiesti e verrete ricontattati in seguito. I dati contrassegnati da * sono obbligatori</p>
<hr width="550">
<p align="left"> </p>
<table width="522" border="1" align="center" bordercolor="#FFFFFF">
<tr>
<td width="512" bordercolor="#2B95FF"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="10" bgcolor="#B7DBFF">
<input type="hidden" name="require2" value="Nome_e_Cognome,Email,La_barca_si_trova_a,Tipo_Intervento,Marca_e_Modello_apparati,Descrizione_Problema">
<input type="hidden" name="contenitore2" value="[email protected]">
<input type="hidden" name="invia_Dati2" value="REMOTE_HOST,HTTP_USER_AGENT">
<tr>
<td colspan="2" align="center" valign="middle" class="Stile1"><div align="center"><u>COMPLETA IL MODULO </u></div></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"> </td>
<td class="style2"> </td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Ragione Sociale </div></td>
<td class="style2"><label for="label"></label>
<input name="Ragione_Sociale" type="text" id="label" size="30"></td>
</tr>
<tr>
<td width="37%" align="center" valign="middle" class="style2"><div align="right" class="style2">Nome e Cognome (*) </div></td>
<td width="63%" class="style2"><input name="Nome_e_Cognome" type="text" class="sfmoduli" id="Nome_e_Cognome" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Indirizzo (Via - n° - Città) </div></td>
<td class="style2"><label for="textfield"></label>
<input name="Indirizzo" type="text" id="Indirizzo" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right" class="style2">Codice Fiscale o Partita IVA </div></td>
<td class="style2"><input name="Cod_Fiscale_o_PI" type="text" class="sfmoduli" id="Cod_Fiscale_o_PI" size="30"> </td>
</tr>
<tr>
<td align="center" valign="top" class="style2"><div align="right">Telefono</div></td>
<td class="style2"><label for="textfield"></label>
<input name="Telefono" type="text" id="Telefono" size="30"></td>
</tr>
<tr>
<td align="center" valign="top" class="style2"><div align="right">Indirizzo E-Mail (*) </div></td>
<td class="style2"><input name="Email" type="text" class="sfmoduli" id="Email" size="30"> </td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Tipo di Imbarcazione </div></td>
<td class="style2"><label for="select"></label>
<select name="Tipo_di_Barca" id="Tipo_di_Barca">
<option>Selezionare</option>
<option>Barca a Vela</option>
<option>Barca a Motore</option>
<option>Barca da Lavoro</option>
</select> </td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Modello Imbarcazione </div></td>
<td class="style2"><label for="textfield"></label>
<input name="Modello_Imbarcazione" type="text" id="Modello_Imbarcazione" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Anno di Costruzione </div></td>
<td class="style2"><label for="textfield"></label>
<input name="Anno_Costruzione" type="text" id="Anno_Costruzione" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Lunghezza Imbarcazione </div></td>
<td class="style2"><label for="textfield"></label>
<input name="Lunghezza_Imbarcazione" type="text" id="Lunghezza_Imbarcazione" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Tensione di Bordo </div></td>
<td class="style2"><label for="select"></label>
<select name="Tensione_di_Bordo" id="Tensione_di_Bordo">
<option>12 Volt</option>
<option>24 Volt</option>
</select> </td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">La barca si trova presso (*) </div></td>
<td class="style2"><label for="textfield"></label>
<input name="La_barca_si_trova_a" type="text" id="La_barca_si_trova_a" size="30"></td>
</tr>
<tr>
<td align="center" valign="middle" class="style2"><div align="right">Tipo di Intervento (*) (installazione, riparazione, Istruzioni, etc.)</div></td>
<td class="style2"><label for="textfield"></label>
<input name="Tipo_Intervento" type="text" id="Tipo_Intervento" size="30"></td>
</tr>
<tr>
<td align="center" valign="top" class="style2"><div align="right">Indicare Marca e Modello degli apparati (*) </div></td>
<td class="style2"><textarea name="Marca_e_Modello_apparati" cols="31" rows="7" class="sfmoduli" id="Marca_e_Modello_apparati"></textarea></td>
</tr>
<tr>
<td align="center" valign="top" class="style2"><div align="right">Descrizione del Problema (*) </div></td>
<td class="style2"><textarea name="Descrizione_Problema" cols="31" rows="7" class="sfmoduli" id="Descrizione_Problema"></textarea></td>
</tr>
<tr>
<td align="center" valign="top" class="style2"><div align="right">
<p>Trattamento Dati Personali </p>
</div></td>
<td align="center" class="style2"><label for="textarea"></label>
<div align="left">
<textarea readonly="readonly" name="Privacy" cols="31" rows="7" id="Privacy">Comunicazione informativa ai sensi dell’art. 13 del Decreto Legislativo n. 196/2003
</textarea>
</div></td>
</tr>
<tr>
<td align="center" class="style2"> </td>
<td align="center" class="style2"><div align="left">
<label for="select"></label>
<select name="Trattamento_Dati " id="Trattamento_Dati ">
<option>Seleziona</option>
<option>Acconsento</option>
<option>Non Acconsento</option>
</select>
</div></td>
</tr>
<tr>
<td align="center" class="style2"> </td>
<td align="center" class="style2"> </td>
</tr>
<tr>
<td colspan="2" align="center" class="style2"><div align="right">
<input name="submit" type="submit" class="modulomultiplo">
<input name="reset" type="reset" class="modulomultiplo">
</div></td>
</tr>
</table></td>
</tr>
</table>
</div>
</form>
<p align="center"> </td>
</tr>
</table>
</center>
</div>
</html>
|