Databashantering‎ > ‎php‎ > ‎

skicka data från flash till php

Att skicka data från flash till PHP kräver inget speciellt php-script. Om du kollar exemplet nedanför så ser du att det ser exakt ut som om det skulle ha skickats från ett helt vanligt html-formulär.
För att skicka data med POST via Action Script behöver vi dock ett par objekt för att definiera vilken data vi ska skicka och hur den ska skickas.

exempel_1.fla

import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
stop();

send_mc.buttonMode = true;

var variables:URLVariables = new URLVariables();
//sätter den relativa sökvägen till php-filen
var varSend:URLRequest = new URLRequest("post.php");
var varLoader:URLLoader = new URLLoader;
varSend.method = URLRequestMethod.POST;
varSend.data = variables;

//kopplar en eventlyssnare till skicka-knappen
send_mc.addEventListener(MouseEvent.CLICK, postData);

function postData(event:MouseEvent):void {
    //sätter värdet från textfälten
    variables.name = name_txt.text;
    variables.comment = comment_txt.text;

    varLoader.addEventListener(Event.COMPLETE, completeHandler);
   
    //skickar till post.php
    varLoader.load(varSend);
}

function completeHandler(event:Event):void{
    //det som skrivs ut i post.php sätts i textfältet reponse_txt
    response_txt.text = event.target.data;
}

PHP-scriptet som tar emot datan:

post.php


<?php
//inkluderar anslutningsfil till MySQL
include('dbconnect.php');

//Escapar tecken som t.ex: '
$name mysql_real_escape_string($_POST['name']);
$comment mysql_real_escape_string($_POST['comment']);

//Om både namn och kommentar är angivet
if(!empty($name) && !empty($comment)) {
    
mysql_query("INSERT INTO guestbook (name, comment, date) VALUES('$name', '$comment', NOW())");
    echo 
"tack $name för din kommentar!";
}else{
    echo 
"du måste fylla i både namn och kommentar";
}
?>

För att göra det enklare att testa detta exempel medföljer en dump av gästbokstabellen som använts.

guestbook.sql

CREATE TABLE `guestbook` (
  `id` int(4) NOT NULL auto_increment,
  `name` varchar(100) NOT NULL,
  `comment` text NOT NULL,
  `date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)
);


ċ
flashdb_exempel.zip
(10k)
Olof Olsson,
19 jan. 2009 12:38
Comments