elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  abrir, obtener datos , modificarlos , y crar nuevo archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: abrir, obtener datos , modificarlos , y crar nuevo archivo  (Leído 2,926 veces)
Pirat3net

Desconectado Desconectado

Mensajes: 270


Ver Perfil
abrir, obtener datos , modificarlos , y crar nuevo archivo
« en: 13 Mayo 2013, 17:05 pm »

bueno tengo un codigo complejo, que resulta un poco engorroso ponerlo todo aqui pero voy a intentar plantear la duda

tengo un codigo que lo que hace es abrir un .html con
fopen()
guarda el contenido en una variable
printeo la variable para ver si va bien
todo perfecto
modifico mi variable con el contenido
la printeo
perfecto tambien
cierro el documento con fclose
cierra perfecto
borro el documento con unlink()
perfecto el documento desaparece
y el fallo aparece cuando intento volver a crear un
documento html con el mismo nombre que el anterior,
uso exactamente el mismo fopen() para crearlo, pero que no hay manera,
no se que puede ser, si se necesita el codigo lo posteo, pero es larguillo


muchas gracias


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #1 en: 13 Mayo 2013, 17:32 pm »

Pon el código en pastebin y deja el link. Asegúrate de usar los parámetros del fopen indicados como w+ para reescribir el archivo y que si no existe... lo crea.

PD: Cuando pasan esas cosas, se suele poner el error que te da para que te podamos ayudar mejor ...

Saludos


En línea

Pirat3net

Desconectado Desconectado

Mensajes: 270


Ver Perfil
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #2 en: 13 Mayo 2013, 18:53 pm »

http://pastebin.com/Kq2FB71x

borre una pequeña parte del codigo para reducirlo un poco, lo que borre funciona perfecto y es irrelevante


aqui los mensajes que procesa $_SESSION['mensajeerror] y $_SESSION['mensaje exito para que veais lo que se ejecuta y no]

error escribiendo 2archivo
su modificacion ha sido enviada satisfactoriamente, gracias por colaborar con InsaneProgrammers.fichero de modificacion abierto correctamente
mensaje

todo el mensaje

finmensaje
En línea

Pirat3net

Desconectado Desconectado

Mensajes: 270


Ver Perfil
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #3 en: 13 Mayo 2013, 18:54 pm »

añadir que este codigo esta incluido mediante include()en otro codigo, sin embargo, el codigo padre funciona perfectamente
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #4 en: 13 Mayo 2013, 19:42 pm »

Estas cerrando $abrirHtml antes de escribir nada en el.

Lineas 45 a 52 del codigo que has dejado en pastebin.

Código
  1. $abrirHtml = fopen("../articulos/" . $idPost . ".php", "w+");
  2. if (!(fclose($abrirHtml))) {
  3.   $_SESSION['mensajeError'] .= "error cerrando fichero";
  4. }
  5. unlink("../articulos/" . $idPost . ".php");
  6. if($abrirHtml) {
  7.   $_SESSION['mensajeExito'] .= "fichero de modificacion abierto correctamente";
  8.   $arch = fwrite($abrirHtml , $nuevoarchivo);
  9. }

Si te fijas, cierras $abrirHtml y luego intentas escribir sobre el mismo handle. PHP debería retornarte un error del tipo:
Código:
Warning: fwrite(): 3 is not a valid stream resource

Saludos
En línea

Pirat3net

Desconectado Desconectado

Mensajes: 270


Ver Perfil
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #5 en: 13 Mayo 2013, 22:53 pm »

GRACIAS POR TU RESPUESTA!!

pero ahi esta el tema , como bien dices, cierro  $abrirHtm para poder borrarlo dos lineas mas abajo con unlink (esto lo hago porsiacaso no me deje borrarlo estando abierto)
el tema es que inmediatamente en la siguiente linea vuelvo a abrirlo en el
 if ($abrirHtml) {...
o acaso ahi no se abre???
 esta claro que no se abre porque me salta el error xD, lo que no se es que hago mal

PD: lo que hago es cerrar el archivo, borrarlo y crear un archivo con el mismo nombre con el nuevo contenido, simplemente porque no se abrir el archivo , dejarlo en blanco y reescribir lo que yo quiera xD, esto se puede hacer??


gracias
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: abrir, obtener datos , modificarlos , y crar nuevo archivo
« Respuesta #6 en: 13 Mayo 2013, 22:58 pm »

el tema es que inmediatamente en la siguiente linea vuelvo a abrirlo en el
 if ($abrirHtml) {...
o acaso ahi no se abre???
 esta claro que no se abre porque me salta el error xD, lo que no se es que hago mal

Lo que haces ahí, es comprobar si la variable esta declarada. No vuelves a abrir el archivo ni nada de eso. Para ello tienes que volver a ejecutar fopen... es mas, la variable $abrirHtml la sobre escribes con el estado de fclose...


Citar
PD: lo que hago es cerrar el archivo, borrarlo y crear un archivo con el mismo nombre con el nuevo contenido, simplemente porque no se abrir el archivo , dejarlo en blanco y reescribir lo que yo quiera xD, esto se puede hacer??

Con fopen y el atributo w+ es precisamente lo que haces. Abrir el archivo (exista o no) y reescribirlo todo dando igual lo que haya habido antes dentro.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines