form di invio posta con campi personalizzabili

Vorrei sapere se è possibile creare uno script che si occupi di inviare via mail il contenuto di un form i cui campi siano personalizzabili senza dover necessariamente intervenire sempre sullo script. Magari creando un template che contenga l'elenco dei campi contenuti nel form.

Sarebbe fattibile?

inviato 7 anni fa
blackeyes
X 0 X

Puoi fare tutto quello che vuoi...non vedo dove possa essere il problema  O0

Ciao

risposto 7 anni fa
Mario Santagiuliana
X 0 X

Allora volevo sapere come rendere indipendenti i campi di un form dallo script non saprei come fare...

risposto 7 anni fa
blackeyes
X 0 X
<?
if (isset($_POST['submit']) and $_POST['submit']==TRUE) {
    $receiverMail = "";     //QUI METTERE L' INDIRIZZO EMAIL
    $name=stripslashes(strip_tags($_POST['name']));
    $email=stripslashes(strip_tags($_POST['email']));
    $subject=stripslashes(strip_tags($_POST['subject']));
    $msg=stripslashes(strip_tags($_POST['message']));
    $ip=$_SERVER['REMOTE_ADDR'];
    $msgformat="From: $email\nEmail: $email\n\n$msg";
    if(empty($name) || empty($email) || empty($subject) || empty($msg))
        include("error.php");
    elseif(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email))
        require("error2.php");
    elseif(mail($receiverMail, $subject, $msgformat, "From: $name <$email>"))
        include("error3.php");
    else include("error4.php");
    }
else { ?>

<div id="testoform" class="testo1">
<h2>Modulo di contatto</h2><br>
    <p>Per contattarci compila il modulo sottostante, avendo cura di
    fornire un indirizzo e-mail valido al quale ti risponderemo al pi&ugrave; presto.</p><br>
   </div>
<form method="post" action="">
<div id="etichette" class="testo2">
   <div>
    <label for="name">nome: </label>
    </div>
   <div>
   <input type="text" id="name" name="name"><br>
    </div>
   <div>
   <label for="email">email: </label>
    </div>
   <div>
   <input type="text" id="email" name="email"><br>
    </div>
   <div>
   <label for="subject">oggetto: </label>
   </div>
   <div>
   <input type="text" id="subject" name="subject"><br>
    </div>
   <div>
   <label for="message">messaggio: </label>
    </div>
   <div>
   <textarea id="message" name="message" rows=8 cols=20></textarea><br>
    </div>
   <div>
   <input type="submit" name="submit" id="submit" value="invia">
    </div></div>
</form>

<?  } ?>

tanto per partire da una cosa semplice come rendo i campi dello script  indipendenti dal form?

risposto 7 anni fa
blackeyes
X 0 X

Continuo a non capire la tua richiesta, cosa intendi per rendere indipendenti i campi del form dallo script?

risposto 7 anni fa
Mario Santagiuliana
X 0 X

allora io vorrei che se il form fosse questo

    <tr>

      <td>Nome:</td>

      <td><input name="textNome" type="text" id="textNome"></td>

    </tr>

    <tr>

      <td>Cognome:</td>

      <td><input name="textCognome" type="text" id="textCognome"></td>

    </tr>

    <tr>

      <td>Email:</td>

      <td><input name="textEmail" type="text" id="textEmail"></td>

    </tr>

    <tr>

      <td><input type="submit" name="Submit" value="Invia"></td>

      <td>&nbsp;</td>

piuttosto che questo

<td><label>Nome</label></td>
<td><input type="text" class="contact_form" name="contact_form_name" maxlength="50" size="15" value=""> <b></b></td>
</tr>


<tr>
<td><label>Cognome</label></td>
<td><input type="text" class="contact_form" name="contact_form_surname" maxlength="50" size="15" value=""> <b></b></td>
</tr>



<tr>
<td><label>Ragione sociale</label></td>
<td><input type="text" class="contact_form" name="contact_form_company" maxlength="30" size="15" value=""> <b></b></td>
</tr>


<tr>
<td><label>Telefono</label></td>
<td><input type="text" class="contact_form" name="contact_form_phone" maxlength="20" size="15" value=""> <b></b></td>
</tr>


<tr>

<td><label>Indirizzo email</label></td>
<td><input type="text" class="contact_form" name="contact_form_email" maxlength="254" size="15" value=""> <b></b></td>
</tr>

                                       <tr>
<td valign="top"><label>Messaggio*</label></td>
<td><textarea rows="5" cols="30" name="contact_form_msg"></textarea><br><b></b></td>
</tr>

                                       <tr>
   <td valign="top"><label>Privacy*</label></td>

   <td style="font-size: 11px">
<div style="display: none;"><input type="radio" name="contact_form_privacy" value="0" checked/></div>
      <input type="radio" name="contact_form_privacy" value="1" />Dopo aver preso visione della presente <a href="#" onclick="window.open('http://www.sitonline.it/it/privacy.ctr','Privacy','width=500,height=450,scrollbars=yes')">informativa sulla privacy</a> acconsento al trattamento dei dati personali comunicati.<br />
      <b></b>
   </td>
</tr>

                                       <tr>

                                          <td colspan="2" align="right"><input class="submit_send" type="submit" value="Invia">
                                          </td>
                                       </tr>
                                    </table>

                                 </fieldset>
                              </form>

lo script di invio mail non debba essere modificato per aggiungere i nuovi campi ma legga l'elenco degli stessi da un file di testo , precedentemente compilato, e invii  la mail

risposto 7 anni fa
blackeyes
X 0 X
lo script di invio mail non debba essere modificato per aggiungere i nuovi campi ma legga l'elenco degli stessi da un file di testo , precedentemente compilato, e invii  la mail

Continuo a non capire  :-\ :-\ :-\ scusa  :-[ :-[ :-[

risposto 7 anni fa
Mario Santagiuliana
X 0 X

http://php.html.it/script/vedi/1713/form-mail-script/ trovato ora lo studio per capire come è fatto

Le funzioni di questo script sono davvero tante, a partire dalla gestione del form via template (personalizzabile), alla lista di IP bannati e non abilitati all'invio di mail...

risposto 7 anni fa
blackeyes
X 0 X

Potresti provare a fare qualcosa del genere:

<?php
$testoEmail = '';
$ignora = array('submit');
foreach ($_POST as $campo => $valore) {
   if (in_array($campo, $ignora)) {
       continue;
   }
   $testoEmail .= $campo . ': ' . $valore . PHP_EOL;
}

echo $testoEmail;

In questo modo il testo dell'email comprenderà una linea per ogni campo del form, rendendo effettivamente indipendente la generazione del messaggio dal form.

Per evitare di inserire alcuni campi che non servono -- come ad esempio il campo submit, o il nome del pulsante invia -- sarà sufficiente inserire il nome del campo nell'array $ignora.

Il trucco sta nel fatto che l'array $_POST contiene i campi ed i valori del form, per cui iterando gli elementi del form e creando dinamicamente la stringa non hai bisogno di conoscere a priori quali sono i campi del form o leggerli da un file di testo.

Quindi se il form ha questi campi:

<form action="[...]" method="post">
  <input type="text" name="nome" value="" />
  <input type="text" name="cognome" value="" />
  <input type="text" name="email" value="" />
  <input type="submit" name="submit" value="Invia il form" />
</form>

l'array $_POST sarà:

<?php
$_POST = array(
  'nome' => '...',
  'cognome' => '...',
  'email' => '...',
  'submit' => 'Invia il form'
);

e l'output dovrebbe essere:

nome: <valore del campo nome>
cognome: <valore del campo cognome>
email: <valore del campo email>

Volevi fare qualcosa del genere?

:bye:

risposto 7 anni fa
Andrea Turso
Andrea Turso
86
modificato 7 anni fa
X 0 X

Si l'idea era quella grazie!

risposto 7 anni fa
blackeyes
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda