Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Problema con il formail

    Ho creato un formail per il mio sito ma non riesco a capire perchè non arrivano. Potreste dargli un'occhiata grazie.
    codice:
    <table style="position:fixed; left:390; top:550;" border="0" width="500" cellspacing="0" cellpadding="0">  
    <tbody>   
    <tr>    
    <td width="100%">     
    <div align="center">      
    <table border="0" width="100%">       
    <tbody>        
    <tr>         
    <td align="center" valign="top" rowspan="2" width="90%" >          
    <form name="modulo" method="post" action="inviamail.php">           
    <div align="center">            
    <table border="0">             
    <tbody>              
    <tr>               
    <td align="right"><font face="Verdana" color="#FFFFFF">Nome Cognome:</font></td>               
    <td><input type="text" name="nome" size="28"></td>              
    </tr>              
    <tr>               
    <td align="right"><font face="Verdana" color="#FFFFFF">E-Mail:</font></td>
    <td><input type="text" name="email" size="28"></td>              
    </tr>             
    </tbody>            
    </table>            
    <table border="0">             
    <tr>              
    <td align="center"><font color="#FFFFFF" face="Verdana">
    Messaggio:
    
    <textarea name="note" rows="3" cols="38"></textarea></font></td>
    </tr></table></div>
    
    
    <font color="#000000" face="Arial">
    <input type="submit" value="Invia">
    
    </font></p>
    </form></td></tr></tbody></table></div></td></tr></tbody></table>

  2. #2
    Questo è il php:
    codice:
    <?php $email=$_POST['email'];  ####################################### #     IMPOSTAZIONI DA CONFIGURARE     # #######################################  //(1) indirizzo email del destinatario del modulo $destinatario = "danteelacomedia@gmail.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 = "Modulo inviato dal sito ....";  //(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 //    da virgola, i nomi dei campi da rendere OBBLIGATORI //    Esempio: $campi_req = array("nome","telefono","via"); $campi_req = array("nome","email","note");  //(6) controllo validità del campo email. (valori possibili: "y" e "n") $obbligo_email = "y";  //(7) obbligare l'utente ad accettare le condizioni. //    (valori possibili: "y" e "n") $accetta_condizioni = "n";  //(8) URL della pagina di ringraziamento $pagina_grazie = "http://ladivinacomedia.altervista.org/grazie.html";  //(9) URL della pagina errore campi vuoti $pagina_error_empty = "http://ladivinacomedia.altervista.org/campi_vuoti.html";  //(10) URL della pagina errore email $pagina_error_email = "http://ladivinacomedia.altervista.org/errore_email.html";  ####################################### #  FINE IMPOSTAZIONI DA CONFIGURARE   # #######################################  //ora e data $ora = date ("H:i:s");  $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 ==================\   ########### 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 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_.-])+@(([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 ++;              }          }  ########### 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 .= "Numero IP: $ipnumb"."\n";  $corpo .= "____________________________________________________________ \n\n  ";       // invio e-mail // Header Mail $headmail.="From: $nome_mittente <$nome_mittente>\n"; $headmail.="Return-Path: $nome_mittente\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"; $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");                      }  ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    15
    Ciao.
    Stavo giusto lavorando a un form quindi provo a risponderti anche se ti dico fin da subito che è solo da un annetto che ho scoperto cosè l'html XD
    Già il fatto di usare tabelle e stili in linea mi crea un attimo di confusione.

    Vediamo se ho capito.

    Il form richiede nome e cognome, email e un messaggio.
    In questo caso tralascio il possibile uso di html5 o javascript,jquery o qualunque cosa t voglia usare per una validazione in tempo reale.
    Inoltre è utile inserire nei vari input non solo name="" ma anche id="" anche uguale al name.

    Per quanto ne so è il php che potrebbe sbagliato.
    Quindiparliamo del php.

    Innanzitutto ti posto uno script da inserire nel file php subito dopo <?php

    ini_set('display_errors', 'On');
    error_reporting(E_ALL);

    Questo script ti fa visualizzare gli eventuali errori presenti che magari gli editor non mostrano, per esempio variabili non assegnate correttamente o quant'altro.

    Ora il codice che hai usato tu di per se non so se funziona ma io provo a farti un discorso completo.

    Nel php devi dichiarare le variabili che prenderanno il valore dal form, poi devi usare la funzione mail() di php che appunto permette di mandare email. Gia che ci sono ti aggiungo una piccola funzione che esclude i caratteri da te designati al fine di rendere piu sicuro il form, ovviamente sono ancora un principiante ma meglio di niente.

    Quindi la funzione è questa
    Codice PHP:
        function block($string){
        
    $bad_word[0] = "'";
        
    $bad_word[1] = "\"";
        
    $bad_word[2] = "/";
        }
        
    $output str_replace($bad_wordNULL$string);
       
          return 
    $output;
        }

    Essendo questo un array puoi aggiurgere tutti i caratteri che vuoiQuesti verranno esclusi quindi non li visualizzerai neanche nella email che ti arriverà.

    ora prendiamo le variabili dal form passandole per questa funzione che appunta le "pulisce" da caratteri pericolosi:

        
    $nome block($_POST["nome"]);
        
    $email block($_POST["email"]);
        
    $note block($_POST["note"]);

    qua dico subito che mi pare ci sia da inserire un ulteriore valore nel caso il contenuto del form presenti degli spazi coeme nella textarea ma non ne sono sicuro e non mi ricordo come si fa XD

    ora scegliamo il destinatario cioè l
    'email che riceve.

        $destinatario = "email@dominio.com" ;

    l'
    oggetto della emailio faccio un esempio XD

        $oggetto 
    ="Registrazione di $nome";

    ora il messaggio da mandare il "." concatena i messaggio e "\n" serve per andare a capo

        $messaggio
    "Nome e cognome: $nome \n";
        
    $messaggio.= "email: $email \n";
        
    $messaggio.= "messaggio: $note ";


    Ora il titolo della email quello che visualizzi prima di aprirla

        $intestazione 
    "From: Modulo del sito"

    E infine la funzione mail() che ti invia la email e gli diciamo i valori da inviare

       mail
    ($destinatario$oggetto$messaggio$intestazione);

    FINE 
    Spero sia tutto chiaro, ripeto che sono un principiante e mi scuso per eventuali errori XD
    Bye Bye

  4. #4
    Originariamente inviato da ramemc
    Spero sia tutto chiaro, ripeto che sono un principiante e mi scuso per eventuali errori XD
    Bye Bye
    Ho provato tutto quello che hai detto ma mi escono errori e mi dichiara le linee

  5. #5
    Originariamente inviato da ligimus
    Ho provato tutto quello che hai detto ma mi escono errori e mi dichiara le linee
    Posta il codice php scrivendo i teg [code] "a mano" altrimenti leggerlo su una riga sola è incomprensibile

  6. #6
    Originariamente inviato da GI89
    Posta il codice php scrivendo i teg [code] "a mano" altrimenti leggerlo su una riga sola è incomprensibile
    Ho sistemato grazie del tempo

  7. #7
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    il codice php va nel tag PHP (non il semplice "code")

    viso l'argomento sposto nella sezione adeguata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.