PDA

Volledige versie bekijken : Mailform & PHP


s1001820
%Europe/Berlin %089 %2007, 02:08
Hallo ik heb een simpelmailform gemaakt met het volgende script.
stop();
var contactData:LoadVars = new LoadVars();
var errors:Array = new Array();
//variabelen textveld imput
name_txt.text = "Uw naam";
tel_txt.text ="mobiel of vast";
tb_txt.text ="dagdeel invullen";
email_txt.text = "email@domein.nl";
valemail_txt.text = "email@domein.nl";
header_txt.text = "Onderwerp";
//wisfunctie
wissen_btn.onRelease = function(){
name_txt.text = "";
tel_txt.text ="";
tb_txt.text ="";
email_txt.text = "";
valemail_txt.text = "";
header_txt.text = "";
message_txt.text = "";
errorLog_lb.removeAll();
errors.length = 0;
errorLog_lb.alternatingRowColors = null;
}
//valideren
function validateName(){
if (name_txt.text.length <3 || isNaN(name_txt.text) == false){
errors.push("Vul aub een geldige naam in");
name_txt.setStyle("color", 0x990000);
}
}
function validatForm(){
errorLog_lb.removeAll();
errors.length = 0;
validateName();
validateEmail();
validateTel();
if(errors.length >0 ){
errorLog_lb.defaultIcon= "errorIcon";
var altColorArray:Array = new Array(0xf9f2f2,0xecd9d9);
errorLog_lb.alternatingRowColors = altColorArray;
errorLog_lb.rollOverColor = 0xFFFFFF;
errorLog_lb.selectionColor = 0xFFFFFF;
errorLog_lb.dataProvider = errors;
}else{
contactData.name = name_txt.text;
contactData.tel_txt.text;
contactData.tb_txt.text;
contactData.email_txt.text;
contactData.header_txt.text;
contactData.message_txt.text;
gotoAndStop("confirm");
}

contactData.sendAndLoad("http://www.xcesmedia.com/contact.php", contactData, "POST");
}

function validateEmail(){
if (email_txt.text.indexOf("@")<2){
errors.push("@ mist in het emailadres of op de verkeerde plaats");
email_txt.setStyle("color",0x990000);
}
if (email_txt.text.lastIndexOf (".")<=(email_txt.text.indexOf("@")+2)){
errors.push(" . mist in het emailadres of op de verkeerde plaats");
email_txt.setStyle("color",0x990000);
}
if (email_txt.text.length < 6) {
erros.push("emailadrs moet uit minimaal 6 tekens bestaan");
email_txt.setStyle("color",0x990000);
}
}
function validateTel(){
if(tel_txt.text.length <8 || isNaN(tel_txt.text)== true){
errors.push("Vul de 10 Cijfers van uw telefoonnummer in");
tel_txt.setStyle("color",0x990000);
}
}
function resetColor(eventObj:Object){
eventObj.target.setStyle("color", 0x000000);
}
name_txt.addEventListener("focusIn", resetColor);
email_txt.addEventListener("focusIn", resetColor);
tel_txt.addEventListener("focusIn", resetColor);
_global.style.setStyle("themeColor", 0xBDDDEB);


//verzenden
verzenden_btn.onRelease = function(){
validatForm();
}


Daarbij wil ik graag dat mijn phpFile genaamd contact.php die in de rootfolder staat van de site, de data verwerkt.
Toch lukt mij dit niet.

In het php script staat de volgende code
<?
//pas de onderstaande variabelen aan naar jouw wensen
$adminaddress = "test@mijnDomein.com"; //op de server staat dit wel goed uiteraard
$siteaddress ="http://www.mijndomein.com";
$sitename = "XcesMedia";

//hieronder hoeft in principe niets ge-edit te worden...


// Haalt de tijd en de datum van de server
$date = date("m/d/Y H:i:s");


// Haalt de informatie dat gepost is door Flash
$name = $_POST['name_txt'] ;
$email = $_POST['email_txt'] ;
$tb = $_POST['tb_txt'] ;
$tel = $_POST['tel_txt'] ;
$header = $_POST['header_txt'] ;
$message = $_POST['message_txt'] ;

//De informatie uit de tekstbalken (de variabelen) wordt gestructureerd naar jouw email adres gestuurd.

function sendmail(){
//hieronder kan de tekst worden aangepast
//een harde enter wordt weergegeven als /n
//alles na een $-teken is een variabele
mail ("$adminaddress","Info Request",
"Een bezoeker van $sitename heeft het volgende bericht achtergelaten\n
Naam: $name
Email: $email
Telefoon: $tel\n
Bericht van: $name\n
\n
Onderwerp: $header
______________________________

$message



______________________________

Date/Time: $date","FROM:$adminaddress" ) ;


//De verzender van de email krijgt automatisch een bedankje
//deze tekst is ook aan te passen.
mail ("$email","Dank U voor het bezoeken van $sitename",
"Geachte $name,\n
Dank u voor uw interesse in $sitename.\n
Uw mail wordt zo snel mogelijk in behandeling genomen.\n
\n
Met Vriendelijke Groet,\n
Erik Victor Bos:
$siteaddress","FROM:$adminaddress"
) ;

//Deze bevestiging wordt naar Flash gestuurd als alles is afgerond.
$sendresult = "Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);
echo $send_answer;
}
?>

Larsvu
%Europe/Berlin %314 %2007, 07:32
Hier zitten de fouten

contactData.name = name_txt.text;
contactData.tel_txt.text;
contactData.tb_txt.text;
contactData.email_txt.text;
contactData.header_txt.text;
contactData.message_txt.text;

Je verstuurd alleen name, en die noem je ook nog eens anders in je php file.
Je moet alle waarden die je wilt versturen in je loadvars object zetten.
Zo moet je bijvoorbeeld contactData.name hernoemen naar contactData.name_txt tenzij je de php file gaat aanpassen.

Naar de rest heb ik niet gekeken, maar dit is in ieder geval fout.

+oMÁz_
%Europe/Berlin %394 %2007, 09:28
ow, scusi; onderstaande was helemaal niet aan de orde. My mistake. {'t is nog vroeg}
Maar ik zag wel dat de benaming van de functies verwarrend is. De ene keer staat er validat(..), en de andere keer validatE(..), maar op het eerste zicht is dat wel consequent gebruikt. Mocht het helemaal niet willen lukken zou ik alvast eens nakijken of er echt nergens een inconsequentie te vinden is..

Als je die gegevens opnieuw wil gebruiken in Flash na een omloopje via de PHP file, dan zal dat alvast niet lukken; want volgens mij stuur je
answer= Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.
door naar je AS via:


$sendresult = "Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);
echo $send_answer;

s1001820
%Europe/Berlin %417 %2007, 10:00
Even kijken, ik verstuur dus data, ik gebruik deze variabelen.


contactData.name_txt.text;
contactData.tel_txt.text;
contactData.tb_txt.text;
contactData.email_txt.text;
contactData.header_txt.text;
contactData.message_txt.text;

Die staan in een variabele met de naam contactData
contactData.sendAndLoad("http://www.mijndomein.com/contact.php", contactData, "POST");

Het php script moet nu data aankrijgen via dit stukje code.

// Haalt de informatie dat gepost is door Flash
$name = $_POST['name_txt'] ;
$email = $_POST['email_txt'] ;
$tb = $_POST['tb_txt'] ;
$tel = $_POST['tel_txt'] ;
$header = $_POST['header_txt'] ;
$message = $_POST['message_txt'] ;


Vraag 1 klopt dit of moet dit zijn:

$name = $_POST['contactData.name_txt'] ;
$email = $_POST['contactData.email_txt'] ;
$tb = $_POST['contactData.tb_txt'] ;
$tel = $_POST['contactData.tel_txt'] ;
$header = $_POST['contactData.header_txt'] ;
$message = $_POST['contactData.message_txt'] ;


Waneer de php de data heeft dan moet het worden verstuurd, Ook al komt de data niet goed aan dan nog zou ik (als ik het juist heb) een email moeten krijgen een lege email desnoods.
In mijn geval komt er helemaal niets aan het verzenden lukt dus ook niet.
iemand een idee?

Thanx

+oMÁz_
%Europe/Berlin %436 %2007, 10:29
vraag1: op voorwaarde dat de variabelen-namen overeenkomen met de namen in flash:
// Haalt de informatie dat gepost is door Flash
$name = $_POST['name_txt'] ;
$email = $_POST['email_txt'] ;
$tb = $_POST['tb_txt'] ;
$tel = $_POST['tel_txt'] ;
$header = $_POST['header_txt'] ;
$message = $_POST['message_txt'] ;

vraag 2: vervang de php code eens door iets wat output geeft in een HTML venster.
wacht; ik bekijk het even en post zo een voorbeeld.

+oMÁz_
%Europe/Berlin %447 %2007, 10:43
Probeer dit eens;
ik heb de functie even gecommented, en de gegevens die werden ontvangen worden in een browservenster weergegeven. Als dit goed gaat, ben je al zeker van de verbinding Flash-PHP, en dan zit de fout in de functie.

succes!

<?
//pas de onderstaande variabelen aan naar jouw wensen
$adminaddress = "test@mijnDomein.com"; //op de server staat dit wel goed uiteraard
$siteaddress ="http://www.mijndomein.com";
$sitename = "XcesMedia";

//hieronder hoeft in principe niets ge-edit te worden...


// Haalt de tijd en de datum van de server
$date = date("m/d/Y H:i:s");


// Haalt de informatie dat gepost is door Flash
$name = $_POST['name_txt'] ;
$email = $_POST['email_txt'] ;
$tb = $_POST['tb_txt'] ;
$tel = $_POST['tel_txt'] ;
$header = $_POST['header_txt'] ;
$message = $_POST['message_txt'] ;

//De informatie uit de tekstbalken (de variabelen) wordt gestructureerd naar jouw email adres gestuurd.

/*
function sendmail(){
//hieronder kan de tekst worden aangepast
//een harde enter wordt weergegeven als /n
//alles na een $-teken is een variabele
mail ("$adminaddress","Info Request",
"Een bezoeker van $sitename heeft het volgende bericht achtergelaten\n
Naam: $name
Email: $email
Telefoon: $tel\n
Bericht van: $name\n
\n
Onderwerp: $header
______________________________

$message



______________________________

Date/Time: $date","FROM:$adminaddress" ) ;


//De verzender van de email krijgt automatisch een bedankje
//deze tekst is ook aan te passen.
mail ("$email","Dank U voor het bezoeken van $sitename",
"Geachte $name,\n
Dank u voor uw interesse in $sitename.\n
Uw mail wordt zo snel mogelijk in behandeling genomen.\n
\n
Met Vriendelijke Groet,\n
Erik Victor Bos:
$siteaddress","FROM:$adminaddress"
) ;

//Deze bevestiging wordt naar Flash gestuurd als alles is afgerond.
$sendresult = "Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);
echo $send_answer;
} */
$sendresult = "Dank u wel. U ontvangt binnen enkele seconden een bevestigingsmail.";
$send_answer = "answer=";
$send_answer .= rawurlencode($sendresult);

echo ($send_answer.'<br /><br />');
echo ('adminaddress = '.$adminaddress.'<br />siteaddress = '.$siteaddress.'<br />sitename = '.$sitename.'<br />date = '.$date.'<br />naam = '.$name.'<br />email = '.$email.'<br />tb = '.$tb.'<br />tel = '.$tel.'<br />bericht = '.$message);
?>
echo('<br /><br />gelukt!');

s1001820
%Europe/Berlin %464 %2007, 11:08
goed ik ben een stapje verder de functie "function sendmail(){"

moet zijn mail(hiertussen wordt alles verstuurd);

Ik heb dus een verbinding tussen flash en php.
De variabelen worden echten niet uitgelezen.
maw ik krijg lege mailtjes,

Een bezoeker van mijndomein heeft het volgende bericht achtergelaten

Naam:
Email:
Telefoon:

Bericht van:



Onderwerp:
______________________________





______________________________

Date/Time: 01/23/2007 10:28:26

ergens komt dit dus niet goed.
ik heb on stage een imputveld met de instancenaam
name_txt
die moeten in de variabele contactData komen en contactData.name_txt.text moet weer worden uitgelezen door $name = $HTTP_POST_VARS['name_txt'] ;

ik ben niet echt een scripter dus ik denk dat $name de phpvariabele is die ik were in de rest van mijn phpscript kan gebruiken. wat achter het = teken staat moet toch overeen komen met wat in flash achter de punt staat bij contactData.name_txt.text?

+oMÁz_
%Europe/Berlin %477 %2007, 11:27
zeg makker,
wat kreeg je te zien in de browser als je mijn code gebruikte?

s1001820
%Europe/Berlin %713 %2007, 17:07
Niets, maar de kopeling terug naar flash werkt ook nog niet.
Maar als je wilt weten als ik wel een verbinding heb met het phph script dan is het antwoord jah.
Waneer ik namelijk vanuit flash of vanuit de server het as uitvoer dan krijg ik wel email.
De datum onderin deze email is gegenereerd met het phph script. Ik krijg alleen de waarden niet mee.

Danuss
%Europe/Berlin %818 %2007, 19:39
vind je het erg als ik je code gebruik? zal m paar keer door lezen om te kijken wat het doet enzo... maar ik ben bezig met een website voor m'n sport vereniging, en wil graag ook zo'n mailform, en denk neit dat ik al instaat ben zoiets zelf te doen.

s1001820
%Europe/Berlin %537 %2007, 12:53
nee hoor gebruik maar, maar het werkt nog niet