Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/01/2004, 09:56
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Veamos, el texto ese no tiene nada que ver con el mensaje de error (explica como realizar una paginacion). Ese mensaje de error es el equivalente al del la variable no creada, solo que para indices de arrays. Por ejemplo, si tienes:
Código PHP:
$a=array(1,2,3);
echo 
$a[69]; // intentamos mostrar el elemento 69 
Obtenemos ese Notice, porque el elemento de indice 69 no existe.

En tu codigo lo que genera el error es la linea:
Código PHP:
list($local$domain) = explode ("@"$email); 
que equivale a:
Código PHP:
$temp=explode ("@"$email);
$local=$temp[0];
$domain=$temp[1]; 
El indice que te dice que no existe es el 1, el que corresponde al dominio. Se deduce que el explode ha devuelto un array de un solo elemento. Y explode solo devuelve un elemento si $email no contiene @.

En este caso lo mejor seria replantear la funcion. Hay por hay funciones que validan el email con una sola expresion regular, que incluye la @. O tambien podrias comprobar que existe una y solo una @ en la variable $email. asi a bote pronte se me ocurre:
Código PHP:
function valM($email)
{
if(!isset(
$email)){$email ''$local ''$domain '';}
// añadido
if ((''==$email) || (1!=substr_count($email,'@'))) return ''// supongo que la funcion devuelve '' cuando falla la validacion
// fin añadido
list($local$domain) = explode ("@"$email);
$pattern_local '^([0-9a-z]*([-|_]?[0-9a-z]+)*)(([-|_]?)\.([-|_]?)[0-9a-z]*([-|_]?[0-9a-z]+)+)*([-|_]?)$';
$pattern_domain '^([0-9a-z]+([-]?[0-9a-z]+)*)(([-]?)\.([-]?)[0-9a-z]*([-]?[0-9a-z]+)+)*\.[a-z]{2,4}$';

$match_local eregi($pattern_local$local);
$match_domain eregi($pattern_domain$domain);
if (
$match_local && $match_domain)
{
return 
$email;
}

Suerte (no he probado el codigo).
__________________
Josemi

Aprendiz de mucho, maestro de poco.