Comunidad de diseño web y desarrollo en internet online

TUTORIAL GUESTBOOK AS3 XML Y PHP

Citar            
MensajeEscrito el 03 Ene 2010 11:30 pm
Este es mi segundo tutorial el primero fue sobre formulario de contacto que no me acuerdo el enlace pero después se los envió.
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

Por juanzear

36 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Ene 2010 08:41 pm
Por alguna razón que todavía no se ni comprendo al enviar el mensaje por explorer no actualiza inmediatamente lo contrario ocurre con chrome, opera, firefox así que no se asusten por que si funciona si siguen los pasos que aparecen

otra cosa al autorizar los permisos en el el servidor deben ser los siguientes:

para XML 666 y para php 644

Por juanzear

36 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Ene 2010 07:22 pm
¡¡¡Muy buen aporte!!!
Yo también hice este mismo libro de visitas para una web (creo que miraría los mismos tutoriales que tú) y también le hice algunos cambios. Tienes razón con lo de que no se actualiza con Explorer, yo también me estaba volviendo loca,... y no sé si tiene solución.
Lo que me está pasando también, es que cuando el usuario introduce los datos, no se pueden escribir bien los acentos, ni algunos signos, como por ejemplo los de interrogación,...
¿alguien sabe por qué me puede estar pasando?
Esta es la web en la que estoy trabajando centaurolagrupestra.com (sección de FIRMAS).

Por ispav

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 31 Ene 2010 04:14 pm
Me he dado cuenta que los acentos, signos de interrogación,... sólo me fallan en el chrome. Si utilizo explorer o firefox, se puede escribir todo bien.

Por ispav

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Ene 2010 04:20 pm
hola a mi me pasa lo mismo la verdad chrome me desiluciona cada vez mas le e visto muchas fallas

Por juanzear

36 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.