PDA

Volledige versie bekijken : probleem met mailformulier


Belgian Chocolate
%Europe/Berlin %922 %2007, 23:08
Ik heb op het forum gezocht maar ik heb geen oplossing voor mijn probleem kunnen vinden. Voor een mailformulier heb ik in de fla de volgende actionscript gebruikt (de basis komt bij flashfocus vandaan en de rest is door mij aangepast).

name_txt.tabIndex = 1;
org_txt.tabIndex = 2;
adres_txt.tabIndex = 3;
zipp_txt.tabIndex = 4;
place_txt.tabIndex = 5
mail_txt.tabIndex = 6;
tel_txt.tabIndex = 7
message_txt.tabIndex = 8;

name_txt.border = org_txt.border = adres_txt.border = zipp_txt.border = place_txt.border = mail_txt.border = tel_txt.border = message_txt.border = true;
name_txt.borderColor = org_txt.borderColor = adres_txt.borderColor = zipp_txt.borderColor = place_txt.borderColor = mail_txt.borderColor = tel_txt.borderColor = message_txt.borderColor = 0x52A3FE;

var myKey = "geheim";

send_btn.onRelease = function(){
var errors = new Array();
if(name_txt.text.length < 1){
errors.push(1);
}if(mail_txt.text.length < 1|| mail_txt.text.indexOf("@") == -1 || mail_txt.text.indexOf(".") == -1){
errors.push(2);
}if(tel_txt.text.length < 1){
errors.push(4);
}if(message_txt.text.length < 1){
errors.push(5);
}

if(errors.length > 0){
showErrors(errors);
}else{
setStatus("Wordt verzonden..");
sendMail();
}
}

var send_lv = new LoadVars();
function sendMail(){
send_btn.enabled = false;
send_lv.name = name_txt.text;
send_lv.org = org_txt.text;
send_lv.adres = adres_txt.text;
send_lv.zipp = zipp_txt.text;
send_lv.place = place_txt.text;
send_lv.mail = mail_txt.text.split(" ").join("");
send_lv.tel = tel_txt.text;
send_lv.message = message_txt.text;
send_lv.secretKey = myKey;
send_lv.targetMail = targetMail;
send_lv.sendAndLoad("sendmail.php", receive_lv, "POST");
}

var receive_lv = new LoadVars();
receive_lv.onLoad = function() {
if(this.success == "true"){
setStatus("Hartelijk dank voor uw aanvraag. U ontvangt snel een bericht van ons.");
name_txt.text = "";
org_txt.text = "";
adres_txt.text = "";
zipp_txt.text = "";
place_txt.text = "";
mail_txt.text = "";
tel_txt.text = "";
message_txt.text = "";
}else{
showErrors(this.errorCode.split(","));
}
send_btn.enabled = true;
}

function showErrors(errorCodes){
var errorText = "Controleer uw ";
for(i=0;i<errorCodes.length;i++){
var error = Number(errorCodes[i]);
if(error == 1) errorText += "Naam, ";
else if(error == 2) errorText += "E-mailadres, ";
else if(error == 3) errorText += "Key, ";
else if(error == 4) errorText += "telefoonnummer, ";
else if(error == 5) errorText += "vraag of opmerking, ";
}
errorText = errorText.slice(0,errorText.length-2)+" aub.";
setStatus(errorText);
}
function setStatus(status){
status_txt.text = status
}

Het sendmail.php bestand bevat de volgende code:

<?php
// v1: 29/12/2005
// v1.2: 04/09/2006
// Gemaakt door en voor FlashFocus (Laiverd, theFlashWizard, H3lpd3sk, brossiekoppie en vele anderen!)

// www.flashfocus.nl | www.flashfocus.be
// _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-


// Hieronder vind je de instellingen die je moet aanpassen om het script goed te doen werken, daaronder volgt de code

// om de mail te sturen

// Als je geen of weinig kennis hebt van php kan je die beter zo laten of een vraag erover stellen op het forum.

// Je kan het best van al dit bestand openenen in een editor die ook php code coloring ondersteunt, dan zie je duide-

// lijk het verschil tussen de comments en de code.


// Eerst en vooral bedankt voor het downloaden van ons mailformulier. Wij willen graag nog even

// benadrukken dat dit script is gemaakt voor zowel beginnelingen als gevorderden die graag een

// flash-mailformulier zouden willen hebben. Vanwege de doelgroep is het formulier dan ook vrij

// simpel en misschien veel minder uitgebreid dan andere alternatieve flashforms die op het Net

// circuleren.

######## Benodigdheden ###############


// 1. Een webserver of lokale server die PHP ondersteunt met de mail-extensie (getest onder PHP 4.x en PHP 5.1.x)

// 2. Flash IDE

// 3. Teksteditor of php-editor (kladblok volstaat)

// 4. FTP-programma (enkel bij niet-lokale webserver) (gaat ook met explorer)

// 5. 5-10 minuutjes tijd navenant uw skills
//## instellingen##
//#################

$extra_info = true;
// wil je dat er ook extra informatie over de verzender wordt meegestuurd (ip-adres etc.) ? (ja = true en nee = false)
$admin_mail = 'mijn@mail.nl';
// je eigen e-mailadres
$myKey = 'geheim'; // De geheime code die je in het flashbestand hebt ingesteld in de var myKey

if ( isset($_POST['secretKey']) ) { // is er wel iets verzonden?

function check_email($p_sEmail = NULL) // E-mailadres checken
{
if ( ( preg_match('~^[a-z0-9][a-z0-9_.\-]*@([a-z0-9]+\.)*[a-z0-9][a-z0-9\-]+\.([a-z]{2,6})$~i', $p_sEmail) ) && ( strlen($p_sEmail) < 150 ) ) {
return $p_sEmail; // E-mail juiste patroon en niet langer dan 150 karakters
} else {
return false;
}
}

// variabelen ophalen en aan een php-variabele toewijzen, php variabelen beginnen altijd met een $ en hier
// komen ze uit de superglobal $_POST, dit is een soort van ingebouwde array waar al je vars uit flash in
// worden gestoken
$errors = array();
$sender_name = $_POST['name'];
$sender_org = $_POST['org'];
$sender_adres = $_POST['adres'];
$sender_zipp = $_POST['zipp'];
$sender_place = $_POST['place'];
$sender_mail = $_POST['mail'];
$sender_tel = $_POST['tel'];
$sender_msg = $_POST['message'];

if ( ! ctype_print($_POST['name']) ) {
$errors[] = 1;
}
if ( ! ctype_print($_POST['mail']) ) {
$errors[] = 2;
}
if ( ! $myKey == $_POST['secretKey'] ) { // geen myKey om overschrijven via register_globals te vermijden
$errors[] = 3;
}
if ( ! check_email($sender_mail) ) {
$errors[] = 4;
}

//de headers voor de E-mail
$mail_header = 'MIME-Version: 1.0' . "\r\n";
$mail_header .= 'Reply-To: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // reply-adres
$mail_header .= 'From: ' . $sender_name . ' <' . $sender_mail . '>' . "\r\n"; // afzender van de mail
$mail_header .= 'X-Mailer: PHP/' . phpversion() . "\r\n";

if ( $extra_info ) { // indien de optie "extra informatie" op true staat halen we de gegevens op
$extra_lang = ( strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : 'Detectie mislukt';
$extra_browser = ( strlen($_SERVER['HTTP_USER_AGENT']) ) ? $_SERVER['HTTP_USER_AGENT'] : 'Detectie mislukt';

$mail_extra = "\n\n" . 'Extra informatie:'
. "\n" . 'IP-adres: ' . $_SERVER['REMOTE_ADDR'] . ' (' . gethostbyaddr($_SERVER['REMOTE_ADDR']) . ')'
. "\n" . 'Taal: ' . $extra_lang
. "\n" . 'Browser: ' . $extra_browser;
}

$mail_content =
'Datum: ' . date('d m Y H:i:s')
. "\n" . '______________________'
. "\n" . 'Van: ' . $sender_name
. "\n" . 'Telefoon: ' . $sender_tel
. "\n" . 'Email: ' . $sender_mail
. "\n" . '______________________'
. "\n" . 'Vraag of opmerking: '
. "\n" . $sender_msg
. "\n" . $mail_extra;

if ( count($errors) ) {
die('&success=false&errorCode=' . implode(',', $errors) . '&');
} else {
$mail_send = mail($admin_mail, 'Message from ' . $sender_name, $mail_content, $mail_header);
die('&success=true&');
}
} // end if isset
?>

Toen ik het standaard formulier gebruikte, werkte alles prima. Nu ik het 1 en ander heb aangepast wil het niet meer. Maar eerlijk gezegd heb ik geen idee wat ik fout heb gedaan.

Kan iemand me alsjeblieft helpen?

Belgian Chocolate
%Europe/Berlin %756 %2007, 19:09
Het probleem is opgelost. De fout zat niet in de actionscript of php. Ik was gewoon zo stom geweest om een verkeerd bestand te uploaden. Grrrrrrrrrrrr. Sorry voor de moeite.