Foros del Web » Programando para Internet » PHP »

Error con código en localhost (Notice: Undefined offset: 0 in...)

Estas en el tema de Error con código en localhost (Notice: Undefined offset: 0 in...) en el foro de PHP en Foros del Web. Hola, tengo un problema con mi código en localhost, uso wampserver. El error es el siguiente: Cita: Notice: Undefined offset: 0 in C:\wamp\www\Test.php on line ...
  #1 (permalink)  
Antiguo 02/12/2012, 17:25
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Exclamación Error con código en localhost (Notice: Undefined offset: 0 in...)

Hola, tengo un problema con mi código en localhost, uso wampserver.

El error es el siguiente:

Cita:
Notice: Undefined offset: 0 in C:\wamp\www\Test.php on line 74
Y me marca:
Cita:
Error, falló la inserción de datos
En la linea 74 tengo:

Código PHP:
preg_match_all("(<title>(.*)<\/title>)siU"$html$title);
$metas get_meta_tags($url1);
/* Linea 74 */ $title $title[1][0];
$titulo html_entity_decode("$title"ENT_QUOTES'UTF-8');
$descripcion = isset($metas["description"])?$metas["description"] : '';
$keywords = isset($metas["keywords"])?$metas["keywords"] : ''
Saben como se podría solucionar??

Saludos y gracias!

PD: Estaba intentando extraer contenido de un artículo de wikipedia
  #2 (permalink)  
Antiguo 02/12/2012, 17:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Le faltan delimitadores a tu expresión regular. Además, conviene verificar con un if si obtuviste alguna coincidencia con el patrón.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/12/2012, 17:57
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Si utilizo un if:

Cita:
if ($prof >= 1) {
Cómo puedo cerrarlo?, trato de no usar expresiones regulares porque no las entiendo jaja, creo que es la única en todo el código.

Saludos!
  #4 (permalink)  
Antiguo 02/12/2012, 18:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Me refiero a este patrón:
Código PHP:
Ver original
  1. preg_match_all("(<title>(.*)<\/title>)siU", $html, $title);
Le faltan los delimitadores:
Código PHP:
Ver original
  1. preg_match_all("#<title>(.*)<\/title>#siU", $html, $title);
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 02/12/2012, 19:28
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Hola, gracias por la respuesta, acabo de probar con los delimitadores, pero sigue marcando el mismo error.
  #6 (permalink)  
Antiguo 02/12/2012, 23:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

O sea, el patrón no está capturando nada. Revisa el contenido de $html, de $title, haz pruebas, luego nos comentas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 03/12/2012, 21:04
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Este es $html:

Código PHP:
Ver original
  1. $html = curl_exec($ch);

Y $title es el array que se crea con el preg_match_all:

Código PHP:
Ver original
  1. preg_match_all("#<title>(.*)<\/title>#siU", $html, $title);

Intente definirlo:

Código PHP:
Ver original
  1. $titulo = isset($title[1][0]) ? $title[1][0] : "";

Pero sigue con el mismo error.

Y si solo utilizo $title[1], el error desaparece pero marca Falló la inserción de datos, este es el código de la función que guarda los datos:

Código MYSQL:
Ver original
  1. function storeLink($titulo, $descripcion, $url, $keywords) {
  2.     $query = "INSERT INTO webs (webTitulo, webDescripcion, weburl, webkeywords) VALUES ('$titulo', '$descripcion', '$url', '$keywords')";
  3.     mysql_query($query) or die('Error, falló la inserción de datos');
  4. }
  #8 (permalink)  
Antiguo 03/12/2012, 21:08
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Imprime el valor de las variables, a eso me refería. También, usa mysql_error para saber por qué falla la consulta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 03/12/2012, 21:13
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Array ( [0] => Documento sin título ) Array ( ) Error, falló la inserción de datos

Utilize una página de prubea, tiene el titulo predeterminado "Documento sin título"

Si imprimo $html me muestra la página descargada
  #10 (permalink)  
Antiguo 04/12/2012, 19:41
Avatar de xarmagedonx  
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Error con código en localhost (Notice: Undefined offset: 0 in...)

Hola!!!!!!!, encontre el problema y lo logré solucionar, aca estaba el error:

Código MySQL:
Ver original
  1. mysql_query($query) OR die('Error, falló la inserción de datos');

elimine todo eso, y coloqué directamente el mysql_query sin ninguna variable de por medio.

Gracias por la ayuda David!!

Etiquetas: html, localhost, notice, offset, 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 16:07.