Ciao ragazzi,
ho un problemino con un form PHP.
Ho questo piccolissimo e semplicissimo form (MAIL - OGGETTO - TESTO) scritto in PHP montato su Flash, che funziona perfettamente.
L'unico problema è che non mi riconosce i caratteri speciali (come per esempio l'underscore) nel campo mail.
Qualcuno sà aiutarmi?
Vi posto il codice.
Grazie!!
Questo è il codice che ho utilizzato per l'invio da Flash:
Codice PHP:
on (release) {
URL = "form.php?MAIL*="+MAIL+"&OGGETTO*="+OGGETTO+"&TESTO*="+TESTO;
loadVariablesNum(URL, 0);
if (MAIL != "" && OGGETTO != "" && TESTO) {
MAIL = "";
OGGETTO = "";
TESTO = "";
}
}
Questo invece il codice del file PHP che gestisce il form:
Codice PHP:
<?
// Iniziamo subito con il recupero dei dati inviati dal form:
$a=0;
foreach($_GET as $var => $val){
// verifica dei campi obbligatori:
IF (eregi("\*",$var) AND empty($val)) {
// setup delle risposte da PHP a FLASH:
die("invio=Campi richiesti non compilati");
}
$chiave[$a] = $var;
$valore[$a] = $val;
$a++;
}
// Corpo del messaggio per il proprietario del sito (prima parte):
$messaggio2 = "Sito Web ([url]www.sitoweb.com[/url])\n\n";
$messaggio2 .= "E' stata inoltrata una richiesta dal Modulo Online di Contatti del Sito.\n";
$messaggio2 .= "I dati relativi sono:\n\n";
// Corpo del messaggio comune (parte seconda):
$a=0;
while (isset($chiave[$a])) {
if (eregi("Email",$chiave[$a]) || eregi("e-mail",$chiave[$a]) || eregi("mail",$chiave[$a])) { $email = "$valore[$a]"; }
$form .= "$chiave[$a]: $valore[$a] \n";
$a++;
}
// Rimozione dei caratteri speciali:
$form = eregi_replace("_", " ", $form);
$form = eregi_replace("\*", " ", $form);
//Setup destinatario
$destinatario = "info@sitoweb.com";
// Setup dell'oggetto della mail:
$oggetto = "Modulo Contatti";
// setup della risposta all'utente per presa consegna del feedback:
$messaggio = "Il vostro modulo è stato preso in consegna,\n";
$messaggio .= "sarete ricontattati al più presto.\n\n";
$messaggio .= "I Dati da voi inseriti sono:\n\n";
$messaggio .= "$form\n\n\n";
// se l'utente non ha inserito la propria mail e non è obbligatoria allora la risposta torna a voi:
if (!isset($email) or empty($email)) {
$email = $destinatario;
$messaggio = "Nessuna Mail di ricezione inserita per il form sottostante\n";
$messaggio .= "DATI RELATIVI:\n\n";
$messaggio .= "$form\n\n\n";
}
// creazione degli Header della mail:
$headers = "From: $destinatario\n";
$headers .= "X-Sender: $destinatario\n";
$headers .= "X-Mailer: WeB\n";
$headers .= "X-Priority: 2\n";
$headers .= "Return-Path: $destinatario\n";
// assemblaggio del messaggio:
$messaggio2 = $messaggio2 . $form;
// MESSAGGIO PER IL PROPRIETARIO DEL SITO:
mail ( $destinatario , $oggetto , $messaggio2 , $headers ) or die("invio=Problemi tecnici durante l'invio, riprovare in seguito.");
//-----------------------------------------------------------------^Qui potete inserire l'eventuale messaggio d'errore al comando Mail:
// MESSAGGIO PER IL MITTENTE DEL FEEDBACK:
mail ( $email , $oggetto , $messaggio , $headers );
// RISPOSTA POSITIVA:
Print "invio=Invio effettuato con successo";
?>