PDA

Volledige versie bekijken : Loadvars sendandload met php


digitalecartoons
%Europe/Berlin %607 %2007, 15:34
Ben ook wat nieuw met dat Loadvars, maar ben bezig met een test flash die moet testen of een ingevoerd emailadres ook een echt emailadres is. Heb dus een flash invul formulier gemaakt met een verstuurknop waarvoor ik de volgende code gebruik om de variabele "email" van het inputtext vakje mee te sturen:

knopje.onRelease = function() {
sturen = new LoadVars();
ontvangen = new LoadVars();
sturen.sendAndLoad("http://www.testemail.nl/testmail.php", ontvangen, "POST");
if (ontvangen == true) {
trace("gelukt");
} else {
trace("mislukt");
}
};


Vervolgens gebruik ik mijn mailformulier waar een regex in zit die checkt of het klopt en als resultaat aan de variabele "ontvangen" moet doorgeven of het wel of niet klopt:

<?php

/* Kijken of er wel een echt emailadres is ingevuld */
function testmail ($str) {
return (ereg ('^[a-zA-Z0-9][a-zA-Z0-9_.\-]*@([a-zA-Z0-9]+\.)*[a-zA-Z0-9][a-zA-Z0-9\-]+\.([a-zA-Z]{2,6})$', $str));
}

/* Mailformulier verstuurd en naam of adres klopt niet of geen reactie ingevuld? */
if (!testmail($_POST["email"])) {
echo "ontvangen=false";
} else {
echo "ontvangen=true";
}

?>

Maar wat ik ook doe, ik blijf "mislukt" getraced krijgen, ook al voer ik een normaal emailadres in. 't is vast heel simpel , maar wat doe ik fout?

Pointer
%Europe/Berlin %617 %2007, 15:49
Ik zou de check van invoervelden zelf laten verlopen via actionscript in flash.

digitalecartoons
%Europe/Berlin %636 %2007, 16:16
Het schijnt in eerste instantie al niet goed te gaan met het doorgeven van het adres. Als ik b.v. het invoervak met inputtext de instance "invoer" geef met daarin de var "email" en ik gebruik deze code bij het knopje dan verschijnt er "undefined" in plaats van wat ik invoer. Wat doe ik fout?

knopje.onRelease = function() {
trace(_root.invoer.email);
};

digitalecartoons
%Europe/Berlin %673 %2007, 17:09
Eerst maar even dat doorgeven van variabelen checken. Ik heb nu dus een invoerveld met variable "email" en een button die de volgende code krijgt
knopje.onRelease = function() {
mySendVars = new LoadVars();
myLoadVars = new LoadVars();
mySendVars.adres = email;
mySendVars.sendAndLoad("testmail.php", myLoadVars);
myLoadVars.onLoad = function(success) {
if (success) {
trace(myLoadVars.ontvangen);
trace(mySendVars.adres);
}
};
};


De php is slecht het ingevoerde emailadres wat teruggestuurd zou moeten worden:

<?php
echo "ontvangen=".$_POST["email"];
?>

bij trace(myLoadVars.ontvangen) krijg ik nu een lege regel
bij trace (mySendVars.adres) om te checken of de variabele wel goed is doorgegeven dit hele verhaal:


<TEXTFORMAT LEADING="2"><P ALIGN="LEFT"><FONT FACE="arial" SIZE="12" COLOR="#000000" LETTERSPACING="0" KERNING="0">test@gmail.com</FONT></P></TEXTFORMAT>

Schijnbaar wordt de variabele dus wel doorgegeven, maar ziet $_POST["email"] hem toch niet? Waar zit de fout?

Folkert
%Europe/Berlin %683 %2007, 17:24
var mySendVars:LoadVars = new LoadVars();
var myLoadVars:LoadVars = new LoadVars();
myLoadVars.onLoad = loadVarsHandler;
send_btn.onRelease = function()
{
mySendVars.adres = email_input.text;
mySendVars.sendAndLoad("http://www.digitalecartoons.nl/testmail.php", myLoadVars);
};

function loadVarsHandler(success)
{
if (success)
{
trace(this.ontvangen);
trace(_level0.mySendVars.adres);
}
}
heb je even de email input een instancenaam gegeven ipv een var naam (als die al instancenaam had dan dien je de text aan te roepen ;) ). De code is los dus de instancenamen verschillen, omdat ik van instancenamen hou die je wat zeggen over wat de instance is of doet. uiteraard is knopje net zo duidelijk als _btn ;) echter met _btn aan het eind heb je profijt in de editor.

Succes

digitalecartoons
%Europe/Berlin %684 %2007, 17:26
Al wat gevonden, in plaats van:

<?php
echo "ontvangen=".$_POST["email"];
?>

Moet ik dit gebruiken omdat ik loadvars.adres de waarde van email heb gegeven en de variabele loadvars.adres nu verstuurd wordt.

<?php
echo "ontvangen=".$_POST["adres"];
?>

Alleen merk ik dat ik nu in plaats van enkel het emailadres een hele reeks html daarbuiten krijg?

<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"arial\" SIZE=\"12\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">test@gmail.com</FONT></P></TEXTFORMAT>

Mijn PHP regex werkt nu niet denk ik omdat hij nu meer krijgt dan enkel test@gmail.com om erop te checken??