este es un retazo de tutoriales que encontré sobre libro de visitas copiando y probando códigos ya que no soy muy bueno en php y xml pero aprendí.
vamos al grano.
primero que todo vamos a crear el archivo XML con el nombre "messages"
que es donde aparece el nombre el titulo la fecha y el mensaje.
Código XML :
<messages> <message> <nombre>Juan</nombre> <titulo>Hhola</titulo> <fecha>3 de enero</fecha> <full>guestbook =-(</full> </message> </messages>
LO ESCRIBO EN MAYÚSCULA PARA QUE LO TENGAN PRESENTE AL SUBIR ESTE ARCHIVO XML A SU SERVIDOR DEBEN DARLE EL PERMISO 666 DESDE EL SERVIDOR EJEMPLO FILEZILLA CLICK DERECHO PERMISOS DE ARCHIVO Y ESCRIBIR 666 SINO NO LES VA A FUNCIONAR.
POR QUE HAY QUE DAR PERMISO AL XML QUE MODIFIQUE EL ARCHIVO O PHP
bueno ahora creamos el archivo PHP con el nombre "messages"
e insertamos el siguiente código
Código PHP :
<?php if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){ $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; $file = fopen("messages.xml","wb"); fwrite($file, $xml); fclose($file); } ?>
Bueno ahora viene la parte flash
que es bastante sencilla
Vamos a crear cuatro casillas de introducción de texto:
aqui pueden ver una imagen de muy sencilla
http://l4c.me/fotos/juanzear/sin-titulo-14
con los siguientes nombres:
el del nombre: "inputName"
el del titulo: "inputTitle"
el del mensaje que enviamos: "inputFull"
en donde leemos el mensaje que enviamos con los otros enviados: "messageText"
y creamos tres botones:
enviar: "submitBt"
próximo: "nextBt"
anterior:"prevBt"
y bueno el código AS3
Código ActionScript :
var urlRequest:URLRequest = new URLRequest("messages.xml"); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener (Event.COMPLETE,fileLoaded); urlLoader.load (urlRequest); var myXML:XML = new XML(); myXML.ignoreWhitespace = true; var xmlList:XMLList; var arrayName:Array = new Array(); var arrayTitle:Array = new Array(); var arrayDate:Array = new Array(); var arrayFull:Array = new Array(); function fileLoaded (event:Event):void { myXML = XML(event.target.data); xmlList = myXML.children(); for (var i:int=0; i<xmlList.length(); i++) { var xmlName:String = xmlList[i].name; var xmlTitle:String = xmlList[i].title; var xmlDate:String = xmlList[i].date; var xmlFull:String = xmlList[i].full; arrayName.push (xmlName); arrayTitle.push (xmlTitle); arrayDate.push (xmlDate); arrayFull.push (xmlFull); if (i == xmlList.length() - 1) { updateText (); } } } messageText.htmlText = "Deja tu mensaje"; var maximumMessages:Number = 5; var currentMessages:Number = 0; function updateText () { messageText.htmlText = ""; for (var i = currentMessages; i<maximumMessages; i++) { messageText.htmlText += ("<b><u>Nombre:</u></b> " + arrayName[i]); messageText.htmlText += ("<b><u>Titulo:</u></b> " + arrayTitle[i]); messageText.htmlText += ("<b><u>Fecha:</u></b> " + arrayDate[i]); messageText.htmlText += ("<b><u>Mensaje:</u></b> " + arrayFull[i]); messageText.htmlText += ("....................................................."); } currentMessages=i; } nextBt.addEventListener (MouseEvent.MOUSE_UP, nextFunc); prevBt.addEventListener (MouseEvent.MOUSE_UP, prevFunc); function nextFunc (event:MouseEvent) { messageText.htmlText=""; maximumMessages+=5; updateText (); prevBt.enabled=true; } function prevFunc (event:MouseEvent) { messageText.htmlText=""; maximumMessages-=5; currentMessages-=10; nextBt.enabled = true; updateText (); if (currentMessages<=5) { prevBt.enabled=false; } } if (arrayName.length <= maximumMessages) { maximumMessages = arrayName.length; nextBt.enabled = false; } if (currentMessages < 0) { currentMessages = 0; maximumMessages = 5; nextBt.enabled = true; } nextBt.enabled = false; prevBt.enabled = false; inputName.text = ""; var newName:String = ""; inputTitle.text = ""; var newTitle:String = ""; inputFull.text = ""; var newFull:String = ""; function onEnterFrame (ev:Event):void { if (inputName.text != "" && inputTitle.text != "" && inputFull.text != "") { submitBt.enabled = true; } } addEventListener (Event.ENTER_FRAME, onEnterFrame); submitBt.addEventListener (MouseEvent.MOUSE_UP,sendData); function sendData (event:MouseEvent):void { var dateToday:Date = new Date(); var thismonth:uint = dateToday.getMonth(); var month:Array = new Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'); var dateStr:String = (dateToday.getDate()+" "+month[thismonth]+" "+dateToday.getFullYear()); newName = inputName.text; newTitle = inputTitle.text; newFull = inputFull.text; var newItem:XML = XML("<message><name>" + newName + "</name><title>" + newTitle + "</title><date>"+ dateStr+ "</date><full>" + newFull + "</full></message>"); myXML.appendChild (newItem); var request:URLRequest = new URLRequest("messages.php"); request.data = myXML; request.contentType = "text/xml"; request.method = URLRequestMethod.POST; var loader:URLLoader = new URLLoader( ); loader.load ( request ); loader.addEventListener ( Event.COMPLETE, loaderDone ); } function loaderDone (evt:Event):void { arrayName = []; arrayTitle = []; arrayDate = []; arrayFull = []; inputName.text = ""; inputTitle.text = ""; inputFull.text = ""; submitBt.enabled = false; maximumMessages = 5; currentMessages = 0; messageText.htmlText = ""; urlLoader.load (urlRequest); }
y bueno espero que les sirva no es muy difícil la verdad no se por que me complique tanto tal vez por que no sabia mucho del funcionamiento de XML y PHP en flash igual todo fue de otros tutoriales que leí y arme el retazo que ahora ven.
recuerden que para ver en funcionamiento el libro de visitas tiene que ser desde el servidor les dejo este enlace del que hice de prueba va a estar por unos días nada mas pero se harán una idea.
http://www.quicklysvip.com
y este otro donde donde comprendí mucho mas la comunicación de XML , PHP y flash aunque esta en ingles y las traducciones de google no soy muy exactas se los recomiendo.
http://active.tutsplus.com/tutorials/xml/build-a-dynamic-guest-book-with-xml-and-actionscript-30/
espero les sirva a todos