Comunidad de diseño web y desarrollo en internet online

No tiene sentido este error!

Citar            
MensajeEscrito el 21 Feb 2010 05:12 am
quiero comunicar php con flash, ya lo hice montones de veces pero nunca me paso esto
cuando hago un trace de los datos recibidos en flash de la variable nombre me pone: ".$datos[nombre]."
PHP:

Código PHP :

<?php
require_once("conexion.php");
      $nombre = $_POST["nombre"];
      $mensaje = $_POST["mensaje"];
      $guarda = mysql_query("INSERT INTO principal(nombre,mensaje) VALUES ('$nombre','$mensaje')");
      $respuesta = mysql_query("SELECT * FROM principal");
      while($datos = mysql_fetch_array($respuesta)){
          //echo "&nombre=".$datos[nombre]."&mensaje=".$datos[mensaje];
      }
?>

si.. eso es lo que no tiene sentido.. el unico echo que tiene el php esta comentado!!, lo comente para probar que onda y seguia igual, la verdad no entiendo.
aca esta mi codigo en flash (esta en un boton):

Código ActionScript :

on (release, keyPress "<Enter>") {
   enviaDatos = new LoadVars();
   recibeDatos = new LoadVars();
   enviaDatos.nombre = nombre;
   enviaDatos.mensaje = mensaje;
   enviaDatos.sendAndLoad("principal.php", recibeDatos, "post");
   recibeDatos.onLoad = function(){
      trace(this.nombre);  //me devuelve ".$datos[nombre]."
      trace(this.mensaje); //me devuelve ".$datos[mensaje]."
   }
}

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 21 Feb 2010 06:39 am
$datos[nombre] debería ser $datos["nombre"], lo mismo para mensaje.

Y si lo comentaste y lo sigues viendo, lo más probable es que sea cache.

Saludos.

Por w00p

24 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Feb 2010 07:16 am

w00p escribió:

$datos[nombre] debería ser $datos["nombre"], lo mismo para mensaje.

Y si lo comentaste y lo sigues viendo, lo más probable es que sea cache.

Saludos.


eso no creo que tenga que ver.. $datos[nombre] y $datos["nombre"] como $datos['nombre'], refieren a lo mismo, solo que es mejor practica encerrar entre comilla la referencia del arreglo, en la primera $datos[nombre], se indica que valla a la referencia "nombre" del arreglo, pero nombre es tomado como una literal y se evalua con su valor que es "nombre" amenos que alla hecho un define(nombre,"otro valor diferente") valeria algo distito y podria probocar problema, por eso es buena practica hacer referencia a nuestros arreglos refeleciales con cadenas encerradas en comillas asi nos aseguramos que sea esta la casilla que se consulta, auque es mas comodo y podemos evitar las comillas y referenciar con la literal pero como dije eso nos puede causar problemas en algun desarrollo grande y que por pura casualidad se definiera una constante con la cadena que usamos como indice, seria algo dificil pero se puede dar,


y en cuanto al problema se me hace algo raro al parecer tus cadenas enstan bien, apostaria que no estas viendo por el server(localhost) tu script y lo esta cargando directamente.... esto x que en tu loadvar mandas llamar a "principal.php" lo cual es correcto.... pero al probar tu pelicula lo que pasa es que "principal.php" no pasa por el server si no que es llamado directamente es como si tu miraras el PHP en tu explorador directamente y no por localhost, lo que tienes que hacer para poder probar tus php's desde una prueba en flash (Ctrl+Enter) es referite al recurso PHP con la url completa

Código ActionScript :

enviaDatos.sendAndLoad("http://localhost/pagina/principal.php", recibeDatos, "post");


esto hara que el script lo consulte desde el server y el php sea interpretado y ejecutado, pero OJO, hay que cambiar esto como l o tenias al poner en produccion tu pelicula, por que si no en intenet estaria tratando de entrar a localhost y eso haria que tu pelicula no funcionara en internet ademas que por seguridad flash no deja haceder a recursos fuera del dominio donde esta la pelicula. lo que yo solia hacer(hace mucho que no trabajo con flash), es poner una variable que me dijiera el servidor del recurso
ejemlo

Código ActionScript :

serv="http://localhost/pagina/";
//serv=""

y y donde mandara llamar el senandload

Código ActionScript :

enviaDatos.sendAndLoad(serv+"principal.php", recibeDatos, "post");


esto me servia para no estar buscando el script para cambiar en las pruebas y producion las url, asi solo comentaba la segunda asignacion a serv cuando setubiera ejecutando desde flash o bien lo descomentaba cuando lo fuera a probar en localhost o bien ya subirlo al server a producion,.

bueno espero te sirvan estos consejillos

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Feb 2010 04:26 pm
buenisimo ya probe las 2 cosas que me dijeron y funciona correctamente. Gracias! :)

Por luco

Claber

110 de clabLevel



Genero:Masculino  

chrome

 

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