Ciao a tutti!
Volevo sapere se c'era qualcuno che poteva aiutarmi con uno script in php per un form contatti.![]()
ho provato a personalizzarlo e in realtà non c'era molto da fare, l'unica cosa che non ho capito è nella pagina php + sotto quano dice:
// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio
$provenienza = array ('comunicazionedinamica.it','www.comunicazionedina mica.it');
in teoria nell'esempio dopo 'www.comunicazionedinamica.it' avrei dovuto inserire qualcosa tipo '151.1.32.232'...
non so se mi sono spiegato bene, cmq, ecco
nella pagina html di contatti ho inserito questo codice:
<form method="post" action="formInvio.php">
<div><input type="hidden" name="require" value="email,nome_e_cognome" />
<input type="hidden" name="contenitore" value="a.manea@tiscali.it" />
<input type="hidden" name="invia_Dati" value="REMOTE_HOST,HTTP_USER_AGENT" />
</div>
<div>Nome e cognome:</div>
<div><input tabindex="10" class="form" type="text" name="nome_e_cognome" value="inserisci il tuo nome e il tuo cognome" id="nome_e_cognome" />
</div>
<div>email:</div>
<div><input tabindex="11" class="form" type="text" name="email" value="inserisci un indirizzo mail esistente" id="email" />
</div>
<div>Telefono:</div>
<div><input tabindex="12" class="form" type="text" name="telefono" value="inserisci il tuo numero di telefono" id="telefono" />
</div>
<div>Oggetto della richiesta:
<select tabindex="13" name="voci" id="selezione" class="select">
<option value="Informazioni generali" selected>Informazioni generali</option>
<option value="Richiesta preventivo">Richiesta preventivo</option>
<option value="Assistenza tecnica">Assistenza tecnica</option>
<option value="Problemi sul sito">Segnalazione problemi</option>
</select>
<div><label for="Richiesta-informazioni">Scrivi qui il tuo commento:</label></div>
<div><textarea tabindex="14" class="form" name="Richiesta informazioni" rows="5" cols="40" id="Richiesta-informazioni">Ciao!</textarea></div>
</div>
<div>Desideri essere contattato per:</div>
<ul class="lista">[*]
<input tabindex="15" type="checkbox" name="contatto-email" id="scelta-email" checked /><label for="scelta-email">email</label>
<input tabindex="16" type="checkbox" name="contatto-telefono" id="scelta-telefono" /><label for="scelta-telefono">telefono</label>
[/list]
<div><button tabindex="17" class="buttons" type="submit" value="invia" name="submit" accesskey="in"><span class="access">in</span>via</button>
<button tabindex="18" class="buttons" type="reset" value="cancella" name="reset" accesskey="ca" ><span class="access">ca</span>ncella</button></div>
</form>
poi ho un'altra pagina formInvio.php:
<?
##############################
if (!ini_get('register_globals')) {
$superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET);
if (isset($_SESSION)) {
array_unshift($superglobals, $_SESSION);
}
foreach ($superglobals as $superglobal) {
extract($superglobal, EXTR_SKIP);
}
}
##############################
/*
formail completo, è possibile aggiungere qualunque campo
è sufficiente inserire le due pagine in un punto qualunque
del proprio dominio.
by linkbruttocane
*/
//INIZIO PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/************************************************** **************************************/
// Il parametro $delay indica i secondi di ritardo impiegati
// a riportare l'utente all'home page dopo che abbia
// compilato correttamente il modulo
$delay = "";
// 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.comunicazionedinamica.it/";
// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio
$provenienza = array ('comunicazionedinamica.it','www.comunicazionedina mica.it');
// 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 ('*@quellochetipare.com', 'nomechetipare@dominio.com', 'altro@dominio.com');
//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='#ffffff'>
<p align='center'><font face='Verdana, Arial' color='#000000' size='2'>Il modulo non è
stato inviato per le seguenti ragioni</font></p>
<p align='center'><font face='Verdana, Arial' size='2' color='#000000'>
<?
echo $reason."\n";
?>
</font>
<p align='center'><font face='Verdana, 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 "
\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 indirizzo email escluso.");
}
}
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 dominio non autorizzato.");
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 = "#99cc99";
if (!$text_color)
$text_color = "#80000";
if (!$link_color)
$link_color = "#0066cc";
if (!$vlink_color)
$vlink_color = "#0066cc";
if (!$alink_color)
$alink_color = "#cc3300";
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("Occorre un indirizzo email valido per continuare ($contenitore_to_test) ");
}
}
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 .= "Non trovato: $required[$i]
\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 indirizzo email 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 = "DanieleImperi.it - Contatti dal sito";
mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);
if ($redirect) {
header ("Location: $redirect");
exit;
} else {
print "<body background='img/bg2.gif' bgcolor='#ffffff' style='margin:20'>
<table width='70%' height='247' align='center' cellpadding='10' cellspacing='0' bgcolor='#FFFFFF'>
<tr>
<td valign='top'>
<table width='100%' height='247' border='1' bordercolor='#cccccc' bgcolor='#FFFFFF' cellpadding='4' cellspacing='0'>
<tr>
<td><div align='center'><font face='Verdana, Arial, Helvetica, sans-serif'>
Grazie per avermi contattato!</font></div>
<div align='center'><font face='Verdana, Arial, Helvetica, sans-serif'>Sarete
contattati
appena possibile all'indirizzo da voi inserito
$email</font></div>
<div align='center'>
<font color='#999999' size='2' face='Verdana, Arial, Helvetica, sans-serif'>...Ritorno
automatico alla Home page in corso.... </font></div></td>
<meta http-equiv='refresh' content='$delay; url=$url'>
</tr>
</table>
</td>
</tr>
</table>
</body>
";
echo "
\n";
exit;
}
// <---------- fine ----------> //
?>
ecco!
purtroppo però non funziona....
mi appare la schermata di errore di explorer....
grazie in anticipo a chi vorrà darmi un consiglio!![]()
Ale