dominios y alojamiento web en hostalia

Undefined variable or Undefined index

Me sale un error en PHP. ¿Qué significa? Notice: Undefined variable or Undefined index

La FAQ Undefined variable or Undefined index tiene

Pertenece a la categoría:

Pregunta
Me sale un error en PHP. ¿Qué significa?



Notice: Undefined variable or Undefined index


Respuesta de Miguel Angel Alvarez
Eso significa que estás intentando acceder a una variable o a un índice de un array que no existe.



No es exactamente un error, es un "notice" que es un nivel por debajo. Informa que algo no funcionó del todo bien, pero que no produjo un error o fallo del programa.



PHP se puede configurar para que muestre los notice o no en el php.ini

Complementar la respuestaComplementar la respuesta
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios
Fueron enviados 10 comentarios a la faq
7 comentarios no revisados
3 comentarios revisados:
Por: Pablin
17/10/2007
Generalmente esos "errores" no fatales para la aplicación suceden porque se hace una llamada a una variable la cual no ha sido inicializada, osea no contiene ningún valor tratable. Una solución posible a eso es o modificar el php.ini o una forma más prectica de hacerlo es poner una sentencia en la página en cuestión que obligue a no mostrar esos avisos. Eso se hace con "error_reporting()"
Pansandole valores como "E_ALL" la aplicación mostrará todos los problemas que contenga la misma, y con un "E_PARSE" solo mostraré errores relacionados a la sintaxis PHP. Porsupuesto que hay muchas valores posibles pero eso ya es cuestión de investigar un poquito.
Espero que sirva.
Saludos!
Para Miguel
12/8/2011
[quote]Miguel dijo: Hola, estoy desarrollando un sitio y tengo que utilizar una variable en otra pagina al hacer clic al boton del formulario. He revisado y todo esta correcto. Llevo 3 dias y no logro encontrar mi error.

//Esta es lo de la primera Pagina:
<html>
<head>
</head>
<?php $variable=49+18;?>
<?php echo $variable?>
<form action="variable.php?a=<?php echo $variable?>" method="POST">
<input type="text">
<input type="submit" value="ver">
</form>
<a href="variable.php?variable=<?php echo $variable ?>">Enviar variable<a>
<body>
</body>
</html>


//Este es codigo de la segunda pagina
<?php
$variable = $_POST['variable'];
echo $variable;
?>
[/quote]

Hola Miguel

Analizando por encima tu código, veo que presenta varios detalles los cuales te enumero a continuación:
1. Falta el signo ; luego de la variable $variable en la línea 5.
2. Falta el signo ; luego de la variable $variable en la línea 6.
3. Falta el signo ; luego de la variable $variable en la línea 10.
4. Al enviar la información del formulario lo haces a través del método POST, pero la técnica usada para leer la variable a través del Hypervículo es de tipo GET, es decir, la etiqueta INPUT de tipo TEXT que usas no posee una NAME, y el archivo variable.php lo que espera es recibir una variable llamada "variable" y que sea de tipo POST. En resúmen, para solventar este punto colócale nombre a tu INPUT de tipo TEXT, y el archivo variable.php deberá leer el nombre de esa variable que colocaste.
5. Ahora bien, sigues de todos modos teniendo un problema de estructuración lógica por razón de lectura de variables, es decir, el Hipervínculo estructurado que usas se comporta bajo variables de tipo GET (y genera como resultado $_GET[variable]), pero el archivo variable.php lo que va a leer es una variable de tipo POST (que genera como resultado $_POST[variable]) y entonces al usar el hipervínculo da el error:

Notice: Undefined index: var in [file_path]variable.php on line 2

Para solventar esto (sin analizarlo mucho) lo que te recomiendo es que normalices un sólo método (GET o POST), a priori te digo que uses GET, ya que usas manipulación de URL´s.

Quedando los código así:

//index.php:
//////////////
<html>
<head>
</head>
<body>
<?php
$variable=49+18;
echo $variable;
?>
<form action="variable.php?a=
<?php
echo $variable;
?>
" method="POST">
<input type="text" name="variable"><input type="submit" value="ver">
</form>
<a href="variable.php?variable=
<?php
echo $variable;
?>
">Enviar variable<a>
</body>
</html>


//Variable.php
////////////////
<?php
$variable = $_GET['variable'];
echo $variable;
?>

angel_z...
Problema con Undefined variable or Undefined index PHP+ADODB+MYSQL
24/10/2011
Buenas tardes la presente es para ver si me pueden ayudar con un código de php ya que apenas estoy empezando a desarrollar en este ambiente web.

Estoy haciendo un sistema de registro de correspondencia, ya le habilite las "sesiones" hasta los momentos me funcionan" el sistema lleva un contador unico 1 ,2 ,3...n para cada correspondencia recibida, a su vez el mismo contador se concatena con el año 12011, 22011, 32011...n20nn para realizar trabajos de oficina internos (ellos siempre lo han usado y desean seguirlos utilizando) logre hacer los contadortes para que se los muestre al usuario, lo que sucede es que cuando voy a guardar me da un mensaje

Notice: Undefined variable:ContadorReciente1 in /var/www/html/corres/insertar.php on line 36 Call Stack: 0.0004 364804 1. {main}() /var/www/html/corres/insertar.php:0 Notice: Undefined variable: ContadorRecienteAnio in /var/www/html/corres/insertar.php on line 36 Call Stack: 0.0004 364804 1. {main}() /var/www/html/corres/insertar.php:0 Problemas con la insersi&#65533;n en la Base de Datos

Les adjunto el código del archivo insertar.php

<?php
date_default_timezone_set('America/Caracas');
$anio = date("Y");
$fecha = date("d/m/Y");
$hora= date('H:i:s');
//iniciamos la sesión ||
session_start();
//if($_SESSION["autenticado"]!='SI'){
if(($_SESSION["autenticado"]!='SI')||($_SESSION["nivel"]!='1')){
echo "<script language='JavaScript'> alert('Usted no esta autorizado...');</script>";
header("Location: home.php");
} else {
$fechaGuardada = $_SESSION["ultimoAcceso"];
date_default_timezone_set('America/Caracas');
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));

//comparamos el tiempo transcurrido
if($tiempo_transcurrido >= 600) {
//si pasaron 10 minutos o más
session_destroy(); // destruyo la sesión
header("Location: home.php"); //envío al usuario a la pag. de autenticación
//sino, actualizo la fecha de la sesión
}else {
$_SESSION["ultimoAcceso"] = $ahora;
}
}

// hasta aca llegan las sesiones
if(isset($_POST["combo01"])){
include("./connection/connection.php");
$tabla="cor";
//////// PRUEBAS
//$sql="INSERT INTO ".$tabla."(cod,codyear,remitente,destinatario,n_oficio,contenido,n_tlf,fecha,hora,user,observacion) VALUES ('".$ContadorReciente1."','".$_POST["XXXX"]."','".$_POST["b0"]."','".$_POST["b1"]."','".$_POST["b2"]."')";
//$sql="INSERT INTO ".$tabla."(cod,codyear,destinatario,remitente,n_oficio,contenido,n_tlf,fecha,hora,user,observacion) VALUES ('".$ContadorReciente1."','".$ContadorRecienteAnio."','".$_POST["combo01"]."','".$_POST["b1"]."','".$_POST["b2"]."','".$_POST["b3"]."','".$_POST["b4"]."','".$fecha."','".$hora."','".$_SESSION["usuario_entrada"]."')"; $db->Execute($sql) or die("Problemas con la insersión en la Base de Datos");
//$sql="INSERT INTO ".$tabla."(cod,codyear,destinatario,remitente,n_oficio,contenido,n_tlf,fecha,hora,user,observacion) VALUES ('".$ContadorReciente1."','".$ContadorRecienteAnio."','".$_POST["combo01"]."','".$_POST["b1"]."','".$_POST["b2"]."','".$_POST["b3"]."','".$_POST["b4"]."','".$fecha."','".$hora."','".$_SESSION["usuario_entrada"]."')"; $db->Execute($sql) or die("Problemas con la insersión en la Base de Datos");
//////// PRUEBAS
$sql="INSERT INTO ".$tabla."(cod,codyear,destinatario,remitente,n_oficio,contenido,n_tlf,fecha,hora,user,observacion) VALUES ('".$ContadorReciente1."','".$ContadorRecienteAnio."','".$_POST["combo01"]."','".$_POST["b1"]."','".$_POST["b2"]."','".$_POST["b3"]."','".$_POST["b4"]."','".$fecha."','".$hora."','".$_SESSION["usuario_entrada"]."')"; $db->Execute($sql) or die("Problemas con la insersión en la Base de Datos");
echo ("Los datos fueron insertados exitosamente...");?>
<a href="javascript:history.back(1)">Anterior</a>
<?php
}else{?><center>

<table align="center" width="950" border="0">
<tr>

<td align="center"><?php echo "<font size='5' color='#000000'>Sistema de Control de Correspondencia</font> <font color='#0000CC'><b></b></font>";?></td>
<!--
Comentarios en Html
<td align="center"><?php echo "<font color='#000000'></font> <font color='#0000CC'><b>".$_SESSION["nombre_entrada"]." ".$_SESSION["apellido_entrada"]."</b></font>";?></td>
-->
<!--
<td align="left"><?php echo "<font color='#000000'>Usuario:</font> <font color='#0000CC'><b>".$_SESSION["usuario_entrada"]."</b></font>";?></td>
-->
<!--
<td align="left"><?php echo "<font color='#000000'>Fecha:</font> <font color='#0000CC'><b>".$fecha."</b></font>";?></td>
-->
<!--
<td align="left"><?php echo "<font color='#000000'>Hora:</font> <font color='#0000CC'><b>".$hora."</b></font>";?></td>
-->
<!--
<td align="right"><?php echo "<font color='#000000'>Nivel:</font> <font color='#0000CC'><b>".$_SESSION["nivel"]."</b></font>";?></td>
-->
</tr>
<tr>
<td align="center"><?php echo "<font color='#000000'>Fecha:</font> <font color='#0000CC'><b>".$fecha."</b></font>";?></td>
</tr>
<tr>


<td align="center"><?php echo "<font color='#000000'></font> <font color='#0000CC'><b>".$_SESSION["nombre_entrada"]." ".$_SESSION["apellido_entrada"]."</b></font>";?></td>
</tr>
</table>

<?php
include("./connection/connection.php");
$tabla1="cor";
$campo1="cod";
//$sql1="SELECT * FROM ".$tabla1." WHERE ".$campo1."'";
$sql1="SELECT * FROM ".$tabla1." WHERE ".$campo1;
$rs1=$db->Execute($sql1) or die($rs1->ErrorMsg());
?> <br>


<?php

function contadores(){
global $ContadorProximo1, $ContadorReciente1Anio;


}
?>

<?php
$Contador1 = 0 ;
while (!$rs1->EOF) {
$Contador1++
?>
<?php print $rs1->fields['0']; ?>
<?php
print $ContadorGuardado1=$rs1->fields['0'];
$ContadorReciente1=$Contador1+$rs1->fields['0'];
$ContadorReciente1Anio=$ContadorReciente1&$anio;
?>
<td><?php //echo "El ultimo registro guardado es: " .$ContadorGuardado1; ?></td>
<td><?php //echo "El proximo registro a guardar es: " .$ContadorReciente1 ?></td>
<td><?php //echo "El codigo mas el año es: " .$ContadorRecienteAnio ?></td>
<td><?php //echo "Muslito"; ?></td>
<!-- <td><?php // echo "El codigo mas el año es: " .$ContadorRecienteAnio=$ContadorReciente1&$anio; ?></td>


<tr>
<?php $rs1->MoveNext(); // para pasar al siguiente registro si no se usa siempre a mostra el mismo registro
//$_GLOBALS['variable']
}
?>
<?php
If (isset($ContadorGuardado1)==0)
{$ContadorGuardado1=0;}
++$ContadorGuardado1;
echo "Actualmente hay 0 Registros guardados, se empezar&aacute con el registro N&uacutemero " .$ContadorGuardado1;
echo "<br>";
echo "<br>";
// echo "El proximo registro a guardar es: " .$ContadorRecienteAnio=$ContadorReciente1.$anio;
?>

<!--
<p align="center"> <?php echo "<font color='#000000'>Bienvenido:</font> <font color='#0000CC'><b>".$_SESSION["nombre_entrada"]." ".$_SESSION["apellido_entrada"]."</b></font>";?></p>
-->

<?php
//El resultado es impreso en pantalla, una línea por cada fila obtenida.
include("./connection/connection.php");
$i=0; //Este es el que me permite seleccionar el campo que deseo mostrar en la base de datos
$tabla2="destinatario";
$sql2="SELECT * FROM ".$tabla2;
$rs2=$db->Execute($sql2) or die($rs2->ErrorMsg());
//if ($result === false) die("failed");
while (!$rs2->EOF) {
// el for se utiliza solo para mostrar todo el contenido de la tabla de 0 a n, siendo 0 el primer campo de la tabla
//for ($i=0, $max=$rs2->FieldCount(); $i < $max; $i++)
//for ($i=0, $max=$rs2->FieldCount(); $i < $max; $i++)
print $rs2->fields[$i].' ';
$rs2->MoveNext();
print "<br>";
}

// ASI TAMBIEN RECORRE LA BD Y MUESTRA LA INFO
// $result = $db->Execute("SELECT * FROM destinatario");
// if ($result === false) die("failed");
// while (!$result->EOF) {
// for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)
// print $result->fields[$i].' ';
// $result->MoveNext();
// print "<br>n";
// }

?>

<form name="formulario1" action="./insertar.php" method="POST">
<br>
Destinatario: &nbsp <select name="combo01"> <option value="<?php
include("./connection/connection.php");
//$i=0;
$tabla3="destinatario";
$sql3="SELECT * FROM ".$tabla3;
$rs3=$db->Execute($sql3) or die($rs3->ErrorMsg());
//print $rs3->fields['0'].' '.$rs3->fields['0'].'<BR>';
print $rs3->fields['0'].' '.'<BR>';
print $rs3->GetMenu('combo01',null,false);
// Se puede dejar estas lineas comentadas y tambien muestra la lista desplegable
//while (!$rs3->EOF) {
//print $rs3->fields[$i].' ';
//print $rs3->GetMenu('combo1',null,false);
//$rs3->MoveNext();
//print "<br>";
//}
//Hasta aca //////////////////////////
?>"></option>
</select><br>
Remitente: &nbsp <input name="b1"><br>
N&uacutemero de Oficio: &nbsp <input name="b2"><br>
Contenido: &nbsp <input name="b3"><br>
N&uacutemero de Tel&eacutefono: &nbsp <input name="b4"><br>
Observacion: &nbsp <input name="b5"><br>
<input type="SUBMIT" value="insertar">
<a href="javascript:history.back(1)">Anterior</a>

</form>
<?php }?>

Volver al árbol de categoríasVolver al árbol de categorías

Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...