Hola a todos!!!
Tengo el siguiente problema. Hago un while de un array (while($var[$i])) y me sale el siguiente error:
Warning: Undefined offset: 2
Revisé el array y está bien.
Gracias.
| |||
Undefined offset: 2 Hola a todos!!! Tengo el siguiente problema. Hago un while de un array (while($var[$i])) y me sale el siguiente error: Warning: Undefined offset: 2 Revisé el array y está bien. Gracias. |
| |||
Re: Undefined offset: 2 Bueno, esto es basicamente mi script: $correos=explode("|",$mails); $i=0; while($correos[$i]){ mail($correos, $asunto, $tema); $i++; } Supongo que mi problema estará en el explode. Lo que pasa es que como no pude enviar un array de un php a otro (si alguien conoce la forma de hacerlo se lo agradecería). Entonces lo que hice fue convertir la variable $mails -que era un array- en un string (con implode y "|" como separador), lo envie por medio de un formulario y despues la volvi a convertir en array con el explode y el "|". La consecuencia es como te decia el siguiente error: Warning: Undefined offset: 2 (este error me aparece en la linea del while). Gracias y saludos. |
| |||
Re: Undefined offset: 2 Una forma comoda de tratar tu problema es usando la funcion serialize de la siguiente forma: <pre> <? $strCorreos = serialize($mails); $codCorreos = urlencode($strCorreos); // // Envias a travez de Form $codCorreos // ?> </pre> En el otro script solo necesitas desearializar la variable $codCorreos y usarla: <pre> <? $mails = unserialize($codCorreos); foreach($mails as $send) { mail($send,$asunto,$tema); } ?> </pre> Saludos. |
| ||||
Re: Undefined offset: 2 hchiesa, tu error está en la manera que recorres lso datos del correo... primero analicemos lo que estás haciendo y segundo, te presento una solución mejor: 1) tu script $correos=explode("|",$mails); $i=0; while($correos[$i]){ mail($correos, $asunto, $tema); $i++; } Supongamos que en $correos vienen 2 direcciones de email solas, no? Bueno, en el explode, conseguimos un array de 2 posiciones (0 y 1). Cuando entramos al While, la primera vez, $correos[0] existe, entonces mandamos el mail y sumamos 1 a $i. Volvemos al While y $correos[1] también existe, entonces tambien mandamos el mail. Volvemos a sumar 1 a $i y cuando intentas acceder a $correos[2], entonces salta error, porque no existe. Ahi está el error. 2) Hay infinidad de maneras de recorrer un array y hacer cosas con cada elemento, te presento la que yo utilizo y más me gusta por ser un acercamiento a la programación orientada a objetos: $correos=explode("|",$mails); foreach ($correos as $mail) { mail($mail, $asunto, $tema); } Y listo, foreach recorre todos los elementos del array y le asigna el valor temporalmente a la variable $mail. Luego, dentro del bloque del foreach, con esa variable puedes hacer lo que quieras. Saludos. <hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio) <font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo |