Foros del Web » Programando para Internet » PHP »

Ayuda por favor

Estas en el tema de Ayuda por favor en el foro de PHP en Foros del Web. Buenos días, he estado mirando por distintos foros y no consigo aclararme con una duda que tengo, estoy creando un pequeño formulario para explicárselo a ...
  #1 (permalink)  
Antiguo 07/04/2010, 03:41
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Ayuda por favor

Buenos días, he estado mirando por distintos foros y no consigo aclararme con una duda que tengo, estoy creando un pequeño formulario para explicárselo a mis alumnos pero a pesar de seguir los pasos correctos no logro queme funcione. por lo que le pido ayuda para ello, este año me han puesto a dar clases de informatica en el centro donde trabajo y ando un poco perdido en esto.
le cuento:
tengo un fichero flash con un pequeño formulario de dos campos, que al pulsar el boton envio me ejecuta el siguiente codigo:
on (release){
form1 = new LoadVars();
form1.nombre = this.nombre.text;
form1.nombre = this.email.text;
form1.sendAndLoad("enviar.php",form1, "POST");
getURL("http://localhost/formulario/enviar.php", "_blank");
this.nombre.text = "";
this.email.text = "";
}
en un fichero que se llama enviar.php tienes el código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<?php
$nombre = $_POST['nombre'];
$email = $_POST['email'];
echo "$nombre";
if($nombre != "" && $email != "")
{
mysql_connect("localhost","idrweb","idrweb");
mysql_select_db("datos")
mysql_query("INSERT INTO usuario (nombre,email) VALUES ('$nombre','$email')");
}
?>

<body>
</body>
</html>

intento que se introduzcan los datos de esas variables en la base de datos, pero no me llega nada y al intentar mostrar el contenido de una de las variables en pantalla, me sale este error:

Notice: Undefined index: nombre in C:\wamp\www\formulario\enviar.php on line 8

Notice: Undefined index: email in C:\wamp\www\formulario\enviar.php on line 9, eando las variables?
en que me estoy equivocando...
te agradeceria me ayudaras, muchisimo la verdad, se que es pedir demasiado pero estoy un poco apurado con esto que no es lo mio. muchas gracias por adelantado.
  #2 (permalink)  
Antiguo 07/04/2010, 03:50
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 8 meses
Puntos: 5
Respuesta: Ayuda por favor

Ese error aparece cuando tus variables no estan correctamente fijadas. Sin embargo, hay una vía, entre muchas otras, a través del cual podrás verificar de dónde proviene el error. Esta consiste en verificar si tu POST está llegando a la página de destino:

Código PHP:
if (!isset($_POST['action']))
{
$_POST['action'] = "Indefinido";

Antes de pasarlas al flash, verifica que trabajen perfectamente en PHP... Verifica en archivo que envía '$nombre = $_POST['nombre'];' y '$email = $_POST['email'];'.

Saludos!
__________________
Andrew :P
  #3 (permalink)  
Antiguo 07/04/2010, 03:52
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Ayuda por favor

Hola

Jope recien salido de sacarme el graduado escolar y tengo que explicarle esto a un profesor =)

Vamos a ver, ese error de PHP es por que no se entan enviando los campos nombre y mail por metodo POST.

Se me ocurre que a principio del script pongas estas lineas
Código PHP:
echo "<pre>";
print_r($_POST);
echo 
"</pre>"
Si se recibe contenido por metodo POST esas lineas tendrian que imprimir en pantalla el contenido de POST.

Si aparece algo asi:
Array(
)

Es que no se esta enviando el contenido y el fallo está en el codigo que envia el Flash, osea, aqui:
form1 = new LoadVars();
form1.nombre = this.nombre.text;
form1.nombre = this.email.text;
form1.sendAndLoad("enviar.php",form1, "POST");
De todas formas, no entiendo mucho de ActionScript que creo que es el lenguaje de flash pero fijate en esto:
form1.nombre = this.nombre.text;
form1.nombre = this.email.text;

has utilizado form1.nombre 2 veces para asignar contenido diferente, eso esta bien¿?
  #4 (permalink)  
Antiguo 07/04/2010, 04:09
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda por favor

Buenas, antes que nada muchas gracias por la respuesta tan rápida.
La verdad es que el error del código de flash es imperdonable, pues lo he revisado varias veces pero no me he dado cuenta, debe ser que cuando estas obcecado con algo se te pasan las cosas obvias.
probare lo que me habéis indicado y os diré.
Bueno y lo del profesor jejeje, en fin a veces nos ponen a dar clases que nos son de nuestra especialidad y nos vemos en apuros, imaginate a un profesor de dibujo teniendo que dar informática y meterse en programación que es lo que me ha pasado.
Bueno muchas gracias.

Última edición por idrweb; 07/04/2010 a las 04:52
  #5 (permalink)  
Antiguo 07/04/2010, 04:15
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Ayuda por favor

Cita:
Iniciado por xacienta Ver Mensaje
Hola, gracias por aceptar mi registro. Hace un mes que me inhabilitaron la cuenta que tenia desde hace tiempo, no se porque pasó ya que no habia tenido nunca problemas con ella, me gustaría volverla a activar ya que en ella tengo a todos mis amigos. Mandé unos correos y me contestan que ya me avisaran. Qué hago ? Gracias
Que dices
Cita:
Iniciado por idrweb Ver Mensaje
Buenas, antes que nada muchas gracias por la respuesta tan rápida.
La verdad es que el error del código de flash es imperdonable, pues lo he revisado varias veces pero no me he dado cuenta, debe ser que cuando estas obcecado con algo se te pasan las cosas obvias.
probare lo que me habéis indicado y os diré.
Bueno y lo del profesor jejeje, en fin a veces nos ponen a dar clases que nos son de nuestra especialidad y nos vemos en apuros, imaginate a un profesor de dibujo teniendo que dar informática y meterse en programación que es lo que me ha pasado.
Bueno mucas gracias.

Pues nada, por aqui me tienes, de todas formas, para una ayuda mas rapida por si no estoy conectado en el foro me tienes por [email protected] que suelo estar siempre con el correo abierto.

Saludos
  #6 (permalink)  
Antiguo 07/04/2010, 04:26
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda por favor

Buenas a ver si pueden ayudarme un poco mas, en el fichero php me sale un error a la hora de introducir los datos en la tabla. if($nombre != "" && $email != "")

{
mysql_connect("localhost","idrweb@localhost","idrw eb");
mysql_select_db("datos")
mysql_query("INSERT INTO usuario (nombre,email) VALUES ('$nombre','$email')");
}

Parse error: parse error in C:\wamp\www\formulario\enviar.php on line 18
que se corresponde con la de mysql_query...
  #7 (permalink)  
Antiguo 07/04/2010, 04:29
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Ayuda por favor

Cita:
Iniciado por idrweb Ver Mensaje
Buenas a ver si pueden ayudarme un poco mas, en el fichero php me sale un error a la hora de introducir los datos en la tabla. if($nombre != "" && $email != "")

{
mysql_connect("localhost","idrweb@localhost","idrw eb");
mysql_select_db("datos")
mysql_query("INSERT INTO usuario (nombre,email) VALUES ('$nombre','$email')");
}

Parse error: parse error in C:\wamp\www\formulario\enviar.php on line 18
que se corresponde con la de mysql_query...
Te falta un ; despues de mysql_select_db("datos")
Código PHP:
mysql_select_db("datos"); 
Es un error de sintaxis.
  #8 (permalink)  
Antiguo 07/04/2010, 05:01
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda por favor

Corregido el fallo del punto y coma, me sale este ahora:
al indicar que se abra el fichero enviar.php.
Array
(
)

Notice: Undefined index: nombre in C:\wamp\www\formulario\enviar.php on line 11

Notice: Undefined index: email in C:\wamp\www\formulario\enviar.php on line 12
a que se debe, gracias nuevamente.

Pero lo curioso es que si me toma los datos del fichero flash y los introduce en la base de datos.

Última edición por idrweb; 07/04/2010 a las 05:21
  #9 (permalink)  
Antiguo 07/04/2010, 05:37
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Ayuda por favor

Cita:
Iniciado por idrweb Ver Mensaje
Corregido el fallo del punto y coma, me sale este ahora:
al indicar que se abra el fichero enviar.php.
Array
(
)

Notice: Undefined index: nombre in C:\wamp\www\formulario\enviar.php on line 11

Notice: Undefined index: email in C:\wamp\www\formulario\enviar.php on line 12
a que se debe, gracias nuevamente.

Pero lo curioso es que si me toma los datos del fichero flash y los introduce en la base de datos.
Hola
Verás, si aparece
Array(
)

Es que los datos no se estan enviando, asi que puedes hacer 2 cosas, enviarlo por metodo GET a travez de la url:
Código HTML:
enviar.php?nombre=aquielnombre&mail=aquielmail
O ver por que no se envian los datos.
Como que si se inserta en la base de datos? si _POST está vacio no se puede insertar en la base de datos, por lo menos los valores, otra cosa es que se inserten registros en blanco.

Se me ocurre que el codigo de insertar en la base de datos lo tienes en ficheros diferentes al de enviar.php puede ser?

Pegame aqui todos los codigos fuente y veremos que pasa.
Lo que creo que pasa es que Flash no esta enviando la peticion con el contenido POST
He estaqdo leyendo sobre getURL() y me ha parecido que estas enviando mal los datos, has utilizado el parametro de destino de la peticion HTTP para meter los datos POST y asi no es.

Mira:
form1.sendAndLoad("enviar.php",form1, "POST");
esto tendria que ser:
form1.sendAndLoad("enviar.php","_self", "POST");
A no se rque form1 sea un elemento html de tu web, cosa que dudo pero todo puede ser.
Puedes leer un poco mas aqui:
http://codesnippets.joyent.com/posts/show/566
http://help.adobe.com/es_ES/AS2LCR/F...=00000569.html < mira en la seccion POST

Última edición por karliky; 07/04/2010 a las 05:44
  #10 (permalink)  
Antiguo 07/04/2010, 09:16
 
Fecha de Ingreso: abril-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda por favor

este es el código del fichero php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
</head>
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
$nombre = $_POST['nombre'];
$email = $_POST['email'];

if($nombre != "" && $email != "")
{

mysql_connect("localhost","usuario","contraseña");
mysql_select_db("usuario_prueba");
mysql_query("INSERT INTO prueba (nombre,email) VALUES ('$nombre','$email')");}
?>

<body>
</body>
</html>

por otra parte esta el fichero html que llama al fichero swf de flash que no tiene nada especial.
en el fichero flash pues esta solo el stop(); típico del primer fotograma para parar la película y el código del botón enviar que es :
on (release){
form1 = new LoadVars();
form1.nombre = this.nombre.text;
form1.email = this.email.text;
form1.sendAndLoad("enviar.php",form1, "POST");
this.nombre.text = "";
this.email.text = "";
getURL("http://localhost/formulario/enviar.php", "_blank");
}

el getURL es para que me muestre el fichero php por pantalla y es cuando aparece el error al mostrarme.
pero consulto la base de datos y si se cargan los valores.
Eso es lo que me tiene mosca.
De todas formas si quieres te mando los ficheros al email que pusiste.
Gracias por todo la verdad es que es un placer encontrar gente tan colaboradora y dispuesta a ayudar.
  #11 (permalink)  
Antiguo 08/04/2010, 01:11
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 7 meses
Puntos: 13
Respuesta: Ayuda por favor

Pues enviame los ficheros por que me estas dejando un poco blanco y si no lo veo no lo entiendo.

Saludos

Etiquetas: favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.