Intro

Nu har emnet været oppe en del gange: "hvordan laver man en contact form i flash?".
Så nu besluttede jeg mig for at lave min første tutorial her på Flash Forum.
Jeg viser hvordan du sender data fra din Swf til en php fil, og så sender mailen fra php.

færdig version

Tutorial

Først laver du en ny AS3 flash fil. Så laver du 3 input felter som du giver instance navene:
navnInput, emailInput, og beskedInput. Ud for input felterne kan du lave 3 textfelter hvor du skriver feks: dit navn, din mail osv.
Under dem laver du et dynamisk text felt (Dynamic text field) som du kalder statusText.

Alle tekstfelter embeder du, ved at markere tekst feltet, og trykke på knappen embed, og så markere du:
-lower case
-upper case
-numbers
-punctional (%&()€)

og skriver ÆØÅåøæ i feltet: "include these characters"

Så laver du en knap, feks en firkant og et textfelt for der står: "Send"
Du giver knappen instance navnet sendKnap.

Nu mangler vi bare at lave AS koden og php filen.

ActionScript

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
System.useCodePage = true;//Gør at du undgår problemer med æøå
var emailData:URLVariables = new URLVariables();//holder vores data som sendes til php'en
var request:URLRequest;//vores url request
var loader:URLLoader = new URLLoader();//URLLoaderen sender data'en til php
 
sendKnap.addEventListener(MouseEvent.CLICK, sendMail);//"Lytter" om der bliver trykket på knappen "sendKnap"
loader.addEventListener(Event.COMPLETE, emailSendt);//Lytter efter hvornår mailen er sendt
 
function sendMail(e:Event):void
{
//Checker om der er indtastet noget i alle felterne med valider() functionen, som vi laver nede under.
  if(valider()){
 
  statusField.text = "Vent venligst sender mail...";//Skriver at mailen sendes
  //Tilføjer hvad der står i input felterne til vores URLVariabler
  emailData.navn = navnInput.text;
  emailData.email = emailInput.text;
  emailData.besked = beskedInput.text;
  
  request = new URLRequest("email.php");//Siger hvor php filen ligger
  request.method = URLRequestMethod.POST;//Fortæller at dataen skal sendes som POST variabler
  request.data = emailData;//Tilføjer URLVariablerne til vores request
  loader.load(request);//Sender dataen til php filen
 
  }
        else
        {
    statusField.text = "Udfyld alle felter, tak.";//Skriver at man skal udfylde alle felter
  }
}
 
function valider():Boolean{
 
        //Checker om alle felterne er blevet udfyldt
 
  if(navnInput.text != "" && emailInput.text != "" && beskedInput.text != ""){
    return true;//true, der noget i alle felter
  }else{
    return false;//retunere false, der er ikke skrevet i alle felterne
        }
 
}
 
 
//Denne function "Kører" når mailen er blevet sendt
function mailSendt(e:Event){
  trace("mail sendt")
  statusField.text = "Din besked er nu sendt!"//Skriver at mailen er sendt i vores statusField
  navnInput.text = "";//tømmer input feltet
  emailInput.text = "";//tømmer input feltet
  beskedInput.text = "";//tømmer input feltet
}

Og for at lave php filen skal du åbne: Note pad, Text Mate, eller Dreamweaver. Men ikke programmer som Pages eller Word, For de vill føje alle mulige textformateringer som vi ikke ønsker.

Og insætter denne kode:

PHP

1
2
3
4
5
6
7
8
9
10
<?php
$sendTo = "dinMail@dinHost.dk";//Vi laver en variabel som siger hvor mailen skal sendes til
$subject = "hvad der skal stå i emne Feltet";//Her sriver vi hvad der skal stå i emne feltet
 
$headers = "From: " . "Min mail form " . "<" . $_POST["email"] .">";//her siger vi hvad ders kal stå i headeren, hvor mailen er fra. vi får malen ved at skrive $_POST["email"]
 
$message = "Fra: ". $_POST["navn"] . "\n\n" . $_POST["besked"];//her siger vi hvad der skal stå i mailen først "Fra:" og så skriver vi et punktum som svarer til et + i as. Og så hvad han hedder som har sendt mailen. Så et linje skift ved at skrive "\n\n" Og så får vi fat i beskeden ved at skrive $_POST["besked"] .
 
mail($sendTo, $subject, $message, $headers);//Sender mailen med vores variabler
?>

Og så er det bare at smide mail.swf og email.php op på din server og se om det virker.

Håber du kunne bruge denne tutorial, og der ikke var for mange stave fejl.

I må endelig spørger hvis i har spørgsmål til tutorialen.

I kan finde source filerne her

-Jakob Halskov