Problemas con editor de archivos en php

Mensajes
497
Puntuación de reacción
1
hola chicos llevo días buscando un editor de archivo .html , mi idea es hacer un blog sin base de datos

encontré este código para editar archivos en php, funciona bien en el servidor local de mi pc, pero en el hosting modifica los link y no se por qué

les dejo el codigo

<?php if(!isset($_SESSION)){ session_start(); }
// comprobamos si el formulario
// ha sido enviado correctamente
if(isset($_POST['abrir']) && $_POST['abrir'] == 'Abrir archivo')
{ if (!empty($_POST['archivo'])){ $archivo = $_POST['archivo'];
// creamos la variable de sesion
$_SESSION['archivo'] = $archivo;
// comprobamos que existe el archivo
if (!file_exists($archivo) && !is_file($archivo)){ $msg = "El archivo no existe"; }
else { if($archivo){
// mediante file_get_contents
// mostramos el contenido del archivo en forma de cadena
$codigo = htmlentities(file_get_contents($archivo)); } $msg = "La ruta del archivo es <b>$archivo</b>"; } } else { $msg = "Debe introducir la diraccion del archivo a editar"; } }
// vamos a editar el archivo
if(isset($_POST['editar']) && $_POST['editar'] == 'Editar archivo'){ $archivo = $_SESSION['archivo']; $archivo_editado = $_POST['archivo_editado'];
// comprobamos si podemos escribir en el
if(is_writable($archivo)){ if(!$gestor = fopen($archivo, 'w')){ $msg = "No se puede abrir el archivo <b>$archivo</b>"; exit; }
// escribimos en el archivo
// el contenido de $archivo_editado
if(fwrite($gestor, html_entity_decode($archivo_editado)) === false){ $msg = "No se puede escribir en el archivo $archivo"; }
// Exito...!
$msg = "El archivo <b>$archivo</b> se edito con exito"; if($archivo){
// otra vez mostramos el contenido del archivo
$codigo = htmlentities(file_get_contents($archivo)); } fclose($gestor); }else{ $msg = "No se peude escribir en el archivo <b>$archivo</b>"; } }
// guardamos el archivo
// y destruimos todas las variables
if(isset($_POST['guardar']) && $_POST['guardar'] == 'Guardar'){ unset($archivo); unset($_SESSION['archivo']); } ?> <!-- el formulario --> <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST"> <p>URL: <input type="text" name="archivo" value="" size="50" /> <input type="submit" name="abrir" value="Abrir archivo" /></p> <?php echo "<p>".$msg."</p>"; ?> <textarea name="archivo_editado" rows="25" cols="100"> <?php
// mostramos el codigo
// o el texto del archivo a editar
echo $codigo; ?> </textarea> <p> <input type="submit" name="editar" value="Editar archivo" /> <input type="submit" name="guardar" value="Guardar" /> <input type="reset" value="Restablecer" /> </p> </form>
Algunas anotaciones y fuente

por ejemplo quiero guardar esto
<img src="https://marielaingrid.files.wordpress.com/2014/06/chrome-firefox-internet-explorer1.jpg" />

me lo guarda asi

HTML:
 <img src=\"https://marielaingrid.files.wordpress.com/2014/06/chrome-firefox-internet-explorer1.jpg\" />

me pone \ al principio y al final de la url

espero que me puedan ayudar gracias de antemano
 
Última edición:
Mensajes
235
Puntuación de reacción
0
hola chicos llevo días buscando un editor de archivo .html , mi idea es hacer un blog sin base de datos

encontré este código para editar archivos en php, funciona bien en el servidor local de mi pc, pero en el hosting modifica los link y no se por qué

les dejo el codigo

<?php if(!isset($_SESSION)){ session_start(); }
// comprobamos si el formulario
// ha sido enviado correctamente
if(isset($_POST['abrir']) && $_POST['abrir'] == 'Abrir archivo')
{ if (!empty($_POST['archivo'])){ $archivo = $_POST['archivo'];
// creamos la variable de sesion
$_SESSION['archivo'] = $archivo;
// comprobamos que existe el archivo
if (!file_exists($archivo) && !is_file($archivo)){ $msg = "El archivo no existe"; }
else { if($archivo){
// mediante file_get_contents
// mostramos el contenido del archivo en forma de cadena
$codigo = htmlentities(file_get_contents($archivo)); } $msg = "La ruta del archivo es <b>$archivo</b>"; } } else { $msg = "Debe introducir la diraccion del archivo a editar"; } }
// vamos a editar el archivo
if(isset($_POST['editar']) && $_POST['editar'] == 'Editar archivo'){ $archivo = $_SESSION['archivo']; $archivo_editado = $_POST['archivo_editado'];
// comprobamos si podemos escribir en el
if(is_writable($archivo)){ if(!$gestor = fopen($archivo, 'w')){ $msg = "No se puede abrir el archivo <b>$archivo</b>"; exit; }
// escribimos en el archivo
// el contenido de $archivo_editado
if(fwrite($gestor, html_entity_decode($archivo_editado)) === false){ $msg = "No se puede escribir en el archivo $archivo"; }
// Exito...!
$msg = "El archivo <b>$archivo</b> se edito con exito"; if($archivo){
// otra vez mostramos el contenido del archivo
$codigo = htmlentities(file_get_contents($archivo)); } fclose($gestor); }else{ $msg = "No se peude escribir en el archivo <b>$archivo</b>"; } }
// guardamos el archivo
// y destruimos todas las variables
if(isset($_POST['guardar']) && $_POST['guardar'] == 'Guardar'){ unset($archivo); unset($_SESSION['archivo']); } ?> <!-- el formulario --> <form action="https://foro20.com/<?php $_SERVER['PHP_SELF']; ?>" method="POST"> <p>URL: <input type="text" name="archivo" value="" size="50" /> <input type="submit" name="abrir" value="Abrir archivo" /></p> <?php echo "<p>".$msg."</p>"; ?> <textarea name="archivo_editado" rows="25" cols="100"> <?php
// mostramos el codigo
// o el texto del archivo a editar
echo $codigo; ?> </textarea> <p> <input type="submit" name="editar" value="Editar archivo" /> <input type="submit" name="guardar" value="Guardar" /> <input type="reset" value="Restablecer" /> </p> </form>
Algunas anotaciones y fuente

por ejemplo quiero guardar esto
<img src="https://marielaingrid.files.wordpress.com/2014/06/chrome-firefox-internet-explorer1.jpg" />

me lo guarda asi

HTML:
 <img src=\"https://marielaingrid.files.wordpress.com/2014/06/chrome-firefox-internet-explorer1.jpg\" />

me pone \ al principio y al final de la url

espero que me puedan ayudar gracias de antemano
No tiene nada de malo que lo guarde asi.
Esta escapando las comillas.

Solo al llamar esos datos y mostrarlos en pantalla, quitale el escape de comillas asi

echo stripslashes($row['mi_Campo']);

Saludos.
 
Arriba