Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: soru13 en 11 Junio 2011, 14:47 pm



Título: problema al modificar archivo con php
Publicado por: soru13 en 11 Junio 2011, 14:47 pm
Hola, tengo el siguiente código que sirve para modificar/crear un archivo dentro del servidor con php

Código
  1. <form id="form1" name="form1" method="post" action="index.php">
  2.  <label for="textarea"></label>
  3.  <p align="center">
  4.    <label for="textfield"></label>
  5.    <input name="file" type="text" id="textfield" style="background:#000; border:#0F0; border:dashed; color:#0F0;" value="Nombre del archivo a crear o modificar..." size="80" />
  6.  </p>
  7.  <p align="center">
  8.    <textarea name="source" cols="150" rows="20" id="textarea" style="background:#000; border:#0F0; border:dashed; color:#0F0;">Introduce aquí el código fuente...</textarea>
  9.  </p>
  10.  <p align="center">
  11.    <input type="submit" name="button" id="button" value="Go!" style="background:#000; border:#0F0; border:dashed; color:#0F0;" />
  12.  <?php
  13. $archivo=$_POST['file'];
  14. $codigo=$_POST['source'];
  15. #////////////////////////////////
  16. if (!empty($archivo)) {
  17. $fp=fopen($archivo,"w+");
  18. fwrite($fp,$codigo);
  19. fclose($fp);
  20. #////////////////////////////////
  21. echo '<h1 align="center">Guardado correctamente</h1>';
  22. } else {
  23. }
  24. ?></p>
  25. </form>

Funciona casi a la perfección,el único fallo que le encuentro es que si introduzco en el Textarea un código php,por ejemplo:

Código
  1. <?php echo "prueba"; ?>

me lo pone así en el archivo modificado/creado

Código:
<?php echo \"prueba\"; ?>

y entonces, me da error al ejecutarlo por las barras "\"

¿Porque pasa esto y como puedo solucionarlo?

Gracias



Título: Re: problema al modificar archivo con php
Publicado por: cassiani en 11 Junio 2011, 22:14 pm
Revisa tu archivo php.ini debes tener la directiva magic_quotes_gpc activa, debes cambiar su valor a OFF:
Código:
magic_quotes_gpc = Off; valor recomendado 

Debería estar en OFF por defecto o.O y lo recomendado es justamente eso.

[opcional] Siempre puedes deshacerte de las barras invertidas desde el mismo código, por si lo deseas, modificas está parte:
Código:
$fp=fopen($archivo,"w+");
fwrite($fp,$codigo); # <-- aca
fclose($fp);

por esta otra:
Código:
      $fp=fopen($archivo,"w+");
fwrite($fp,stripslashes($codigo));
fclose($fp);

Código:
http://php.net/manual/en/function.stripslashes.php


Título: Re: problema al modificar archivo con php
Publicado por: soru13 en 11 Junio 2011, 22:32 pm
Ya está, gracias por tu ayuda cassiani   ;-)