[RISOLTO]Ip mittente nella mail

Bradipofulmineo

Nuovo Utente
28 Set 2013
5
0
0
Buongiorno a tutti e grazie anticipatamente a chi mi verrà in aiuto:
sono un autodidatta a livello più che basico che fino ad ora ha realizzato qualche sempli pagina html per amici o associazioni no profit.
ora mi si pone il problema di inserire in un sito di un amico un form mail per l'invio di posta.
Essendo neofita e cliente Aruba ho scaricato il modulo precompilato presente sul sito di Aruba e lo adattato alle mie esigenze.
Il tutto è comnposto da due pagine: una html che contiene il form da compilare, l'altra in php da che materialmente invia la mail.
I campi sono: NOME, COGNOME, MAIL MITTENTE, TELEFONO MITTENTE e IL TESTO DEL MESSAGGIO + DUE SPUNTE sulla normativa per la privacy che inserirò.
Funziona!

ma avrei bisgno che nella mai che mi arriva ci fosse anche l'indirizzo IP del mittente e caspita se riesco a capire come si fa! :incazz::incazz::incazz:

io ho usato il form precompilato di Aruba e funziona, ma se voi mi consigliate di usarne un altro sono disposto a riscrivere tutto purchè funzioni.

GRAZIE



questa è la pagina html

Codice:
<html>
<head>
<title></title>
<style type="text/css">
.test {
	font-family: Courier New, Courier, monospace;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="css celle modulo.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<form method="post"  action="formInvio_ita.php">


<input type="hidden" name="require" value="e-mail,nome,cognome">



<p align="center"><font face="Arial" size="3" color="#993300">FormMail a campi
multipli in php</font></p>
<tr>
    <td width="100%"><div align="center">
        <table width="600" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" style="border-collapse: collapse;">
          <tr>
            <td width="273" valign="top" bordercolor="#993300" style="text-align: center">
              <p align="center"><i><font face="Arial" size="2" color="#FFFFFF">Nome (obbligatorio)</font></i></td>
            <td width="321" bordercolor="#993300">
            <p align="center"><input type="text" name="nome" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;"></font></p></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">Cognome (obbligatorio)</font></td>
            <td width="321">
              <p align="center"><font face="Arial" size="3" color="#993300">&nbsp;<input type="text" name="cognome" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;"></font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" bordercolor="#993300" bgcolor="#010000" style="text-align: center">
              <i>
              <font face="Arial" size="2" color="#FFFFFF">
              email a cui si vuole risposta (obbligatorio)</font></i></td>
            <td width="321" bordercolor="#993300">
              <p align="center"><font face="Arial" size="3" color="#993300"><input type="text" name="e-mail" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F;">
              </font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              telefono</font></td>
            <td width="321">
              <p align="center"><font face="Arial" size="3" color="#993300"><input type="text" name="telefono" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;">
              </font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              messaggio</font></td>
            <td width="321">
                
                <p align="center"><textarea rows="10" name="messaggio" cols="38" style="background-color: #FFFFFF; border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; "></textarea></p></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              &nbsp;privacy 01</font></td>
            <td width="321"><p align="center">
                
              &nbsp;<input type="checkbox" name="privacy01" value="si" checked>
              <font color="#FFFFFF" size="2" face="Arial">approvo</font>
            </p></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              &nbsp;privacy 02</font></td>
            <td width="321"><p align="center">
                
              &nbsp;<input type="checkbox" name="privacy02" value="si" checked>

                  <font face="Arial" size="2" color="#FFFFFF">approvo</font>            </p></td>
          </tr>
        </table>
      </div>

<br>

 
  <p align="center"><input type="submit"><input type="reset"></p>
<p align="center"><br><font color="#ffffff" face="Arial" size="1">Hotel Bellevuee et Mediterranee</font>&nbsp;</p>
<hr>

</form>

        <p align="center">&nbsp;</td>
    </tr>
  </table>
  </center>
</div>

</html>

e questa è la pagina PHP
Codice:
<?
/*
formMail completo, è possibile aggiungere qualunque campo
è sufficiente inserire le due pagine in un punto qualunque
del proprio dominio.
by linkbruttocane
REV 2013
*/

//INIZIO PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/****************************************************************************************/
   
//email di destinazione, mettere qui la propria email

$contenitore = "[email protected]";

// Il parametro $provenienza indica le possibili provenienze dei dati: indicare
// il proprio dominio nella forma mostrata dall'esempio. l IP è facoltativo.

$provenienza = array ('pincopallino.it','http://www.pincopallino.it','XX.XXX.XXX.XX');


// Il parametro $url indica la pagina alla quale si viene
// rimandati una volta compilato correttamente il modulo
// io ho messo la homepage, ma potrebbe essere qualunque altra pagina

$url = "/";


//FINE PARAMETRI DA SETTARE OBBLIGATORIAMENTE
/****************************************************************************************/
// Il parametro $delay indica i secondi di ritardo impiegati 
// a riportare l'utente all'home page una volta 
// compilato correttamente il modulo

$delay = "3";

// 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', '[email protected]', '[email protected]');


$redirect = "http://www.pincopallino.it/posta02.htm";

$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='#94B6C6'>
      <p align='center'><font face='Arial' color='#990000' size='2'>Il modulo non è
stato inviato per le seguenti ragioni</font></p><br>
<p align='center'><font face='Arial' size='2' color='#990000'>
     <?
     echo $reason."\n";
     ?>
     </font>
     <p align='center'><font face='Arial' size='2' color='#990000'>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: $contenitore\r\nReply-To: $contenitore\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 = "#94B6C6";
   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($_POST, $sort);




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 = "Richiesta info dal sito";

mail_it(stripslashes($content), stripslashes($titolo), $email, $contenitore);


if ($redirect) {
   header ("Location: $redirect");
   exit;
} else {
   print "<body bgcolor='#94B6C6'>

<p align='center'><font face='Arial' size='2' color='#800000'>Grazie per averci
contattato.</font></p><p align='center'><font face='Arial' size='2' color='#800000'>Riceverete
risposta all'indirizzo email da voi indicato $e-mail<br><br>...Ritorno automatico alla Home page in corso....</font></p><meta http-equiv='refresh' content='$delay; url=$url'>

<p align='center'>&nbsp;</p>

</body>
";
   echo "<br><br>\n";
   
   exit;
}

// <----------   fine    ----------> //
 
Ciao, per recuperare l'ip puoi fare cosi
PHP:
$ip = $_SERVER['REMOTE_ADDR'];
 
Grazie per la pronta risposta :)

Qualcosa leggendo e studiando lo avevo capito nel frattempo:
nella pagina del mio form ho inserito questo codice
Codice:
<?php 
// rilevo Ip, data e ora del visitatore
$ip   =$_SERVER['REMOTE_ADDR'];
$data =date("Ymd");    
$ora  =date("H:i:s");  
  print ("il tuo indirizzo IP è  $ip"); 
 ?>
ed ora il visitatore legge sotto il form "il tuo indirizzo Ip è xxx.xxx.xxx.xxx"
come a dire: non scrivere stupidate che ti rintraccio.

Però a me piacerebbe che quell'indirizzo Ip me lo inviasse nella mail insieme agli altri dati (nome cognome, etc.)

:mavieni::mavieni::mavieni:
 
codice completo del form mail

Codice:
<html>
<head>
<title></title>
<style type="text/css">
.test {
	font-family: Courier New, Courier, monospace;
}
.nota_informativa {
	font-weight: bold;
	font-size: 10px;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="css celle modulo.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF">
<form method="post"  action="formInvio_ita.php">


<input type="hidden" name="require" value="e-mail,nome,cognome">
<tr>
    <td width="100%"><div align="center">
        <table width="600" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" style="border-collapse: collapse;">
          <tr>
            <td width="273" valign="top" bordercolor="#993300" style="text-align: center">
              <p align="center"><i><font face="Arial" size="2" color="#FFFFFF">Nome    </font></i><img src="asterisco_ico.gif" width="15" height="15"></td>
            <td width="321" bordercolor="#993300">
            <p align="center"><input type="text" name="nome" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;"></font></p></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">Cognome <img src="asterisco_ico.gif" width="15" height="15"></font></td>
            <td width="321">
              <p align="center"><font face="Arial" size="3" color="#993300">&nbsp;<input type="text" name="cognome" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;"></font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" bordercolor="#993300" bgcolor="#010000" style="text-align: center">
              <i>
              <font face="Arial" size="2" color="#FFFFFF">
              email a cui si vuole risposta <img src="asterisco_ico.gif" width="15" height="15"></font></i></td>
            <td width="321" bordercolor="#993300">
              <p align="center"><font face="Arial" size="3" color="#993300"><input type="text" name="e-mail" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F;">
              </font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              telefono</font></td>
            <td width="321">
              <p align="center"><font face="Arial" size="3" color="#993300"><input type="text" name="telefono" size="40" style="/* [disabled]background-color: #FFF; */ border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; text-transform: uppercase;">
              </font></td>
          </tr>
          <tr>
            <td width="273" align="center" valign="top" style="text-align: center">
              <font face="Arial" size="2" color="#FFFFFF">
              messaggio</font></td>
            <td width="321">
                
                <p align="center"><textarea rows="10" name="messaggio" cols="38" style="background-color: #FFFFFF; border-style: inset; border-color: #999; border-width: 2; font: arial; font-size: 12px; color: #00F; "></textarea></p></td>
          </tr>
        </table>
        <tr>
        <table>    
              <td width="46" align="center" valign="top" style="text-align: center">&nbsp;
                  <input type="checkbox" name="privacy" value="si" checked>
                <font color="#FFFFFF" size="2" face="Arial"> - </font></td>
            <td width="549"><p align="center"> <font face="Arial" size="1" color="#FFFFFF">Letta la<span class="nota_informativa"> nota informativa</span>, esprimo il mio consenso al trattamento e alla comunicazione dei miei dati personali. </font>        </p></td>
          </tr>
          <tr>
            <td width="46" align="center" valign="top" style="text-align: center">&nbsp;
              <input type="checkbox" name="privacy2" value="si" checked>
              <font face="Arial" size="2" color="#FFFFFF"> - </font></td>
            <td width="549"><p align="center"> <font face="Arial" size="1" color="#FFFFFF"> Letta la nota informativa, esprimo il mio consenso a che i dati da me forniti siano utilizzati per l'invio di informazioni ed offerte commerciali anche di terzi, per il compimento di ricerche di mercato e statistiche commerciali </font></p></td>
          </tr>
        </table>
      </div>

<br>

 
  <p align="center"><input type="submit"><input type="reset">
  </p>
    <td width="273" align="center" valign="top" bordercolor="#993300" bgcolor="#010000" style="text-align: center"><p align="center"><font face="Arial" size="2" color="#FFFFFF">il tuo indirizzo IP è </font> <?php 
// rilevo Ip, data e ora del visitatore
$ip   =$_SERVER['REMOTE_ADDR'];
$data =date("Ymd");    
$ora  =date("H:i:s");  
  print ("il tuo indirizzo IP è  $ip"); 
 ?>
 </p>
<tr></td>
<hr>

</form>

        <p align="center">&nbsp;</td>
    </tr>
  </table>
  </center>
</div>

</html>
 
basta che lo aggiungi al messaggio nel codice php
PHP:
$content .= "ip mittente : " . $_SERVER['REMOTE_ADDR'];
 
Risolto

grazie di tutto. funziona perfettamente. ora vedo l'indirizzo ip sul form e anche nella mai che mi arriva.
:byebye::byebye::byebye::byebye:
 

Discussioni simili