Foros del Web » Programando para Internet » PHP »

PHP Notice: Undefined index

Estas en el tema de PHP Notice: Undefined index en el foro de PHP en Foros del Web. Hola a todos, Me asalta una duda que no he conseguido resolver viendo en foros, libros, etc... Tengo un código fuente en PHP que arroja ...
  #1 (permalink)  
Antiguo 01/12/2008, 13:35
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 7 meses
Puntos: 1
PHP Notice: Undefined index

Hola a todos,

Me asalta una duda que no he conseguido resolver viendo en foros, libros, etc...

Tengo un código fuente en PHP que arroja el siguiente warning (el caso es que el programa funciona bien al hacer el login, realizar inserciones, etc.. pero como se podria evitar este error en el log de Apache 2.2):

PHP Notice: Undefined index (ESTE ES EL LOG DE APACHE)


[Mon Dec 01 20:28:47 2008] [error] [client 127.0.0.1] PHP Notice: Undefined index: nombre in C:\\Web\\php\\recogida_datos_formulario.php on line 26, referer: http://localhost/php/login.php
[Mon Dec 01 20:28:47 2008] [error] [client 127.0.0.1] PHP Notice: Undefined index: contrasenya in C:\\Web\\php\\recogida_datos_formulario.php on line 30, referer: http://localhost/php/login.php



Muchas Gracias.
  #2 (permalink)  
Antiguo 01/12/2008, 13:39
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: PHP Notice: Undefined index

Es un índice que no está definido.... probablemente intentas acceder a un elemento de un array que no existe (el elemento 11 de un array de tamaño 10, por ejemplo)

Pero claro, sin el código sólo se puede teorizar...
  #3 (permalink)  
Antiguo 02/12/2008, 02:50
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: PHP Notice: Undefined index

Mi código fuente es el siguiente en las lineas 34 y 38 es donde me da el Undefined Index. Muchas Gracias. Nota: no considereis como codigo lo que esta en negrita.

Código:
<form action="<?php echo(htmlentities($_SERVER['PHP_SELF'])); ?>" method="post" enctype="multipart/form-data" name="Insercion">

linea34 Nombre de Usuario: <input name="nombre_usuario" type="text" value="<?php echo htmlentities ($_GET["nombre"]);?>" size="15" maxlength="15" />

<br/><br/>

linea 38 Contrase&ntilde;a: <input name="contrasenya" type="password" value="<?php echo htmlentities($_GET["contraseña"]);?>" size="15" maxlength="15" />

<br/><br/>
 <center><input name="enviar_datos" type="submit" value="Enviar Nuevo Registro"/></center>
</form>
  #4 (permalink)  
Antiguo 02/12/2008, 04:41
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: PHP Notice: Undefined index

$_GET['nombre'] y $_GET['contraseña'] no existen. Supongo que te pasará cuando se accede a la página directamente sin llegar a través del formulario, en ese caso, no hay variables $_GET, así que es normal que te diga que los índices ('nombre' y 'contraseña') no están definidos.
  #5 (permalink)  
Antiguo 02/12/2008, 05:23
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: PHP Notice: Undefined index

Lo que intento hacer es mediante una tabla que me muestra los registros subirlos a los input de arriba para poder realizar inserciones, modificaciones y borrados en PHP. ¿Tendría que hacer algo aquí?:


Código:
   echo '<table align="center" border="2" bordercolor="#003366" cellspacinig="5">'; //Creamos tabla
	echo "<tr><th>ID_USUARIO</th><th>NOMBRE</th><th>CONTRASEÑA</th><th>SUBIR REGISTRO</th></tr>"; //Primera Fila de la Tabla

    while ($result_row = mysql_fetch_row(($resultado)))
      {
       echo "<tr><td>";
       echo htmlentities ($result_row[0]).'</td><td>';
       echo htmlentities ($result_row[1]).'</td><td>';
	   
	   //¡¡¡¡ BUENA IDEA: Ver la lista de una SELECT y uno de los registros hacerle un hipervinculo ¡¡¡¡¡
       echo '<a target="_blank" href="apellido.php?contraseña='.htmlentities ($result_row[2]).'"> CLIC PARA VER APELLIDO </a>'.'</td><td>';

	  echo '<center><a style="text-decoration:none" href="insertar2.php?nombre='.htmlentities($result_row[1]).'&'.'contraseña='.htmlentities($result_row[2]).'"> <img alt="Subir Registro Para Procesarlo" border="0" src="../php/recursos/subir.png" style="border:none"/> </a></td></tr></center>';

      }
	 
	 echo "</table>";  //Cerramos tabla

Última edición por superdober; 03/12/2008 a las 14:52
  #6 (permalink)  
Antiguo 03/12/2008, 14:53
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: PHP Notice: Undefined index

¿Alguien tiene alguna idea más? Estoy con este tema y no llego a ninguna conclusión, si alguien supiera darme alguna idea se lo agradecería. Gracias ¡¡¡
  #7 (permalink)  
Antiguo 03/12/2008, 15:26
Avatar de DarkRing  
Fecha de Ingreso: marzo-2008
Mensajes: 95
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: PHP Notice: Undefined index

ese es el codigo completo ?

porque no entiendo de donde vienen las variables $_GET['nombre'] y $_GET['contraseña']
  #8 (permalink)  
Antiguo 03/12/2008, 17:04
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 9 meses
Puntos: 35
Respuesta: PHP Notice: Undefined index

Es simple, $_GET es un arreglo de las variables pasadas por la URL y tu estas llamando a los indices 'nombre' y 'contrasenya', los cuales si no estan definidos tiran ese notice.

La forma de corregirlo es verificando si estas variables existen, y esto lo haces con isset. Básicamente sería algo asi:

Código php:
Ver original
  1. $nombre = isset($_GET['nombre']) ? $_GET['nombre'] : null ;

Aqui lo que haces es decir: Si $_GET['nombre'] existe, entonces su valor se lo asignamos a $nombre. En caso contrario le asignamos un valor nulo.

Luego sería cosa de cambiar donde usas $_GET['nombre'] por $nombre.

PD. Esa manera en que estas haciendo de pasar cosas como contraseñas por url no es muy.. ehm.. buena
__________________
Sin Ideas
  #9 (permalink)  
Antiguo 27/12/2008, 09:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 7 meses
Puntos: 1
Respuesta: PHP Notice: Undefined index

Muchas gracias con la ultima explicacion ha funcionado perfectamente y no sale el error antes mencionado.

Gracias ¡¡¡
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 06:44.