Autor Tema: AVISO: Notice: Undefined index: (SOLUCIONADO)  (Leído 47489 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
AVISO: Notice: Undefined index: (SOLUCIONADO)
« : 16 de marzo de 2011, 08:16:20 pm »
Saludos de nuevo hace unos días cambio mi programa de servidor local, cambie de AppServ a Xampp para windows lo hice que este ultimo corre en ubuntu y bueno lo estoy probando y también para actualizarme en cuestión del apache, sql y php bien he estado provando los sistemas que he desarrollado y pues como cosa rara por cosas de actualización me han dado cierto errores la mayoría ya lo he corregido sin problemas pero tengo un problema en los sistema de registro por ejemplo tengo este código de registro:

tengo un sistema en donde tiene que seleccionar a través de un checkbox un trimestre

Trimestre 1
Trimestre 2
Trimestre 3
Trimestre 4

en la otra pagina esta el código de registro

Código: [Seleccionar]
<?php
//Start session
session_start();

//Include database connection details
require_once(&#39;../../../config/config.php&#39;);

//Array to store validation errors
$errmsg_arr = array();

//Validation error flag
$errflag false;

//Connect to mysql server
$link mysql_connect(DB_HOSTDB_USERDB_PASSWORD);
if(!$link) {
die(&#39;Failed to connect to server: &#39; . mysql_error());
}

//Select database
$db mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}

//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str stripslashes($str);
}
return mysql_real_escape_string($str);
}

//Sanitize the POST values

$T1 clean($_POST[&#39;T1&#39;]);
$T2 clean($_POST[&#39;T2&#39;]);
$T3 clean($_POST[&#39;T3&#39;]);
$T4 clean($_POST[&#39;T4&#39;]);


//Input Validations
if($total == &#39;&#39;) {
$errmsg_arr[] = &#39;FALTA CALCULOS&#39;;
$errflag true;
}
if($codigo1 == &#39;&#39;) {
$errmsg_arr[] = &#39;FALTA CODIGO DE ACTIVIDAD&#39;;
$errflag true;
}
    if(
$acti1 == &#39;&#39;) {
$errmsg_arr[] = &#39;FALTA ACTIVIDAD ECONOMICA&#39;;
$errflag true;
}
if($Declara1 == &#39;&#39;) {
$errmsg_arr[] = &#39;FALTA DECLARACIÓN&#39;;
$errflag true;
}


//Check for duplicate login ID
if($Declara1 != &#39;&#39;) {
$qry "SELECT * FROM iyc WHERE Declara1=&#39;$Declara1&#39;";
$result mysql_query($qry);
if($result) {
if(mysql_num_rows($result) > 0) {
$errmsg_arr[] = &#39;<b>DECLARACIÓN YA REGISTRADA</b>&#39;;
$errflag true;
}
@mysql_free_result($result);
}
else {
die("No hay conexion a la BD");
}
}

//If there are input validations, redirect back to the registration form
if($errflag) {
$_SESSION[&#39;ERRMSG_ARR&#39;] = $errmsg_arr;
session_write_close();
header("location: declara.php");
exit();
}

//Create INSERT query
$qry "INSERT INTO iyc (T1, T2, T3, T4 ) VALUES (&#39;$T1&#39;,&#39;$T2&#39;,&#39;$T3&#39;,&#39;$T4&#39;)";
$result = @mysql_query($qry); 
$last_id mysql_insert_id();

?>

la situación esta en que el sistema hace el registro en la BD a pesar del error, el problema esta que cuando solo selecciono uno o dos trimestre me sale el siguiente error:

Notice: Undefined index: T3 in C:\xampp\htdocs\sedemat\industriacomercio\declara\01\registro.php on line 62

Notice: Undefined index: T4 in C:\xampp\htdocs\sedemat\industriacomercio\declara\01\registro.php on line 63



la linea 62: $T3 = clean($_POST['T3']);

la linea 63: $T4 = clean($_POST['T4']);

 :'(

En la versión del Appeserver no me ocurría este error
« Última Modificación: 17 de marzo de 2011, 01:01:49 am por expecimen »

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:AVISO: Notice: Undefined index:
« Respuesta #1 : 17 de marzo de 2011, 01:01:20 am »
Ya consegui la solución:

debo cambiar:

$T3 = clean($_POST['T3']);

por

$T3 = isset($_POST['T3']) ? $_POST['T3'] : NULL;