Espansione serverfarm: siglato accordo per raddoppio banda!


1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
 
Valutazione discussione:
  • 0 voti - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
rif: limite numero di email inviabili giornalmente
13-01-2010, 03:39
Messaggio: #27
RE: rif: limite numero di email inviabili giornalmente
Acc! Allora ho fatto male a scrivere i complimenti nel feedback su W4W...e poi Gandalf prende lo stipendio? Io pensavo vivesse della sua magia e forse arrotondava giusto realizzando spettacoli pirotecnici nelle sagre di paese con i suoi amici diversamente alti. Tongue

Scherzi a parte, ritorno in topic. Tooth

Allora, credo proprio di essere riuscito a crearmi il contact form in php da solo senza ricorrere ad un servizio esterno.
Praticamente ho lasciato un primo controllo dei campi obbligatori in Javascript con un alert di avviso errore, poi s'indirizza alla pagina php di elaborazione che ripete il controllo dei campi ed invia il tutto.

Per ora come sicurezza, ho inserito nel form html (con un <div style="visibility:hidden">) un campo nascosto che nel controllo php deve risultare vuoto. L'utente non lo vede e non avrà problemi, ma se un bot dovesse compilarlo in automatico, l'invio sarà bloccato.

Un captcha grafico non voglio inserirlo perchè mi è antipatico, Dodgy mentre aggiungerei volentieri una domandina casuale matematica per maggiore sicurezza. Solo che non sono ancora riuscito a trovare uno script da poter integrare facilmente nel mio form e nel controllo sulla pagina php...

Io ho testato tutto mettendolo online e sembra funzionare correttamente. Boat
Per scrupolo posto il codice usato per avere conferma magari di aver agito bene.

CODICE FORM HTML
Spoiler:
<form name="modulo" method="post" action="inviamail.php" onSubmit="j return controlla();">
<table width="490" border="0">
<tr>
<td width="120" class="ComicItalic">nome <span class="ComicRed">* </span></td>
<td width="360"><input name="nome" id="nome" type="text" value="" size="25"></td>
</tr>
<tr>
<td class="ComicItalic">cognome </td>
<td><input name="cognome" type="text" value="" size="25"></td>
</tr>
<tr>
<td class="ComicItalic">email <span class="ComicRed">* </span></td>
<td><input name="email" id="email" type="text" value="" size="40"></td>
</tr>
<tr>
<td class="ComicItalic">sondaggio</td>
<td><input name="sondaggio" type="text" value="Ho trovato il sito tramite [scrivi qui]" size="50"></td>
</tr>
<tr>
<td class="ComicItalic">corpo del testo <span class="ComicRed">*</span> </td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="2" align="center"><textarea name="messaggio" id="messaggio" rows="5" cols="55"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="submit" type="submit" class="ComicItalic" value="Inoltra il messaggio"> <div style="visibility:hidden"> Non compilare il campo sicurezza sottostante, altrimenti sarà bloccato l'invio.<br /> <input type="text" name="mail" value="" style="width:100px;height:15px;font-size:10px;" /></div></td>
</tr>
</table>
</form>
CODICE PHP (per questo post ho "censurato" solo la mia email)
Spoiler:
<?php session_start(); ?>
<?php
$email=$_POST['email'];


#######################################
#######################################
#######################################
# IMPOSTAZIONI DA CONFIGURARE #
#######################################

//(1) indirizzo email del destinatario del modulo
$destinatario = "zoh[chiocciola]zoneofhobbies.it";

//(2) indirizzo email del mittente, campo FROM
// non toccare se desiderate che l'indirizzo email inserito nel modulo sia
// riportato nel campo DA del messaggio che sarà ricevuto.
// Se invece desiderate un campo fisso annullare la prima riga e abilitare
// la seconda inserendo la dicitura desiderata (per annullare mettere //
// all'inizio della prima riga e per abilitare togliere // dalla seconda riga)
$nome_mittente = "$email";
// $nome_mittente = "Dal Modulo";

//(3) oggetto del messaggio
$oggetto_email = "Messaggio a zoneofhobbies.it";

//(4) se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y".
// (valori possibili: "y" e "n")
$all_free = "n";

//(5) se avete messo "n" al punto (4) inserire tra virgolette, separati
// dalla virgola, i nomi dei campi da rendere OBBLIGATORI
// Esempio: $campi_req = array("nome","telefono","via");
$campi_req = array("nome","email","messaggio");

//(6) controllo validità del campo email. (valori possibili: "y" e "n")
$obbligo_email = "y";

//(non usato) obbligare l'utente ad accettare le condizioni.
// (valori possibili: "y" e "n")
// $accetta_condizioni = "y";

//(8) URL della pagina di ringraziamento
$pagina_grazie = "http://www.zoneofhobbies.it/home/risposta.htm";

//(9) URL della pagina errore campi vuoti
$pagina_error_empty = "http://www.zoneofhobbies.it/home/errore_campi_vuoti.htm";

//(10) URL della pagina errore email
$pagina_error_email = "http://www.zoneofhobbies.it/home/errore_email.htm";

//(11) URL della pagina errore condizioni non accettate
$pagina_error_condizioni = "http://www.zoneofhobbies.it/home/errore_condizioni.htm";

//(12) URL della pagina errore invio non autorizzato (mancanza di referer)
$pagina_error_referer = "http://www.zoneofhobbies.it/home/errore_referer.htm";

#######################################
# FINE IMPOSTAZIONI DA CONFIGURARE #
#######################################

//ora e data
$ora = date ("H:iConfused");
$data = date ("d/m/Y");

//intestazione email che arriva al destinatario
$corpo = "
Modulo inviato il $data alle ore $ora
Riepilogo dati:\n\n";

//============== NON TOCCARE NULLA OLTRE QUESTA RIGA ==================
// tranne se volete abilitare l'invio ad altri indirizzi di posta, questi
// valori sono da abilitare nel settore ########### HEADER EMAIL ###########
//

########### CODICI ###########

//variabili per rendere lo script compatibile anche con la versione PHP 4.2 e maggiori
if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){
$_POST = &$HTTP_POST_VARS;
}

//prende IP ADDRESS
if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){

if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {

$ipnumb = getenv("REMOTE_ADDR");

}else {

$ipnumb = getenv("HTTP_X_FORWARDED_FOR");

}

} else {

$ipnumb = getenv("REMOTE_ADDR");
}
###################################

//controllo referer
if(empty($_SERVER["HTTP_REFERER"])){

header ("Location: $pagina_error_referer");
exit();

}

########### CONTROLLO DEI CAMPI ###########
$control_campi = 0;

if($all_free != "y"){

foreach($_POST as $key => $valore){

if(in_array($key,$campi_req)){

if(trim($valore) == ""){

$control_campi++;

}

}

}

} else {

$control_campi = 0;

}

########### CONTROLLO EMAIL ###########
$control_email = 0;

if($obbligo_email == "y"){

if(isset($_POST['email'])){

if(!eregi("^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){

$control_email++;

}

} else {

$control_email = 0;

}

}

########### CONTROLLO CONDIZIONI ###########
$control_condizioni = 0;

if($accetta_condizioni == "y"){

if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){

$control_condizioni = 0;

} else {

$control_condizioni ++;

}

}

########### CONTROLLO CAMPO NASCOSTO ###########
if(isset($_POST["mail"]) && $_POST["mail"] != ""){

print("Attenzione! Campo di sicurezza da NON compilare!");
exit;
}
########### INVIO EMAIL ###########
if($control_campi == 0){

if($control_email == 0){

if($control_condizioni == 0){

foreach($_POST as $key => $valore){

$key = ucfirst(stripslashes(trim($key)));
$valore = stripslashes(trim($valore));
$key = str_replace("_"," ",$key);

if(trim($valore) == "") $valore = "Non compilato";

$corpo .= $key .": ". $valore ."\n\n";

}

$corpo .= "IP del mittente: $ipnumb"."\n";

$corpo .= "____________________________________________________________ \n\n

";

// ########### HEADER EMAIL ###########

$headmail.="From: $nome_mittente <$nome_mittente>\n";
$headmail.="Return-Path: $nome_mittente\n";
//
// #######################################
// abilitare Reply-To se si desidera inviare la posta ad un altro indirizzo
// visibile e che deve essere inserito al posto di [email protected]
// per abilitarlo togliere // prima di $headmail.="Reply-To: [email protected]\n";
//
// $headmail.="Reply-To: [email protected]\n";
//
// #######################################
// abilitare BCC se si desidera inviare la posta ad un altro indirizzo NON
// visibile e che deve essere inserito al posto di [email protected]
// per abilitarlo togliere // prima di $headmail.="BCC: [email protected]\n";
//
// $headmail.="BCC: [email protected]\n";
//
// #######################################
//
$headmail.="User-Agent: Php Mail Function\n";
$headmail.="X-Accept-Language: en-us, en\n";
$headmail.="MIME-Version: 1.0\n";
$headmail.="X-Priority: 1 (Highest)\n"; // 2 = urgente - 3 = normale
$headmail.="Content-Type: text/plain; charset=ISO-8859-1; format=flowed\n";
$headmail.="Content-Transfer-Encoding: 7bit\n";

ini_set('sendmail_from', "$destinatario");
mail("$destinatario", "$oggetto_email", "$corpo", "$headmail");

header ("Location: $pagina_grazie");

} else {

header ("Location: $pagina_error_condizioni");

}

} else {

header ("Location: $pagina_error_email");

}

} else {


header ("Location: $pagina_error_empty");

}

?>


: http://www.zoneofhobbies.it
Visita il sito web di questo utente Trova tutti i messaggi di questo utente


Messaggi in questa discussione
RE: rif: limite numero di email inviabili giornalmente - SchumyGo - 13-01-2010 03:39

Altri utenti che stanno visualizzando questa discussione

1 utente stanno visualizzando questa discussione: (0 membri, e 1 visitatore).
 
Discussioni correlate...
Discussione: Autore Risposte: Letto: Ultimo messaggio
  Email relativa ai DNS 1Dan 13 49.878 03-10-2011 14:40
Ultimo messaggio: Gandalf
  qualche domanda sul limite di banda oss 5 30.768 13-09-2011 22:53
Ultimo messaggio: Gandalf
  Trasferimento Dominio con "Administrative Contact Email " errata orochimaru 1 12.675 26-07-2011 11:38
Ultimo messaggio: Gandalf
  Inoltro email Archeon 3 16.697 14-12-2010 10:37
Ultimo messaggio: Gandalf
  Cambio email paspic 9 39.814 18-11-2010 21:23
Ultimo messaggio: Gandalf
  email su hosting micro plxmas 1 10.653 18-05-2010 21:57
Ultimo messaggio: Gandalf
  Avvisi per spazio web ed email Marco 7 28.772 22-03-2010 18:48
Ultimo messaggio: Gandalf
 
Vai al forum:


Permessi di scrittura
Non puoi inserire nuove discussioni.
Non puoi inserire risposte.
Non puoi inserire allegati.
L' HTML è disattivato.
Il MyCode è attivato.
Le faccine sono attivato.
Il codice [img] è attivato.