Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Undefinied index

Estas en el tema de Undefinied index en el foro de PHP en Foros del Web. Buenas a todos, tengo un problema que me tiene loco literalmente. Intento insertar datos en una base de datos a través de un formulario, una ...
  #1 (permalink)  
Antiguo 15/02/2013, 08:53
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 2 meses
Puntos: 0
Información Undefinied index

Buenas a todos, tengo un problema que me tiene loco literalmente.
Intento insertar datos en una base de datos a través de un formulario, una cosa simple.

este es el formulario:

<html>
<head>
<title>in </title>
</head>
<body>
<form action="gins.php" method="post" enctype="text/plain">
Introduzca Nombre :<input type="text" name="nombre"> <br>
Introduzca Mail :<input type="text" name="mail"> <br>
Introduzca Clave :<input type="password" name="clave"><br>
<input type="submit" value="Registrar">
</body>
</html>

y este es el archivo gins.php que gestiona la inserción en la tabla :

<html>
<head>
<title>gin</title>
</head>
<body>
<?php
$conexion=mysql_connect("localhost","root","micont raseña") or die("problema de conexión");
mysql_select_db("base1",$conexion) or die ("no se puede conectar con la base de datos");
mysql_query("insert into fan(nombre,mail,clave)
values
('$_REQUEST[nombre]','$_REQUEST[mail]','$_REQUEST[clave]')",$conexion)
or die("Problemas en el select:".mysql_error());
mysql_close($conexion);
echo "has sido dado de alta correctamente";

?>
</body>
</html>

la base de datos es base1 y la tabla se llama fan y tiene campos:

-codigo int a.i primmary key
-nombre varchar 60
-mail varchar 60
-clave varchar 60.

el caso es que cuando lo hice por primera vez, me cargaba datos sin problemas, pero decidí borrar la base de datos y crear otra, se llama igual, y la tabla es nueva y se llama igual.

ahora cuando0 ejecuto la inserción no me carga los datos porque me da error undefinied index :

( ! ) SCREAM: Error suppression ignored for
( ! ) Notice: Undefined index: nombre in C:\wamp\www\gins.php on line 11
y así con mail y clave.

he puesto la clausula if en gins.php para que no me cargue valores vacíos si los campos están vacíos.

if( !empty($_REQUEST['nombre']...etc etc
else { echo "hay campos que no s ehan rellenado"}

y , efectivamente, me sale el mensaje de error que he creado yo para que no me cargue datos vacíos diciendome que hay campos que llegan vacíos.

¿qué pasa?¿por qué llegan vacíos? y, lo más sorprendente, ¿por qué antes , este mismo codigo funcionaba y ahora no?

espero sus respuestas y les agradezco su tiempo.

Un saludo
  #2 (permalink)  
Antiguo 15/02/2013, 09:04
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Undefinied index

Primero: Bienvenido a FDW.

Segundo: Por favor usa el Highlight para mostrar tu código, queda más legible.

Tercero: Usa $_POST en lugar de $_REQUEST y, si aún así no llegan las variables, revisa el contendi de $_POST con var_dump($_POST);

Cuarto: Todos los índices no numéricos deben estar entre comillas (dobles o sencillas), en tu caso, deberías hacer algo como esto: "... VALUES ('{$_POST['nombre']}', ..."
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 15/02/2013, 10:27
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Undefinied index

Buenas.
he probado con $_POST y ha poner las llaves como has sugerido pero las variables siguen llegandome vacías.

no entiendo bien como usar var_DUMP pero, si lo pongo al inicio de php var_dump($_post);
el error que me tira es este:

Código PHP:
Ver original
  1. array(0) { }
  2. Notice: Undefined index: nombre in C:\xampp\htdocs\gins.php on line 12
  3.  
  4. Notice: Undefined index: mail in C:\xampp\htdocs\gins.php on line 12
  5.  
  6. Notice: Undefined index: clave in C:\xampp\htdocs\gins.php on line 12
  7. has sido dado de alta correctamente

la sintaxis es correcta, no entiendo por qué ahora no le llegan las variables, he

coloco de nuevo el codigo con el highligth.
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>in</title>
  4. </head>
  5. <body>
  6. <form action="gins.php" method="post" enctype="text/plain">
  7. Introduzca Nombre :<input type="text" name="nombre" > <br>
  8. Introduzca Mail   :<input type="text" name="mail"> <br>
  9. Introduzca Clave  :<input type="password" name="clave"><br>
  10. <input type="submit" value="Registrar">
  11. </body>
  12. </html>

y el gestor gins.php

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>gin</title>
  4. </head>
  5. <body>
  6. <?php
  7. var_dump($_POST);
  8. $conexion=mysql_connect("localhost","root","contraseña") or die("problema de conexión");
  9. mysql_select_db("base1",$conexion) or die ("no se puede conectar con la base de datos");
  10. mysql_query("insert into alumnos(nombre,mail,clave)
  11. values
  12. ('{$_POST['nombre']}','{$_POST['mail']}','{$_POST['clave']}')",$conexion)  
  13. or die("Problemas en el select:".mysql_error());
  14.     mysql_close($conexion);
  15.     echo "has sido dado de alta correctamente";
  16.    
  17.  
  18. ?>
  19. </body>
  20. </html>

QUIZÁ podría poner en el formulario value="$_POST['indice']" en cada caso ??.

GRACIAS POR SU TIEMPO
  #4 (permalink)  
Antiguo 15/02/2013, 10:41
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Undefinied index

Prueba quitándole el enctype al form

Código HTML:
Ver original
  1. <form action="gins.php" method="post" enctype="text/plain">

a

Código HTML:
Ver original
  1. <form action="gins.php" method="post">

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 15/02/2013, 10:56
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Undefinied index

SI!!!!
muchas gracias!!! llevaba 3 días dandole vueltas, había probado todo, había probado a poner un if($_POST) para asegurarme de que le estaba iniciando...etc etc.

es exactamente el enctype, pero no sé por qué ¿podrías explicarmelo?

también quería darle las gracias al compañero que kme contestó por primera vez,gracias a el he aprendido más cosillas.

que alivio, llevaba 2 años sin estudiar php y ahora que estoy retomandolo llevaba 3 días.
  #6 (permalink)  
Antiguo 15/02/2013, 11:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Undefinied index

Cita:
es exactamente el enctype, pero no sé por qué ¿podrías explicarmelo?
Aquí la pregunta sería, ¿de dónde sacaste tú lo de poner el enctype así?

Es cierto que sirve, pero un formulario normal no lo requiere, en el caso de subir archivos debes especificar un enctype distinto de ley.

Lo único que provoca es la manera en la que se envía la información al servidor, el enctype que usabas anulaba el formato que necesita PHP para poder popular las variables.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 15/02/2013, 11:06
jcd
 
Fecha de Ingreso: febrero-2013
Mensajes: 77
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Undefinied index

gracias.

jaja, pongo el enctype para jugar a saber más de lo que sé, lo tendré en cuenta.
  #8 (permalink)  
Antiguo 15/02/2013, 11:07
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Undefinied index

Cita:
Iniciado por pateketrueke Ver Mensaje
Aquí la pregunta sería, ¿de dónde sacaste tú lo de poner el enctype así?
En muchos sitios de Internet dicen que hay que poner el enctype de esa manera:

Cita:
La forma puede ser de varios tipos, aunque el más común es que la información se envíe como texto plano (enctype="text/plain").
fuente

jcd como dice nuestro colega en un formulario normal no lo requiere, pero si por ejemplo necesitas subir archivos al servidor ese tipo de formulario si llevaría un enctype="multipart/form-data"
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #9 (permalink)  
Antiguo 15/02/2013, 11:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Undefinied index

Pues qué malas fuentes, te sugiero que mejor revises el manual oficial de PHP, eso y una referencia de HTML también. ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 15/02/2013, 11:27
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Undefinied index

Cita:
Iniciado por pateketrueke Ver Mensaje
Pues qué malas fuentes
La verdad es que si, luego uno queda como ah??

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #11 (permalink)  
Antiguo 15/02/2013, 11:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Undefinied index

Cita:
Iniciado por jonni09lo Ver Mensaje
La verdad es que si, luego uno queda como ah??

Saludos
Sobre todo las malas fuentes siempre son en español, ¿lo has notado?

Tenemos una mala cultura al respecto, y quienes escriben blogs del tema sólo lo hacen para cobrar ad-sense, eso de verdad es triste.

Sería genial iniciar una campaña en contra de todos estos sitios que siguen "enseñando" como hace 10 años, y lo peor, sin explicar ni enlazar referencias oficiales.

En fin, sueños, sólo sueños.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, html, index, mysql, select, sql, tabla
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 17:14.