jueves, 11 de agosto de 2011

Cómo solucionar el error: "Notice: Undefined index: submit in..."

Antes trabajaba con el servidor appserv y con otro servidor con linux ... no me acuerdo la distribución, y no tenía problemas con mis aplicaciones web.
Después viendo que muchos usan el XAMPP, me animé a probarlo.

Una vez que ejecuté mis aplicaciones web, me salió el siguiente error:
Notice: Undefined index: checkboxname2 in C:\xampp\htdocs\foroXXXX\xxg#s&er_$o$r.php on line 848.

y en esa línea lo que tengo es:
php echo($_POST['apellido']);..."

La explicación es que para el servidor no se le ha enviado ningún valor antes, ya que, digamos, el botón submit, no ha sido presionado.

entonces, hay que agregarle un if y un isset, y el echo lo colocamos dentro de ese if:
php if(isset($_POST['apellido'])) {
echo $POST['apellido'];
} "

Listo. Solucionado.

Otro caso:
si tengo dos opciones a verificar como:
if($_POST['checkboxname2']=="ON" || $_POST['checkboxname']=="ON")

La solución es:
if(isset($_POST['checkboxname2'])=="ON" || isset($_POST['checkboxname'])=="ON")

Aquí te va otro ejemplo más completo que incluye el formulario y el procesamiento del mismo con PHP. Para fines didácticos, ambas partes del código pueden colocarse en un mismo archivo php o incluso ponerlo en práctica en cualquier simulador php en línea:

parte PHP:
Gracias por su preferencia

'; echo '

Confirmamos su información:

'; echo '
  • Nombre: '.$_POST['nombre'].'
'; } $nombre = $_POST['nombre']; //Otras maneras: $_REQUEST, $_SERVER['QUERY_STRING']; $email = $_POST['email']; $auto = $_POST['auto']; $sexo = $_POST['sexo']; $boletin = $_POST['boletin']; //$nombre = htmlentities($_POST['nombre']); if(isset($nombre)){ echo '

Nombre: '.$nombre.'

'; } //echo '

Nombre: '.$nombre.'

'; echo '

Nombre: '.$nombre.'

'; echo '

Correo: '.$email.'

'; echo '

Auto elegido: '.$auto.'

'; echo '

Sexo: '.$sexo.'

'; echo '

Boletin: '.$boletin.'

'; ?>

parte HTML (formulario):




Title of the document



Nombre:
Email:
Indique el auto que desea rentar: Sexo: Femenino Masculino
¿Desea recibir nuestro boletín semanal?

Para más detalles de este ejemplo, checa mi video acerca de este tema en Youtube:

---------------------------------
A propósito, esta información te puede ser útil. Si quieres poner tu sitio web, aquí hay un buen proveedor de hospedaje de páginas web bueno, bonito y barato.
Regístrate aquí: https://www.webfaction.com/?aid=45148

Servicio de hosting para PHP, WordPress, MySQL y más

14 comentarios:

Darwuis Navarro dijo...

no me soluciono...

me da este error:
Notice: Undefined index: d in C:\wamp\www\listado1.php on line 14
y en esta linea solo tengo esto

$d=$_POST['d'];

que mal tengo dias con ese error y e intentado mucho

pathros dijo...

Hola Darwuis.
Normalmente esto pasa porque PHP detecta que tu variable $d no tiene ningún valor inicial.
En este caso, lo que pasa es que $_POST['d'] no ha recibido o enviado ningún valor.
Entonces necesitas de la función isset(), la cual comprueba si la variable en cuestión contiene un valor inicial. Entonces, tu código debe quedar así:
if (isset($_POST['d'])===true)
{
$d=$_POST['d']
}

Con esto se quita el error de Undefined Index ...
Pero insisto, el problema viene de que tu variable $_POST['d'] no está recibiendo o enviando ningún valor.
Si no, intenta con $_GET['d'].
Saludos.

teresa kruspe dijo...

Muchas gracias ya andaba demaciado estresada por esos "errores" de verdad que tu explicacion fue muy detallada y al grano ja! me pase horas buscando respuesta para eso y hasta esta hora encoentre la tuya y se soliciono de inmediato. GRACIAS!!

Ricardo Gutierrez dijo...

tengo una line a de codigo de esta forma
$Guar->Kilometraje = $_POST['Kilometraje'];

y me manda el error de index in definido a la hora de dar clic en mi boton agregar.

Ricardo Gutierrez dijo...

tengo dos lineas de codigo de esta forma

$user->Kilometraje = $_POST['Kilometraje'];
$user->Fecha_Crea = $_POST['Fecha_Crea'];
y me dice que mis index estan indefinidos soy nuevo en esto ayuda
es POO....

pathros dijo...

@Ricardo Pues tal y como lo he explicado, te falta comprobar si el $_POST['variable'] existe con el isset().

El error te ha de salir porque en tu interfaz no mandaste ningún dato a 'Kilometraje' ni/o a 'Fecha_Crea'

poner

if(isset($_POST['Kilometraje'])){
$user->Kilometraje = $_POST['Kilometraje'];
}else{
//No se obtuvo ningún dato para $_POST['Kilometraje']
}
//... etc

Luis dijo...

Hola que tal .. yo tengo el errro de notice undefined..

Las lineas las tengo asi:

$Cedula= $_POST['Cedula'];
$Consulta= mysql_query("SELECT * FROM datos WHERE
Cedula='$Cedula'");

if (mysql_num_rows($Consulta)!=0){
?>

me podrias ayudar?

Luis dijo...

quiero destacar que uso wamppserver

pathros dijo...

Luis: tal y como se lo expliqué a Ricardo, debes comprobar si tu variable $POST['Cedula'] existe. Es decir,

if(isset($POST['Cedula']))
{
$cedula=$POST['cedula'];
}
else
{
//no se recibió el dato de cédula
}

Samano Cedillo dijo...

A mi me pasa igual. ya agregue el isset
mas no me toma los valores se quedan nulos.

en algunos reglones elimine el < esto por que el Blog no me dejaba publicarlo.

form metod="POST" action="new_user.php" id="Mostrar">

input type="text" id="T" name="txtTel" value="" placeholder="Telephony" require=""/>
input type="text" id="U" name="txtUsu" value="" placeholder="Name" require=""/>
input type="text" id="P" name="txtCel" value="" placeholder="Cell Phone" require="" />
div id="Error"> div>
input type="submit" name="btnOK" value="OK" />

form>

















y en otro archivo...





Alguien que me ayude. Gracias.

pathros dijo...

Si no te toma los valores pueden ser otras causas.
Por ejemplo, no sé si "method" lo escribiste bien o no (porque pusiste "metod")
ahora, para recibir las variables, éstas deben recibir el mismo nombre de "name" tal y como están escritas en tu formulario en la parte de input type:

Por ejemplo

if(iisset($_POST['txtTel']) && $_POST['txtTel']){
//Sí se recibió la variable
}else{
//No se recibió nada}

A ver checa todo eso y prueba ese código que te he escrito.

Sito Luque dijo...

hola buenas resulta que tengo varios formularios que insertan registros en la bd, el problema es que el primer formulario que hice de inserción me funciona perfectamente y me agrega los nuevos registros pero a la hora de hacer los otros formularios me sale este error"notice: undefined index" probe a hacer la comprobacion que dijiste más arriba y resulta que no me pilla los datos el formulario... te adjunto unos imagenes por si me podrias hechar una mano, el primer codigo es el que funciona:

p style="font-family:monospace;" style="font-size:300%;" style="color:black;">Guardado con exito
?>

y aqui el que no funciona (lo he modificado añadiendole la comprobacion que dijiste antes) no se pq no me recoje los datos de este formulario y del otro si...

<?php
require_once"conexion.php";

$id1 = $_POST["idProducto"];
if(isset($POST['idProducto']))
{
$id1=$POST['idProducto'];
}
else
{
echo"no se recibió el dato de id";
};
$id2 = $_POST["idProducto2"];
if(isset($POST['idProducto2']))
{
$id2=$POST['idProduto2'];
}
else
{
echo"no se recibió el dato de id2";
};
$tipo = $_POST["tipoProducto"];
if(isset($POST['tipoProducto']))
{
$tipo=$POST['tipoProducto'];
}
else
{
echo"no se recibió el dato de tipo";
};
$direccion = $_POST["direccionProducto"];
if(isset($POST['direccionProducto']))
{
$direccion=$POST['direccionProducto'];
}
else
{
echo"no se recibió el dato de direccion";
};
$provincia = $_POST["provinciaProducto"];
if(isset($POST['provinciaProducto']))
{
$provincia=$POST['provinciaProducto'];
}
else
{
echo"no se recibió el dato de provincia";
};

$insertar = mysqli_query($conexion,"INSERT INTO producto (idProducto,idProducto2,tipoProducto,direccionProducto,provinciaProducto) VALUES ('$id1','$id2','$tipo','$direccion','$provincia')");
if (!$insertar){echo "Error al guardar";}
<?

pathros dijo...

@Sito Luque:

Todo parece bien en tu código del lado de PHP. Quizás haya algo mal en la parte del formulario del HTML ¿Me puedes mostrar parte de tu código del formulario?

Si no, checa mi respuesta que te he hecho en video aquí:

https://youtu.be/eeeYUBybmiY

Beatriz Valencia dijo...

Me aparecen errores son de este tipo;

Notice: Undefined index: idE in C:\xampp\htdocs\sistemaH\agregar.php on line 5

se supone que mi sistema ya esta conectado a la base de datos

este es el codigo php : :( AYUDA!

 

Tags