Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

(actionscript, php) submit form probleem

Pagina: 1
Acties:
  • 462 views sinds 30-01-2008
  • Reageer

  • sprankel
  • Registratie: December 2006
  • Laatst online: 07-11 22:54
actionscript:

on(release) {
Voornaam = Voornaam_input.text;
Naam = naam_input.text;
Geslacht = geslacht_input.text;
Geboren = geboren_input.text;
Stad_gemeente = stad_gemeente_input.text;
Provincie = provincie_input.text;
Email = email_input.text;
Gsm = gsm_input.text;
loadVariables("verzend.php",'POST');
}

php script

<?php

$Voornaam = $HTTP_POST_VARS['Voornaam'];
$Naam = $HTTP_POST_VARS['Naam'];
$Geslacht = $HTTP_POST_VARS['Geslacht'];
$Geboren = $HTTP_POST_VARS['Geboren'];
$Stad_gemeente = $HTTP_POST_VARS['Stad_gemeente'];
$Provincie = $HTTP_POST_VARS['Provincie'];
$Email = $HTTP_POST_VARS['Email'];
$Gsm = $HTTP_POST_VARS['Gsm'];


$sendTo = "daar heeft u geen zaken mee@daar heeft u geen zaken mee.com";
$subject = "daar heeft u geen zaken mee";

$msg_body = "Voornaam: $Voornaam\n";
$msg_body .= "Naam: $Naam\n";
$msg_body .= "Geslacht: $Geslacht\n";
$msg_body .= "Geboren op: $Geboren\n";
$msg_body .= "stad/gemeente: $stad_gemeente\n";
$msg_body .= "Provincie: $Provincie\n";
$msg_body .= "Email: $Email\n";
$msg_body .= "gsm: $gsm\n";

$header_info = "From: ".$name." <".$email.">";

mail($sendTo, $subject, $msg_body, $header_info);

?>

De host ondersteund php maar toch word de mail nooit verstuurd, nu ben ik niet echt thuis in php maar ik zie het probleem niet meteen

  • sprankel
  • Registratie: December 2006
  • Laatst online: 07-11 22:54
Zou het kunnen dat de mail functie van php op free hosts is uitgeschakeld (om misbruik te voorkomen)?

  • Duroth
  • Registratie: Juni 2007
  • Laatst online: 27-04-2016

Duroth

No rest for the tweaked

1. Het gebruik van CODE tags lijkt me in dit geval erg handig.

2. $HTTP_POST_VARS[] is deprecated, bij nieuwere versies van PHP wordt aangeraden $_POST[] te gebruiken.

3. Je roept in je header twee lege variabelen aan, namelijk $name en $email, welke nergens gedefinieerd worden. $Email en $Naam bestaan wel, maar $email is hoofdlettergevoelig en $naam bestaat gewoonweg niet.

4. Als je je mail functie aanroept met
PHP:
1
2
if(!mail($sendTo, $subject, $msg_body, $header_info))
   { echo 'Er is een foutje opgetreden!'; }

weet je of er al dan niet gemaild wordt. Als er in de mail() functie een fout optreedt, zal je de tekst 'Er is een foutje opgetreden!' te zien krijgen. Als dat niet ghet geval is, moet je het probleem elders zoeken. Dat kan je host zijn, of de ontvanger.

5. Sprankel kan gelijk hebben, sommige hosts schakelen deze functionaliteit inderdaad uit. Je kan hierover even contact opnemen met je hosting, of je kijkt even of phpinfo() je die informatie verschaft.

Verwijderd

loadVariables laadt variabelen in, jij wil er verzenden, dus zul je met LoadVars moeten werken.
Het grootste voordeel van LoadVars is dat je ook data kunt returnen via je php-code (genereer bvb wat xml die je returnt naar flash waarin staat of de mail al dan niet verzonden is).

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
on(release) {
var my_lv:LoadVars = new LoadVars();
var my_xml:XML = new XML();
my_lv.onLoad = function(success:Boolean) 
{
  if (success)
  {
    // parse hier het xml object
  } else {
    // geen resultaat teruggekregen vanuit php
  }
}

// Variablen opslaan om door te zenden
my_lv.Voornaam = Voornaam_input.text;
my_lv.Naam = naam_input.text;
my_lv.Geslacht = geslacht_input.text;
my_lv.Geboren = geboren_input.text;
my_lv.Stad_gemeente = stad_gemeente_input.text;
my_lv.Provincie = provincie_input.text;
my_lv.Email = email_input.text;
my_lv.Gsm = gsm_input.text;

// Doorzenden met als parameter je script, dan het object die het resultaat ontvangt, en vervolgens de methode
my_lv.sendAndLoad("verzend.php", my_xml, "POST");
}


ipv on(release) zet je ook beter je script op de main timeline, waar je dan gewoon het volgende kan (stel dat je knop 'button_mc' heeft als instance name en op de main timeline staat). Dit is de beste manier om mouse-events op te vangen in AS2.

code:
1
2
3
4
button_mc.onRelease = function():Void
{
  // code hier
}



Als je wil weten hoe dit precies allemaal werkt vind je in de Flash Help hele goeie documentatie over dit.

[ Voor 12% gewijzigd door Verwijderd op 17-01-2008 22:51 . Reden: Mouse-event uitleg toegevoegd ]