- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Form per invio mail con controllo
-
Ciao,
innanzitutto complimenti per lo script.
Se volessi aggiungere dei campi al form e renderli obbligatori, cosa dovrei modificare?
Ho provato ad aggiungere il campo nome ed il campo cognome così:
[PHP]
define("errore_nome_predefinito","Non ha inserito il nome!");
define("errore_cognome_predefinito","Non ha inserito il cognome!");
define("segnaposto_nome","Inserisca il Suo nome");
define("segnaposto_cognome","Inserisca il Suo cognome");
function generaModulo($oggetto=segnaposto_oggetto,$email=segnaposto_email,$messaggio=segnaposto_messaggio,$nome=segnaposto_nome,$cognome=segnaposto_cognome,$errore_oggetto="",$errore_email="",$errore_messaggio="",$errore_nome="",$errore_cognome=""){
[/PHP]
e poi:
[PHP]
<tr>
<td>Nome*</td>
<td><label>
<?php if (!$errore_nome=="") { echo"<span><strong>$errore_nome</strong></span>";} else { echo"";}?><br />
<input name="nome" type="text" id="nome" value="<?php echo $nome;?>" />
</label></td>
</tr>
<tr>
<td>Cognome*</td>
<td><label>
<?php if (!$errore_cognome=="") { echo"<span><strong>$errore_cognome</strong></span>";} else { echo"";}?><br />
<input name="nome" type="text" id="cognome" value="<?php echo $cognome;?>" />
</label></td>
</tr>
[/PHP]E ancora:
[PHP]
<?php if (!isset($_POST['bottone_invio'])) {
generaModulo();
} else {
$nome = isset($_POST['nome']) ? stripslashes ($_POST['nome']) : "";
$cognome = isset($_POST['cognome']) ? stripslashes ($_POST['cognome']) : "";
$oggetto = isset($_POST['oggetto']) ? stripslashes ($_POST['oggetto']) : "";
$email = isset($_POST['email']) ? stripslashes ($_POST['email']) : "";
$messaggio = isset($_POST['messaggio']) ? stripslashes ($_POST['messaggio']) : "";$error = false; $errore_nome = ''; $errore_cognome = ''; $errore_oggetto = ''; $errore_email = '';
$errore_messaggio = '';
if (controlla($oggetto,1) or ($oggetto==segnaposto_oggetto)) {
$error = true;
$errore_oggetto = errore_oggetto_predefinito;
}if ((controlla($nome,1)) or ($nome==segnaposto_messaggio)) { $error = true; $errore_nome = errore_nome_predefinito; } if ((controlla($cognome,1)) or ($cognome==segnaposto_messaggio)) { $error = true; $errore_cognome = errore_cognome_predefinito; } if (!isValidEmail($email)){ $error = true; $errore_email = errore_email_predefinito; } if ((controlla($messaggio,1)) or ($messaggio==segnaposto_messaggio)) { $error = true; $errore_messaggio = errore_messaggio_predefinito; } if ($error){ generaModulo($nome,$cognome,$oggetto,$email,$messaggio,$errore_nome,$errore_cognome,$errore_oggetto,$errore_email,$errore_messaggio); } else {
?>
<p>
Ha inserito i seguenti dati:<br />
<br />
<b>Nome:</b> <?php echo $nome ?>
<br />
<b>Cognome:</b> <?php echo $cognome ?>
<br />
<b>Oggetto:</b> <?php echo $oggetto ?>
<br />
<b>Email:</b> <?php echo $email ?>
<br />
<b>Messaggio:</b> <?php echo $messaggio ?>
<br />
</p>
<?php
[/PHP]ma se provo a far generare l'errore mi compare la frase di errore dell'email nel campo nome, la frase dell'oggetto nel campo cognome...
Cosa sbaglio?
Grazie
-
-
Salve ho provato a inserire il form e spedirmi una e-mail ma perchè mi dice di impostare smtp?
Premetto che provo tutto in locale dopo aver impostato il server remoto e questo è quello che appare dopo che provo a inviare l'email**Notice: **Use of undefined constant segnaposto_telefono - assumed 'segnaposto_telefono' in C:..... alla linea 122
Notice: Undefined variable: telefono in percorso...alla linea 122
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost:9000" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set oppure mi dice di settarlo in sul server remoto
errore alla linea 122 e 123...io ho cambiato l'indirizzo di posta solo nella prima parte devo fare altro? Ringrazio chiunque in anticipo
-
Grazie a tutti ma ho risolto era solo la configurazione smtp nel file php.ini che non avevo impostato. Ciao e complimenti davvero utile
-
Purtroppo non ne capisco molto di php, ho solo un dubbio in locale tutto funziona...se io mettessi in linea il sito avrei bisogno anche del database o mi basta aver messo il modulo in una pagina con estensione php? Grazie per la risposta
-
Ciao rezaur,
Lo script non utilizza database, pertanto non è necessario.
-
Scusate, riapro questo bel topic per due o tre domande:
Se volessi che dopo il click su "Invia", ci fosse prima un ulteriore messaggio di conferma del tipo: Confermi l'invio della mail? ad esempio con un bottone che confermi e invii definitivamente la mail.. ad esempio dopo aver cliccato su Invio sotto appaia un bottone con scritto "Confermi?"
secondo: per inserire un captcha come potrei fare?
e per inserire altri campi come checkbox o menu a tendina, potreste farmi un esempio pratico?
e ultima cosa semplice semplice.. per inserire nella pagina di ringraziamento un redirect, quindi nella pagina che appare dopo l'invio effettuato, conviene usare un metatag per questo?
Grazie
-
Una domanda che spero non valga un milione di euro....
lo script non funziona se il server mail non è sullo stesso server dove risiede il sito vero?
Ho provato sia lo script con doppia pagina che questo in entrambe i casi non invia messaggi alla mailbox, mentre provandoci da un sito dove il server mail è residente funzionano tranquillamente....
-
:omi sto rendendo condo che molti venditori di medicinali on line si accaniscono a inviare dai moduli la loro pubblicità, hanno finalmente capito che le email non rendono più di tanto in quanto finiscono dirette nello spam...
Fare un "controllo testo inserito" non sarebbe un'idea stupida, secondo voi è possibile?
-
due domande:
-
come si può formattare il testo (e lo sfondo, etc), contenuto nel php, di risposta a chi ha inviato la e-mail?
-
come si può rimandare automaticamente chi ha compilato la form alla pagina html?
grazie
Stefano
-
-
mi sa che questo 3d è stato un po' abbandonato SIC!
cmq i miei problemi di spam li ho risolti inserendo un deterrente
tutti i campi obbligatori più visualizzazione dell'indirizzo IP del visitatore... lo spam non arriva più
-
Scusate se riprendo questo topic:
se volessi mettere un controllo nel mio script devo solo aggiungerci questo?
[php]
<?php
}
function isValidEmail($email){
$pattern = "^[_a-z0-9-]+(.[_a-z0-9-]+)@[a-z0-9-]+(.[a-z0-9-]+)(.[a-z]{2,3})$";if (eregi($pattern, $email)){
return true;
}
else {
return false;
}
}
function controlla($stringa,$lunghezza){
if (strlen($stringa)<$lunghezza){
return true;
}
else {
return false;
}
}
?>[/php]
Grazie!
-
Salve ragazzi e complimenti per il forum, davvero ottimo e di grande aiuto.
Ho scaricato questo script, anche se semplice, funziona perfettamente quindi va benissimo.
Vi scrivo poichè voorei apportare alcune modifiche:- vorrei inserire un ulteriore campo da inserire sotto la richiesta della mail che richieda il numero di telefono (anche questo campo dovrà essere obbligatorio.
- è possibile eliminare i messaggi esempio che sono già scritti nei campi in modo che compaia il campo vuoto?
Vi dico che io non capisco tanto di php, spero possiate aiutarmi.
Grazie in anticipo
-
scusate ma io ho scaricato il file webmailcontrollo e ho salvato i file in una cartella..
ho creato una pagina chiamata invio.php e gli ho incollato dentro il codice php dentro...cosa c'e' ke non va!!! non mi funziona.. non so.. credo di non aver capito qualcosa eppure dreamweaver non mi da errori di sintassi.. dice che e' tutto giusto
heeeeeeelp