Foros del Web » Programando para Internet » PHP »

Eliminando E_NOTICES mediante buena programación.

Estas en el tema de Eliminando E_NOTICES mediante buena programación. en el foro de PHP en Foros del Web. Hola, he conseguido que mi aplicación me muestre solo los E_NOTICES de aquello que yo he programado. Ya he eliminado casi todos, pero faltan unos ...
  #1 (permalink)  
Antiguo 13/06/2007, 10:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 68
Antigüedad: 18 años, 8 meses
Puntos: 4
Eliminando E_NOTICES mediante buena programación.

Hola,

he conseguido que mi aplicación me muestre solo los E_NOTICES de aquello que yo he programado.

Ya he eliminado casi todos, pero faltan unos cuantos que no sé como hacer de la manera más correcta posible.

Voy a irlos poniendo poco a poco a ver si se le puede encontrar una buena forma de eliminarlos:

Código:
Notice: Undefined index: email in c:\appserv\www\emycms-0.4.0\includes\carrito.inc.php on line 4

Notice: Undefined index: name in c:\appserv\www\emycms-0.4.0\includes\carrito.inc.php on line 6

Notice: Undefined index: lastname in c:\appserv\www\emycms-0.4.0\includes\carrito.inc.php on line 7

.., etc etc,
Eso son los E_NOTICES.

- Este es el código de un formulario (de pedido) sin rellenar.
- Cuando se rellena no se generan los E_NOTICES. Los campos
se guardan en cookies.
- Si el usuario decide seguir comprando antes de confirmar el pedido
se le recuerdan los campos, que son recuperados de las cookies.
- El código funciona correctamente. Pero genera esos E_NOTICES

A continuación el código PHP:

Código PHP:
 <?php
   $email
=$_COOKIE['email'];
    
$order_id=$_COOKIE['ref']; //Identificador de pedido.
    
$name=fn_comillas_inteligentes ($_COOKIE['name']);
    
$lastname=fn_comillas_inteligentes ($_COOKIE['lastname']);
    
$address=fn_comillas_inteligentes ($_COOKIE['address']);
    
$cp=fn_comillas_inteligentes ($_COOKIE['cp']);
    
$city=fn_comillas_inteligentes ($_COOKIE['city']);
    
$province=fn_comillas_inteligentes ($_COOKIE['province']);
    
$country=fn_comillas_inteligentes ($_COOKIE['country']);
    
$phone=fn_comillas_inteligentes ($_COOKIE['phone']);
    
$nif=fn_comillas_inteligentes ($_COOKIE['nif']);
    
$ename=fn_comillas_inteligentes ($_COOKIE['ename']);
    
$elastname=fn_comillas_inteligentes ($_COOKIE['elastname']);
    
$eaddress=fn_comillas_inteligentes ($_COOKIE['eaddress']);
    
$ecp=fn_comillas_inteligentes ($_COOKIE['ecp']);
    
$ecity=fn_comillas_inteligentes ($_COOKIE['ecity']);
    
$eprovince=fn_comillas_inteligentes ($_COOKIE['eprovince']);
    
$ecountry=fn_comillas_inteligentes ($_COOKIE['ecountry']);
    
$ephone=fn_comillas_inteligentes ($_COOKIE['ephone']);
    
$enif=fn_comillas_inteligentes ($_COOKIE['enif']);
    
$observacion_cliente=fn_comillas_inteligentes ($_COOKIE['customer_observation']);
?>
La única solución que veo es:

Código PHP:
if (isset ($_COOKIE['name')) && isset ($_COOKIE['lastname') &&
    isset (
$_COOKIE['address']),  etc 

Pero me pregunto si hay otra solución mejor, quiero evitar pasar cada variable
por la función isset, ya que dicho código es adaptable según necesidades de cada cliente, y tendría que estar continuamente escribiendo los isset si se le añaden o eliminan campos al formulario.


Gracias.
  #2 (permalink)  
Antiguo 13/06/2007, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Eliminando E_NOTICES mediante buena programación.

Lamentablamente es la unica forma de probar si existe o no una variable y asi evitar el E_NOTICE.

Saludos.
  #3 (permalink)  
Antiguo 13/06/2007, 15:47
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: Eliminando E_NOTICES mediante buena programación.

Ya tenes la funciòn fn_comillas_inteligentes(), por lo que podès unificar todo ahì, agregando un:
Código PHP:
function fn_comillas_inteligentes( &$str ){
  
$str = isset($str)?$str:'';
  ...
  return 
$str;
 } 
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 14/06/2007, 08:24
 
Fecha de Ingreso: agosto-2005
Mensajes: 68
Antigüedad: 18 años, 8 meses
Puntos: 4
Re: Eliminando E_NOTICES mediante buena programación.

Cita:
Iniciado por nicolaspar Ver Mensaje
Ya tenes la funciòn fn_comillas_inteligentes(), por lo que podès unificar todo ahì, agregando un:
Código PHP:
function fn_comillas_inteligentes( &$str ){
  
$str = isset($str)?$str:'';
  ...
  return 
$str;
 } 
¡Que bueno!, es justo lo que estaba buscando.
Funciona perfectamente.

Gracias a ambos.

Seguiré poniendo algún que otro E_NOTICE rebelde.

Saludos.
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 23:29.