Hola, tengo el siguiente código que sirve para modificar/crear un archivo dentro del servidor con php
<form id="form1" name="form1" method="post" action="index.php">
<label for="textarea"></label>
<p align="center">
<label for="textfield"></label>
<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" />
</p>
<p align="center">
<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>
</p>
<p align="center">
<input type="submit" name="button" id="button" value="Go!" style="background:#000; border:#0F0; border:dashed; color:#0F0;" />
<?php
$archivo=$_POST['file'];
$codigo=$_POST['source'];
#////////////////////////////////
if (!empty($archivo)) {
$fp=fopen($archivo,"w+");
fwrite($fp,$codigo);
fclose($fp);
#////////////////////////////////
echo '<h1 align="center">Guardado correctamente</h1>';
} else {
}
?></p>
</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:
<?php echo "prueba"; ?>
me lo pone así en el archivo modificado/creado
<?php echo \"prueba\"; ?>
y entonces, me da error al ejecutarlo por las barras "\"
¿Porque pasa esto y como puedo solucionarlo?
Gracias
Revisa tu archivo php.ini debes tener la directiva magic_quotes_gpc activa, debes cambiar su valor a OFF:
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:
$fp=fopen($archivo,"w+");
fwrite($fp,$codigo); # <-- aca
fclose($fp);
por esta otra:
$fp=fopen($archivo,"w+");
fwrite($fp,stripslashes($codigo));
fclose($fp);
http://php.net/manual/en/function.stripslashes.php
Ya está, gracias por tu ayuda cassiani ;-)