Aggiungere campo di testo nel form....

  • Creatore Discussione Creatore Discussione MAX1972
  • Data di inizio Data di inizio

MAX1972

Nuovo Utente
5 Mag 2012
17
0
1
Ciao, nel form che ho trovato qui sul sito ho la necessita' di aggiungere un campo di testo nel form con la voce "phone" dove ovviamente chi mi contattera' dovra' inserire un numero di telefono...ora avendo fatto un po' di prove ed essendo scarso in programmazione non riesco a trovare la collocazione adatta per inserire la voce phone nel file php che metto di seguito:
PHP:
<?php
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
$mittente = $_POST['mittente'];
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];

// Valorizzo le variabili relative all'allegato
$allegato = $_FILES['allegato']['tmp_name'];
$allegato_type = $_FILES['allegato']['type'];
$allegato_name = $_FILES['allegato']['name'];

// Creo 2 variabili che riempirò più avanti...
$headers = "From: " . $mittente;
$msg = "";

// Verifico se il file è stato caricato correttamente via HTTP
// In caso affermativo proseguo nel lavoro...
if (is_uploaded_file($allegato))
{
  // Apro e leggo il file allegato
  $file = fopen($allegato,'rb');
  $data = fread($file, filesize($allegato));
  fclose($file);

  // Adatto il file al formato MIME base64 usando base64_encode
  $data = chunk_split(base64_encode($data));

  // Genero il "separatore"
  // Serve per dividere, appunto, le varie parti del messaggio.
  // Nel nostro caso separerà la parte testuale dall'allegato
  $semi_rand = md5(time());
  $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  
  // Aggiungo le intestazioni necessarie per l'allegato
  $headers .= "\nMIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/mixed;\n";
  $headers .= " boundary=\"{$mime_boundary}\"";

  // Definisco il tipo di messaggio (MIME/multi-part)
  $msg .= "This is a multi-part message in MIME format.\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Questa è la parte "testuale" del messaggio
  $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $msg .= "Content-Transfer-Encoding: 7bit\n\n";
  $msg .= $messaggio . "\n\n";

  // Metto il separatore
  $msg .= "--{$mime_boundary}\n";

  // Aggiungo l'allegato al messaggio
  $msg .= "Content-Disposition: attachment;\n";
  $msg .= " filename=\"{$allegato_name}\"\n";
  $msg .= "Content-Transfer-Encoding: base64\n\n";
  $msg .= $data . "\n\n";

  // chiudo con il separatore
  $msg .= "--{$mime_boundary}--\n";
}
else
{
  $msg = $messaggio;
}

// Invio la mail
if (mail($destinatario, $oggetto, $msg, $headers))
{
  echo "<p>Mail inviata con successo!</p>";
}else{
  echo "<p>Errore!</p>";
}
?>

praticamente il mio errore sta nel fatto che se modifico alla bene e meglio il codice alla mia maniera alla fine quando arriva la mail il campo col numero di telefono non ce nel corpo del messaggio...dove devo agire per fare in modo che il numero di telefono venga visualizzato? Grazie.

PS=ho tralasciato il file html del form... una volta indicato il nome da inserire creero' un campo specifico nel file html col nome phone:byebye:
 
Potresti concatenare il parametro del campo form al messaggio:
PHP:
$messaggio = $_POST['messaggio']. " Numero di telefono: " .$_POST['phone'];
 
Potresti concatenare il parametro del campo form al messaggio:
PHP:
$messaggio = $_POST['messaggio']. " Numero di telefono: " .$_POST['phone'];

Puo' essere una soluzione in fatti funziona ma quando arriva via mail e' antiestetica perche mi si presenta cosi (per farti un esempio.)

-ciao a tuttiblablablablablablablavbnumero di telefono:3474930949903940349333-

Se era possibile visionare una cosa del tipo:

Request: blablablablablablabla...

Phone: 3478080jfiejf0ier

Almeno visivamente si presenta meglio, no?

Grazie
 
Prova:
PHP:
$messaggio = $_POST['messaggio']. "\n Numero di telefono: " .$_POST['phone'];
 
Prova:
PHP:
$messaggio = $_POST['messaggio']. "\n Numero di telefono: " .$_POST['phone'];

Spettacolo!!!! Ora ci sono...per cui se io volessi aggiungere altre voci che ne so VIA: CAP: basta che aggiunga di seguito come ho fatto con "phone" e mi viene raffigurato tutto sul corpo del messaggio nel programma di posta....Faro' le mie prove...

Un altro piccolo appunto e' che durante la pressione per l'invio del form che mi manda in un'altra pagina per darmi la segnalazione positiva che il messaggio e' andato a buon fine...e' possibile fare in modo che questo messaggio rimanga nella stessa pagina del form e che questo una volta spedito si resetti pronto per essere ricompilato?questo perche' il form sara' in una pagina dedicata ai contatti per cui vorrei che rimanesse allo stesso posto una volta mandato via il form compilato...Puo' essere fattibile in modo semplice una cosa del genere?
 
ti basta includere il form nella stessa pagina che presenta il codice per l'invio dell'email, se per esempio il modulo si trova in "form.html", potrei fare qualcosa del genere:
PHP:
<?php
include 'form.html';
// Recupero il valore dei campi del form
$destinatario = $_POST['destinatario'];
// etc.
 

Discussioni simili