elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  No entiendo este error
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No entiendo este error  (Leído 9,091 veces)
Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
No entiendo este error
« en: 6 Febrero 2012, 02:32 am »

Estoy practicando con PHP y MySql y tengo el siguiente error:

Código:
Se pudo conectar correctamente
Notice: Undefined index: nombre in C:\xampp\htdocs\practica2\operacionesBase.php on line 6

Notice: Undefined index: apellido in C:\xampp\htdocs\practica2\operacionesBase.php on line 7

Notice: Undefined index: edad in C:\xampp\htdocs\practica2\operacionesBase.php on line 8

Notice: Use of undefined constant ALTA - assumed 'ALTA' in C:\xampp\htdocs\practica2\operacionesBase.php on line 12

Este es el fuente de operacionesBase.php:

Código:
<?php

include ("conexion.php");

$idTemp=$_POST['id'];
$nombreTemp=$_POST['nombre'];
$apellidoTemp=$_POST['apellido'];
$edadTemp=$_POST['edad'];

switch($_POST['accion'])
{
case Alta:
     $query="insert into alumnos values ('$idTemp','$nombreTemp','$apellidoTemp','$edadTemp')";
     $result=mysql_query($query,$conexion) or die ("Fallo la alta");
     echo "La alta se produjo correctamente";


break;

}


?>

Y este es el codigo html que lo llama, me podrian indicar donde me estoy equivocando??

Código:
<html>
<title>Alta de alumno</title>

<body>
<form action='operacionesBase.php' method='POST'>
ID: <input type='text' name='id'><br>
NOMBRE: <input type='text' name='id'><br>
APELLIDO: <input type='text' name='id'><br>
EDAD: <input type='text' name='id'><br>
<input type='submit' name='accion' value='Alta'>

</form>
</body>


</html>

Gracias
Saludos


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.718



Ver Perfil WWW
Re: No entiendo este error
« Respuesta #1 en: 6 Febrero 2012, 02:44 am »

Hola,

Veras, estas llamando las variables $_POST[], sin asegurarte de si llevan información o están definidas.

Generalmente cuando PHP dice "undefined index", significa que la variable no esta definida y por tanto no la puede usar.

Para asegurarte, de que cada variable esta definida, puedes utilizar la función isset de PHP.

Un ejemplo seria:
Código
  1. <?php
  2. if(isset($_POST['nombre'])){
  3. echo 'Hola, '.$_POST['nombre'];
  4. } else {
  5. echo 'No has puesto tu nombre.';
  6. }
  7. ?>

Así, si el usuario ha enviado el $_POST['nombre'], aparecer "Hola, sunombre"  y sino le dara un error.


En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: No entiendo este error
« Respuesta #2 en: 6 Febrero 2012, 04:20 am »

Hola, gracias por contestar, dos cosas, como funciona esta funcion "_POST" exactamente? Como puedo definir la variable para no tener que usar iiset?

Ademas con "idTemp" no hay problemas, cuando ejecuto en el formulario con el boton antes tengo bien rrellenos todos los campos.

Gracias
« Última modificación: 6 Febrero 2012, 04:23 am por Xedrox » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.718



Ver Perfil WWW
Re: No entiendo este error
« Respuesta #3 en: 6 Febrero 2012, 05:05 am »

$_POST, es una función que obtiene la cabecera HTTP POST que envía tu navegador cuando rellenas y envías formularios con el "method="POST"".

No te recomiendo que definas la variable directamente y tampoco que ocultes los errores. Me refiero tu lo que quieres es evitar comprobar si las variables están vacías, pero no lo hagas!. Tu base de datos se va a llenar de *****.

Comprueba siempre que las variables que recibes están bien y están todas metidas.
De todos modos, si aun te quieres evitar comprobar si la variables esta definida o no, pon una @ (arroba) delante de cada $_POST.

Por ejemplo:
Código
  1. $idTemp=@$_POST['id'];
  2. $nombreTemp=@$_POST['nombre'];
  3. $apellidoTemp=@$_POST['apellido'];
  4. $edadTemp=@$_POST['edad'];
  5.  

Así ocultas el error, pero seguirán estando vacías si el usuario no completa el formulario.

El
Código
  1. case Alta:
Es
Código
  1. case "Alta":

Con comillas, ya sean simples o dobles.


Si te fijas en tu formulario, todos los input tienen el mismo nombre. Como esperas que PHP reciba un $_POST['nombre'] si lo que envias es solo ID ?

Código
  1. <title>Alta de alumno</title>
  2.  
  3. <form action='operacionesBase.php' method='POST'>
  4. ID: <input type='text' name='id'><br>
  5. NOMBRE: <input type='text' name='id'><br>
  6. APELLIDO: <input type='text' name='id'><br>
  7. EDAD: <input type='text' name='id'><br>
  8. <input type='submit' name='accion' value='Alta'>
  9.  
  10. </form>
  11. </body>
  12.  
  13.  
  14. </html>

Fíjate, todos tienen "name='id'"....

Saludos
« Última modificación: 6 Febrero 2012, 05:06 am por drvy | BSM » En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: No entiendo este error
« Respuesta #4 en: 6 Febrero 2012, 21:52 pm »

Ahahaha muchas gracias!

Te hago otra consulta, ahora esta fallando la "alta" en la base de datos, podrías decirme si hay algún error de sintaxis?

« Última modificación: 6 Febrero 2012, 21:56 pm por Xedrox » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no entiendo este error en asm con gcc, que puede estar mal?
Programación C/C++
Belial & Grimoire 2 2,105 Último mensaje 17 Mayo 2010, 11:33 am
por Foxy Rider
No entiendo este error al compilar :S
Programación C/C++
Destro- 2 1,732 Último mensaje 10 Noviembre 2011, 04:35 am
por Destro-
No entiendo este error de compilación
Programación C/C++
Noob_boy 5 1,381 Último mensaje 8 Enero 2016, 14:03 pm
por Noob_boy
No entiendo que quiere decir este error de compilación!!!!!
Programación C/C++
pablombf 1 822 Último mensaje 4 Enero 2018, 14:16 pm
por DoeJohn
No entiendo este error - Ayuda
Programación C/C++
Cero++ 5 735 Último mensaje 24 Diciembre 2018, 16:54 pm
por Cero++
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines