Formulario php

Hola, estoy intentando hacer un formulario php conectado con una bd mysql, esto loco volviendo a revisar el código, al lanzar la página en el servidor web me da el siguiente error:
Parse error: syntax error, unexpected '=' in /home/a8340965/public_html/formulario2.php on line 31
Te pego abajo el código para ver si me puedes ayudar...
Saludos y gracias.
<?php
//capturo las variables cuando se aprieta el boton enviar
$Nombre=$_POST['Nombre'];
$Nombre=$_POST['Apellidos'];
$Nombre=$_POST['DNI'];
$Nombre=$_POST['Edad'];
$Nombre=$_POST['Localidad'];
$Nombre=$_POST['Telefono'];
$Nombre=$_POST['Club'];
$Nombre=$_POST['E-mail'];
$Nombre=$_POST['Direccion'];
$Nombre=$_POST['CP'];
$Nombre=$_POST['Provincia'];
$E-mail=$_POST['E-mail'];
if($Nombre!="" and $E-mail!=""){
//cambiar los parametros de conexion
mysql_connect("mysql6.000webhost.com","a8340965_rutacab","contraseña");
//colocar el nombre de la base de datos
mysql_select_db("a8340965_rutacab");
//hago la insercion a la base de datos
mysql_query("insert into datos(Nombre,Apellidos,DNI,Edad,Localidad,Telefono,Club,E-mail,Direccion,CP,Provincia) values
('$Nombre','$Apellidos','$DNI','$Edad','$Localidad','$Telefono','$Club','$Direccion','$CP','$Provincia','$E-mail')");
}
?>
Respuesta
1
Pues he pegado el código en mi editor (dreamweaver) y el error me lo detecta en esta linea:
$E-mail=$_POST['E-mail'];
Prueba a llamarla $Email y creo que no te dará problema, usar guiones no es muy recomendable, en todo caso guiones bajos

1 respuesta más de otro experto

Respuesta
1
¿Seguro qué me has mostrado todo el código?
El error está en la línea 31 y el texto que has pegado no tiene 31 líneas.
No he pegado todo el código porque el formulario de esta página me decía que era demasiado extenso, he pegado la parte de programación de php, el resto es html y se trata de un formulario, si quieres te puedo pasar por mail todo.
Saludos.
No hace falta, ya he visto el fallo: has usado el carácter "-" en el nombre de la variable E-mail y no parece que se pueda, échale un ojo a:
http://www.php.net/manual/es/language.variables.basics.php
Con cambiar E-mail por E_mail (por ejemplo) se arreglaría.
Ya lo cambie, y ahora no me da el error pero entro los datos en el form y no da ningún tipo de fallo, pero luego no aparecen los datos en la bd... no se que ocurre, por favor, ¿puedo mandarte todo el código para que le eches un vistazo a un e.mail?
Saludos y gracias.
En lugar de:
$Nombre=$_POST['Nombre'];
$Nombre=$_POST['Apellidos'];
$Nombre=$_POST['DNI'];
$Nombre=$_POST['Edad'];
etc...
Deberías tener:
$Nombre=$_POST['Nombre'];
$Apellidos=$_POST['Apellidos'];
$DNI=$_POST['DNI'];
$Edad=$_POST['Edad'];
Etc...
Si quieres mandarle el código hazlo a través de alguna página de intercambio de archivos.
La verdad no veo la diferencia entre lo que tengo y debo de poner, será que no estoy fino... je je
Te dejo en esta dirección, el fichero que tengo para ver si tienees un ratillo y me miras que pasa porque creo que no es tan complicado todo... gracias por todo amigo
http://dientesdeperro.comli.com/formulario3.rar
Aquí tienes el código modificado:
//capturo las variables cuando se aprieta el boton enviar
if($_POST['Nombre']!="" and $_POST['E_mail']!=""){
//cambiar los parametros de conexion
mysql_connect("mysql6.000webhost.com","a8340965_rutacab","canis lupus");
//colocar el nombre de la base de datos
mysql_select_db("a8340965_rutacab");
$Nombre=mysql_real_escape_string($_POST['Nombre']);
$Apellidos=mysql_real_escape_string($_POST['Apellidos']);
$DNI=mysql_real_escape_string($_POST['DNI']);
$Edad=mysql_real_escape_string($_POST['Edad']);
$Localidad=mysql_real_escape_string($_POST['Localidad']);
$Telefono=mysql_real_escape_string($_POST['Telefono']);
$Club=mysql_real_escape_string($_POST['Club']);
$Direccion=mysql_real_escape_string($_POST['Direccion']);
$CP=mysql_real_escape_string($_POST['CP']);
$Provincia=mysql_real_escape_string($_POST['Provincia']);
$E_mail=mysql_real_escape_string($_POST['E_mail']);
mysql_query("insert into datos(Nombre,E_mail,Apellidos,DNI,Edad,Localidad,Telefono,Club,Direccion,CP,Provincia) values('$Nombre','$Apellidos','$DNI','$Edad','$Localidad','$Telefono','$Club','$Direccion','$CP','$Provincia','$E_mail')");
}
Un par de comentarios:
1) Nunca, jamás de los jamases envides a un desconocido (por ejemplo yo) los datos de tu servidor de bases de datos (usuario, contraseña, host y nombre de base de datos).
2) El código es bastante pobre, no hay gestión de errores y era vulnerable a ataques de inyección SQL, échale un ojo a estos enlaces:
http://es2.php.net/manual/es/function.mysql-connect.php
http://es2.php.net/manual/es/function.mysql-real-escape-string.php
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
Muchísimas gracias por lo referente a la seguridad de datos, la verdad es que no tenía ni idea... he subido el fichero php y ya están los datos en mi BD! Fantástico.
Verás ahora he pensado, de que una vez los datos introducidos exitosamente me salte una página diciéndome "Registro realizado con éxito" para que la persona tenga una cierta seguridad de que se ha grabado el dato. He buscado información por la red, y parece que la función header lo hace, he vuelto a poner en el mismo enlace formulario3.rar http://dientesdeperro.comli.com/formulario3.rar
La función header pero me da un error del tipo: Parse error: syntax error, unexpected ':' in /home/a8340965/public_html/formulario3.php on line 34
Si quieres, como la pregunta se está volviendo más bien extensa, podemos cerrar está y abrir una nueva...
Mil gracias.
Tienes un problema con la codificación de las comillas en la función header, seguramente hayas copiado y pegado la función y no tuviera las comillas adecuadas.
Te sugiero que borres completamente la línea:
header("Location: http://www.dientesdeperro.tk/");
Y la vueltas a escribir a mano.
Un saludo :)
P.D.: Para las siguientes preguntas si te pediría que abrieses una nueva, más que nada por mantenerlas organizadas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas