Foros del Web » Programando para Internet » PHP »

Notice: Undefined index:

Estas en el tema de Notice: Undefined index: en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 16/03/2011, 18:49
 
Fecha de Ingreso: octubre-2006
Ubicación: Ciudad Ojeda, Venezuela
Mensajes: 123
Antigüedad: 17 años, 6 meses
Puntos: 0
Notice: Undefined index:

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 PHP:
<?php
    
//Start session
    
session_start();
    
    
//Include database connection details
    
require_once('../../../config/config.php');
    
    
//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(
'Failed to connect to server: ' 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['T1']);
$T2 clean($_POST['T2']);
$T3 clean($_POST['T3']);
$T4 clean($_POST['T4']);


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


    
//Check for duplicate login ID
    
if($Declara1 != '') {
        
$qry "SELECT * FROM iyc WHERE Declara1='$Declara1'";
        
$result mysql_query($qry);
        if(
$result) {
            if(
mysql_num_rows($result) > 0) {
                
$errmsg_arr[] = '<b>DECLARACIÓN YA REGISTRADA</b>';
                
$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['ERRMSG_ARR'] = $errmsg_arr;
        
session_write_close();
        
header("location: declara.php");
        exit();
    }

    
//Create INSERT query
$qry "INSERT INTO iyc (T1, T2, T3, T4 ) VALUES ('$T1','$T2','$T3','$T4')";
$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
  #2 (permalink)  
Antiguo 16/03/2011, 18:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Notice: Undefined index:

si en Appserv no te salía el mensaje de error no significaba que no cometieras algún error, simplemente no estaba a la vista...

y la razón es muy simple, debes comprobar el estado de tus variables siempre que vayas a utilizarlas, es una mala practica que lo hayas hecho sin saber... y sobre todo, que creas que estas bien...

Código PHP:
$foo = isset($_POST['foo']) ? $_POST['foo'] : NULL
con este simple ejercicio podemos asignar todas nuestras variables preguntando primero por su existencia, en caso de no existir usamos algún valor por defecto...

es una muy buena practica, y ojalá tomes bien el consejo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/03/2011, 20:11
 
Fecha de Ingreso: octubre-2006
Ubicación: Ciudad Ojeda, Venezuela
Mensajes: 123
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Notice: Undefined index:

Cita:
Iniciado por pateketrueke Ver Mensaje
si en Appserv no te salía el mensaje de error no significaba que no cometieras algún error, simplemente no estaba a la vista...

y la razón es muy simple, debes comprobar el estado de tus variables siempre que vayas a utilizarlas, es una mala practica que lo hayas hecho sin saber... y sobre todo, que creas que estas bien...

Código PHP:
$foo = isset($_POST['foo']) ? $_POST['foo'] : NULL
con este simple ejercicio podemos asignar todas nuestras variables preguntando primero por su existencia, en caso de no existir usamos algún valor por defecto...

es una muy buena practica, y ojalá tomes bien el consejo...
Graciasssssssssss me sirvió muchas gracias

Etiquetas: index, undefined
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 10:45.