Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ERROR con fopen()

Estas en el tema de ERROR con fopen() en el foro de PHP en Foros del Web. hola buenas, estoy creando una web en la que se genere un fichero XML con la info de una base de datos. EL problema básicamente ...
  #1 (permalink)  
Antiguo 08/11/2013, 05:55
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
ERROR con fopen()

hola buenas, estoy creando una web en la que se genere un fichero XML con la info de una base de datos. EL problema básicamente es que en local me funciona estupendamente pero al ejecurtalo en el hosting (hostinger.es) me da error el código donde salta el error es este:

Código PHP:
    //se abre el fichero
    $fp = fopen("$fecha.xml","a");
    fwrite($fp, '<?xml version="1.0"?>' . PHP_EOL);
    fwrite($fp, "<piedra>" . PHP_EOL);
    
    foreach ($result as $valor) {
        $id=$valor[id];
        $nombre=$valor[nombre];
        $apellidos=$valor[apellidos];
        fwrite($fp, "\t <usuario>" . PHP_EOL);
        fwrite($fp, "\t\t <id>$id</id>" . PHP_EOL);
        fwrite($fp, "\t\t <nombre>$nombre</nombre>" . PHP_EOL);
        fwrite($fp, "\t\t <apellidos>$apellidos</apellidos>" . PHP_EOL);
        fwrite($fp, "\t </usuario>" . PHP_EOL);
    }
    fwrite($fp, "</piedra>" . PHP_EOL);
    fclose($fp);
en local me va bien, pero al ejecutar en hosting esto es lo que me aparece:

hola
' . PHP_EOL); fwrite($fp, "" . PHP_EOL); foreach ($result as $valor) { $id=$valor[id]; $nombre=$valor[nombre]; $apellidos=$valor[apellidos]; fwrite($fp, "\t " . PHP_EOL); fwrite($fp, "\t\t $id" . PHP_EOL); fwrite($fp, "\t\t $nombre" . PHP_EOL); fwrite($fp, "\t\t $apellidos" . PHP_EOL); fwrite($fp, "\t " . PHP_EOL); } fwrite($fp, "" . PHP_EOL); fclose($fp); echo "OK"; echo "
El nombre del fichero es: ".$fecha.".xml";?>Descargar

Otra cosa que puede resultar interesante... es que al establecer el nombre del fichero establecía la hora actual... al igual que antes, en local funcionaba perfectamente pero al ejecutar la pagina simplemente con el codigo este
Código PHP:
echo=date('d-m-Y_H-i'); 
la web quedaba en blando.. vamos que no lo coje...
  #2 (permalink)  
Antiguo 08/11/2013, 06:02
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 11 meses
Puntos: 24
Respuesta: ERROR con fopen()

El codigo prodia ser escrito de una mejor forma pero prueba asi
Código PHP:
Ver original
  1. <?php
  2.     //se abre el fichero
  3.     $fp = fopen("$fecha.xml","a");
  4.     fwrite($fp, '<?xml version=\"1.0\"?>' . PHP_EOL);
  5.     fwrite($fp, "<piedra>" . PHP_EOL);
  6.    
  7.     foreach ($result as $valor) {
  8.         $id=$valor[id];
  9.         $nombre=$valor[nombre];
  10.         $apellidos=$valor[apellidos];
  11.         fwrite($fp, "\t <usuario>" . PHP_EOL);
  12.         fwrite($fp, "\t\t <id>$id</id>" . PHP_EOL);
  13.         fwrite($fp, "\t\t <nombre>$nombre</nombre>" . PHP_EOL);
  14.         fwrite($fp, "\t\t <apellidos>$apellidos</apellidos>" . PHP_EOL);
  15.         fwrite($fp, "\t </usuario>" . PHP_EOL);
  16.     }
  17.     fwrite($fp, "</piedra>" . PHP_EOL);
  18.     fclose($fp);
  19. ?>
__________________
Mi emprendimiento: Software BRC
Youtube: Tutoriales de programación y electrónica.
  #3 (permalink)  
Antiguo 08/11/2013, 06:12
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: ERROR con fopen()

Seguía con lo mismo, aunque de momento eliminando la línea
fwrite($fp, '<?xml version="1.0"?>' . PHP_EOL);
ya no muestra el error... aunque no se crea el fichero en el servidor (en local va perfecto).
Con respecto a lo de la hora sabéis algo? muchas gracias.
  #4 (permalink)  
Antiguo 08/11/2013, 06:46
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 11 meses
Puntos: 24
Respuesta: ERROR con fopen()

puedes provar asi tambien.

Código PHP:
Ver original
  1. fwrite($fp, "<?xml version='1.0'?>" . PHP_EOL);
__________________
Mi emprendimiento: Software BRC
Youtube: Tutoriales de programación y electrónica.
  #5 (permalink)  
Antiguo 08/11/2013, 06:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ERROR con fopen()

<saludos>
Intenta con esto

Código PHP:
Ver original
  1. $fp = fopen('fecha.xml,'a');
Si con eso funciona, entonces luego cambiala por
Código PHP:
Ver original
  1. //asumiendo que $fecha tiene valor
  2. $fp = fopen($fecha.'.xml','a');
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #6 (permalink)  
Antiguo 08/11/2013, 07:00
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: ERROR con fopen()

Tiene toda la pinta de que están activadas las short tags en el servidor, o que se está confundiendo con el "?>" del fopen, y está decidiendo cerrar php en ese punto.
Prueba esto:
Código PHP:
Ver original
  1. fwrite($fp, "<"."?xml version='1.0'?".">" . PHP_EOL);

Lo que te está mostrando el hosting es código php no parseado
  #7 (permalink)  
Antiguo 12/11/2013, 03:30
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: ERROR con fopen()

Cita:
Iniciado por dashtrash Ver Mensaje
Tiene toda la pinta de que están activadas las short tags en el servidor, o que se está confundiendo con el "?>" del fopen, y está decidiendo cerrar php en ese punto.
Prueba esto:
Código PHP:
Ver original
  1. fwrite($fp, "<"."?xml version='1.0'?".">" . PHP_EOL);

Lo que te está mostrando el hosting es código php no parseado
Gracias eso me resuelve el problema en parte.. ya que ahora simplemente se queda la página en blanco (en el hosting, en mi server local si funciona)
  #8 (permalink)  
Antiguo 12/11/2013, 03:55
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: ERROR con fopen()

Ya he resuelto el problema.. no me pregunteis por qué... pero el fallo eran los comentarios!!!!

si escribía esto

// voy a saludar
echo "Hola":

me daba error... es raro porque esta página la tengo es Hostinger.es y ya había subido varias y sin ningún problema...

Así que nada.. he eliminado los comentarios hasta saber porque motivo fallaban.. si alguien sabe algo, agradezco la info
  #9 (permalink)  
Antiguo 13/11/2013, 09:01
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ERROR con fopen()

Cita:
Iniciado por kasmo Ver Mensaje
Ya he resuelto el problema.. no me pregunteis por qué... pero el fallo eran los comentarios!!!!

si escribía esto

// voy a saludar
echo "Hola":

me daba error... es raro porque esta página la tengo es Hostinger.es y ya había subido varias y sin ningún problema...

Así que nada.. he eliminado los comentarios hasta saber porque motivo fallaban.. si alguien sabe algo, agradezco la info
<saludos>
Ehm, pues no creo que sean los comentarios, de ser así!! uf!! que duro!!!
Me suena más que sea que finalizas la línea del echo con dos puntos y no con punto y coma, prueba eso y nos cuentas, obviamente con los comentarios
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #10 (permalink)  
Antiguo 14/11/2013, 05:00
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
Respuesta: ERROR con fopen()

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludos>
Ehm, pues no creo que sean los comentarios, de ser así!! uf!! que duro!!!
Me suena más que sea que finalizas la línea del echo con dos puntos y no con punto y coma, prueba eso y nos cuentas, obviamente con los comentarios
</saludos>
Siento tardar en contestar pero ya está solucionado, el fallo se producía por comentarios, los ":" de este pequeño condigo escrito son un error pero lo he escrito sobre la marcha, en mi código PHP estaba bien escrito. Tras ponerme en contacto con Hostinger me han dicho que iba bien, que ellos han probado un código con comentarios y sí que funcionaba. Tras esto he creado un nuevo script (copiar y pegar realmente) y si me ha funcionado... un misterio vaya.. además el fichero original ya me funciona correctamente.. no se que ha podido causar el error este pero bueno ya funciona. Con respecto al fallo que sí tenia PHP, es la respuesta que antes comenté, al abrir el fichero parece que PHP cerraba el código donde no debía, cosa que ha quedado solucionada con la línea que me dijo el compañero.

Muchas gracias a todos.

Etiquetas: Ninguno
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 03:02.