Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

PHP OO Problema con "Notice: ..."

Estas en el tema de Problema con "Notice: ..." en el foro de Frameworks y PHP orientado a objetos en Foros del Web. He estado mejorando la seguridad dentro de mi sitio. Creé un método para verificar que el campo no esté vacío, y para que no lo ...
  #1 (permalink)  
Antiguo 24/03/2012, 16:37
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Pregunta Problema con "Notice: ..."

He estado mejorando la seguridad dentro de mi sitio. Creé un método para verificar que el campo no esté vacío, y para que no lo rellenen con espacios:

Código PHP:
Ver original
  1. class Funciones {
  2.  
  3.     public static function Vacio($valor) {
  4.     $valor = trim($valor);
  5.     $valor = str_replace(' ', '', $valor);
  6.     return (empty($valor) == true ? true : false);
  7.     }
  8. }

Luego lo uso en un archivo, en una variable:
Código PHP:
Ver original
  1. $responder = (Funciones::Vacio($_GET['responder']) == false ? (int) $_GET['responder'] : false);

El problema está en que me muestra un error a cada rato:
Cita:
Notice: Undefined index: responder in C:\xampp\htdocs\articulo.php on line 20
(La línea veinte es donde tengo la variable $responder)

¿Por qué me ocurre ésto? ¿Cómo lo podré solucionar?

Saludos.
  #2 (permalink)  
Antiguo 24/03/2012, 16:42
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Problema con "Notice: ..."

Prueba así amigo:

Código PHP:
$responder = (Funciones::Vacio($_GET['responder']) == false) ? (int) $_GET['responder'] : false
  #3 (permalink)  
Antiguo 24/03/2012, 16:45
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Problema con "Notice: ..."

Cita:
Iniciado por anarkes Ver Mensaje
Prueba así amigo:

Código PHP:
$responder = (Funciones::Vacio($_GET['responder']) == false) ? (int) $_GET['responder'] : false
Probé así (Aunque no sé cuál sería el cambio), y me sigue mostrando ese error.

Me faltó mencionar que ocupo XAMPP.
  #4 (permalink)  
Antiguo 24/03/2012, 17:23
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Problema con "Notice: ..."

Lo que cambie fue, para cerrar la condicion, ¿estas seguro que tu formulario se envia por metodo GET, y que existe el campo responder?

Para probar, podrias usar algo asi
Código PHP:
Ver original
  1. if(isset($_GET['responder'])){
  2.     $responder = (Funciones::Vacio($_GET['responder']) == false) ? (int) $_GET['responder'] : false;
  3. }else{
  4.         echo "No se ha enviado";
  5. }

Saludos.
  #5 (permalink)  
Antiguo 24/03/2012, 17:26
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Problema con "Notice: ..."

Obviamente, sino no lo colocaría así porque si. Se supone que esa variable se envía cuando estoy por reponder a un comentario, al declararse qué número de identificador es la respuesta, se muestra un texto X. El texto se muestra correctamente, pero lo que me preocupa es que aparezca el mensaje de "Notice: ...". Lo más raro es que cuando lo subo a un servidor de pago, el mensaje desaparece. Según tengo entendido, debe ser por una librería deshabilitada.
  #6 (permalink)  
Antiguo 24/03/2012, 17:34
 
Fecha de Ingreso: noviembre-2007
Ubicación: Etzatlan, Jalisco
Mensajes: 50
Antigüedad: 16 años, 5 meses
Puntos: 18
Respuesta: Problema con "Notice: ..."

Desaparece por que esta configurado para no mostrar las noticias. Creo que necesitas aprender a pedir y aceptar ayuda. Para que te lo desaparesca usa ISSET o usa

Código PHP:
Ver original
  1. error_reporting(!E_NOTICE);
y si quieres que te lo muestre en tu host de pago pon
Código PHP:
Ver original
  1. error_reporting(E_NOTICE);
  #7 (permalink)  
Antiguo 24/03/2012, 17:41
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Problema con "Notice: ..."

Perdona, es que soy así :P El código que me diste es equivalente a:
Código PHP:
Ver original
  1. ini_set('display_errors', 'ON');

Yo la tenía en ON, la cambié a OFF y se salieron las "Notice", pero creo que al ocultar eso, tampoco se mostrarán los errores de PHP (Como los Warning).

Saludos y gracias por tu ayuda.
  #8 (permalink)  
Antiguo 24/03/2012, 20:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con "Notice: ..."

El problema es que tienes un error, sí PHP te dice que tienes un indice no definido es por eso, al usar directamente la variable $_GET['responder'] si no existe el indice responder en la URL, por eso PHP te dice, lo que debes de hacer es comprobar que exista el indice, y luego pasarlo a tu función (usando isset). Por lo que la respuesta de anarkes es la correcta.

Saludos.
  #9 (permalink)  
Antiguo 29/03/2012, 19:27
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 15 años, 3 meses
Puntos: 7
Respuesta: Problema con "Notice: ..."

En fin, lo dejé así:
Código PHP:
Ver original
  1. $respuesta = (isset($_GET['respuesta']) == true) ? (Funciones::Vacio($_GET['respuesta']) == false) ? htmlentities($_GET['respuesta'], ENT_QUOTES, "UTF-8") : false : false;

Etiquetas: index, notice, php, 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 01:32.