SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: guillep en Jueves 14 de Abril de 2011, 21:57

Título: Error con Php y XML
Publicado por: guillep en Jueves 14 de Abril de 2011, 21:57
Hola Amigos estoy teniendo un problema con una sindicación me muestra el siguiente mensaje.
sindicacion.php

This page contains the following errors:
error on line 32 at column 64: PCDATA invalid Char value 3
Below is a rendering of the page up to the first error.

Por favor si alguien me puede dar una mano

Muestro como tengo los dos archivos:
sindicacion.php

Código PHP:
Código: PHP
  1. <?php header ('Content-type: text/xml; content="text/html; charset=iso-8859-1');
  2. echo ("<?xml version="1.0" encoding="iso-8859-1"?>");
  3. ?>
  4. <rss version="2.0">
  5. <channel>
  6. <title>Ofertas Laborales -  Mipagina .: Desarrollando :.</title>
  7. <link>web</link>
  8. <description>Ofertas Laborales / Version RSS</description>
  9. <language>es</language>
  10. <image>
  11. <title>Ofertas Laborales / Version RSS</title>n
  12. <url>/imgs/logo.jpg</url>
  13. <link>web</link>
  14. <description>Ofertas Laborales -  Mipagina .: Desarrollando :.</description>
  15. </image>
  16. <?php  
  17. mysql_connect ("localhost", "usuario", "pass")
  18. //mysql_connect ("localhost", "root", "pass")
  19.  or die ("Cannot connect to database server.");
  20.      mysql_select_db ("basededatos") or die ("Cannot connect to database.");
  21.  
  22. $resultado=mysql_query("SELECT * FROM pr_oferta where ofe_est='on' AND ofe_publicada='on' AND ofe_date_fin>date(now())  order by ofe_update desc limit 0,15");
  23. //$row=mysql_fetch_array($resultado);
  24.    
  25.    
  26.      while ($datos = mysql_fetch_array ($resultado)) {
  27.      ?>
  28. <item>
  29. <title><? echo $datos["ofe_nombre"];?></title>
  30. <link>
  31. miweb/detalle.php?i=<?php echo $datos["ofe_id"];?></link>
  32. <description><? echo substr($datos["ofe_desc"],0,2000)."";?></description>
  33. </item>
  34. <?
  35. }
  36.  
  37. ?>
  38. </channel>
  39. </rss>
  40.  
  41.  

Ahora el rss.xml

Código:
Código: PHP
  1. <?php header ('Content-type: text/xml; content="text/html; charset=iso-8859-1');
  2. echo ("<?xml version="1.0" encoding="iso-8859-1"?>");
  3. ?>
  4. <rss version="2.0">
  5.     <channel>
  6.         <title>Ofertas Laborales -  Mipagina .: Desarrollando :.</title>
  7. <link>web</link>
  8. <description>Ofertas Laborales / Version RSS</description>
  9. <language>es</language>
  10. <image>
  11. <title>Ofertas Laborales / Version RSS</title>n
  12. <url>webg</url>
  13. <link>web</link>
  14. <description>Ofertas Laborales -  Mipagina .: Desarrollando :.</description>
  15. </image><?php
  16. mysql_connect ("localhost", "user", "pass") or die ("Cannot connect to database server.");
  17.      mysql_select_db ("basededatos") or die ("Cannot connect to database.");
  18.  
  19. $resultado=mysql_query("SELECT * FROM pr_oferta where ofe_est='On' order by ofe_update desc limit 0,15");
  20.      while ($datos = mysql_fetch_array ($resultado)) {
  21.      ?>
  22.         <item>
  23.             <title><?php echo $datos["ofe_nombre"];?></title>
  24.             <description><?php echo substr($datos["ofe_desc"],0,300)."...";?></description>
  25.             <link>webl</link>
  26.             <pubDate></pubDate>
  27.         </item><?php
  28. }
  29. ?>
  30.     </channel>
  31. </rss>
  32.  
Título: Re: Error con Php y XML
Publicado por: shadow_rev en Viernes 15 de Abril de 2011, 16:05
Si no me equivoco, y el PHP está configurado con short_open_tag en off, el tag que abres para php en la línea 32 del archivo sindicacion.php es el que te genera el problema: lo tienes <? en vez de <?php.

:suerte:
Título: Re: Error con Php y XML
Publicado por: F_Tanori en Sábado 16 de Abril de 2011, 08:37
Bueno, el mensaje de error es de XML, no en PHP, la linea 32 de XML, lo que te comenta shadow_rev es frecuente que ocurra, o problemas similares y confusiones con

<?xml y <?php que llegan a  tener los scripts, creo que ayudaria mucho que nos mostraras el resultado XML es decir ya en el cliente (navegador; VER CODIGO FUENTE) para poder ver la estructura final del XML

Saludos
Título: Re: Error con Php y XML
Publicado por: guillep en Sábado 16 de Abril de 2011, 16:52
Lo que veo es que pongo la dirección en mi navegador del rss y pongo ver código y me muestra los datos del conexión a la base de datos. Como hago para que oculte esa parte?

Si pongo en el explorador en para ver sidicacion.php y pongo ver el codigo el codigo se corta justo donde hay un acento en la linea 14.
Al parecer es un error del charset, le cambie el charset a la tabla en la base de datos y al archivo y sigue igual.
Título: Re: Error con Php y XML
Publicado por: F_Tanori en Domingo 17 de Abril de 2011, 11:39
Cita de: "guillep"
Lo que veo es que pongo la dirección en mi navegador del rss y pongo ver código y me muestra los datos del conexión a la base de datos. Como hago para que oculte esa parte?

En el cliente? o donde ves eso? en la pagina o en en el fuente?

Cita de: "guillep"
Si pongo en el explorador en para ver sidicacion.php y pongo ver el codigo el codigo se corta justo donde hay un acento en la linea 14.
Al parecer es un error del charset, le cambie el charset a la tabla en la base de datos y al archivo y sigue igual.

Tienes que utilizar la codificacion UTF8 , al generar tu XML

http://www.php.net/manual/es/function.utf8-encode.php (http://www.php.net/manual/es/function.utf8-encode.php" onclick="window.open(this.href);return false;)

Saludos
Título: Re: Error con Php y XML
Publicado por: guillep en Lunes 18 de Abril de 2011, 21:24
Lo veo cuando visito en el navegador el archivo rss.xml si pongo para ver código de fuente desde el browser.

Hice lo siguiente pero sigo sin exito:
Corregí la base de datos cambiandole a todas las tablas el charset a utf8_unicode_ci
Corregí  los archivos rss.xml y sindicacion.php cambiandoles el charset a utf8.

Ambas acciones sin éxito!!
Título: Re: Error con Php y XML
Publicado por: F_Tanori en Martes 19 de Abril de 2011, 05:09
Haz probado esta configuracion?

Cabeceras de la salida, (codificacion que recibira el navegador)
Código: PHP
  1. header ('Content-type: text/xml; content="text/html; charset=UTF-8"')
  2.  

Como lo interpretara el XML (en su contenido)
Código: XML
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  

Despues codificar, la salida de los datos a escribir en el xml

Código: PHP
  1. ...
  2.      <item>
  3.       <title><?php utf8_encode($datos["ofe_nombre"]);?></title>
  4. ...
  5.  

Lo que te ha dicho shadow_rev es lo mas probable que sea la razon para que veas el codigo de php, ya que no se esta interpretando (cambiar <? por <?php)

Saludos
Título: Re: Error con Php y XML
Publicado por: guillep en Martes 19 de Abril de 2011, 05:59
Mañana lo pruebo!! le tengo mucha fé a este fix!!! Gracias
Título: Re: Error con Php y XML
Publicado por: guillep en Lunes 25 de Abril de 2011, 18:04
No hay caso amigos, no puedo hacerlo andar!!