Foros del Web » Programando para Internet » PHP »

Auto crear archivo con php

Estas en el tema de Auto crear archivo con php en el foro de PHP en Foros del Web. Hola a todos los duros del PHP de este foro! Soy aficionada al PHP, pero no soy experta ni nada por el estilo. Solamente me ...
  #1 (permalink)  
Antiguo 29/04/2010, 19:41
Avatar de Laura2005  
Fecha de Ingreso: mayo-2005
Ubicación: Bucaramanga - Col
Mensajes: 11
Antigüedad: 18 años, 11 meses
Puntos: 0
Auto crear archivo con php

Hola a todos los duros del PHP de este foro!

Soy aficionada al PHP, pero no soy experta ni nada por el estilo. Solamente me gusta practicar y armar mis propios scripts para practicas personales y de algunos proyectos.

Bueno.. a lo que voy:

Tengo un script php que crea automáticamente un archivo (test.php) y a este archivo le inserta (por decirlo de alguna forma) el contenido que se escriba desde un textarea en un formulario. La idea es escribir en el textarea un codigo php que se ejecute desde el archivo test.php.

Aunque el archivo test.php se genera o crea sin problemas, el CODIGO php que se escribe (o pega) en el textarea no se transfiere tal cual en el archivo test.php. o sea, le aparecen varias barras invertidas que no dejan ejecutar el script.

si alguien sabe como hacer para que el codigo php se pase puro sin alterarse al archivo test.php le agradezco mucho. Pongo el codigo para que me entiendan.

Saludos!

form.htm
Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>GENERAR ARCHIVO DINAMICAMENTE</title>
</head>
<body>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" width="439">
<tr>
<td>
<form method="POST" action="crear.php" target="_blank">
<p align="center">Contenido del archivo:<br>
&nbsp;<textarea rows="8" name="contenido" cols="73"><? 
$UsuarioIp = $_SERVER['REMOTE_ADDR'];
$UsuarioFechaYHora = date('l dS \of F Y h:i:s A'); 

echo "$UsuarioIp : ($UsuarioFechaYHora)"; 
?></textarea></p>
<p align="center"><input type="submit" value="Ejecutar - crear"></p>
</form>
</td>
</tr>
</table>
</div>

</body>
</html> 

crear.php

Código PHP:
<?php

// generamos el archivo - nombre y extension
$archivo =("test.php");

// le damos la propiedad al archivo creado "W"
$fp fopen($archivo"w");

// agregamos el contenido desde la variable "contenido"
$string = ($_POST['contenido']);
$write fputs($fp$string);
fclose($fp);

// redireccioamos y ejecutamos el script creado (test.php)
header("Location: test.php");

?>
  #2 (permalink)  
Antiguo 29/04/2010, 20:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Auto crear archivo con php

personalmente tengo algo parecido y me va bien... ¿que te pone en el codigo test.php?
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #3 (permalink)  
Antiguo 29/04/2010, 20:37
Avatar de Laura2005  
Fecha de Ingreso: mayo-2005
Ubicación: Bucaramanga - Col
Mensajes: 11
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Auto crear archivo con php

Cita:
Iniciado por millan2525 Ver Mensaje
personalmente tengo algo parecido y me va bien... ¿que te pone en el codigo test.php?
Por ejemplo: Escribo este codigo php:

Código PHP:
<? 
$UsuarioIp 
$_SERVER['REMOTE_ADDR']; 
$UsuarioFechaYHora date('l dS \of F Y h:i:s A'); 

echo 
"$UsuarioIp : ($UsuarioFechaYHora)"
?>
y el resultado en el archivo test.php es:

<?
$UsuarioIp = $_SERVER[\'REMOTE_ADDR\'];
$UsuarioFechaYHora = date(\'l dS \\of F Y h:i:s A\');

echo \"$UsuarioIp : ($UsuarioFechaYHora)\";
?>

Al resultado le incluye varias barras que hacen que el codigo no se ejecute.
  #4 (permalink)  
Antiguo 29/04/2010, 20:55
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Auto crear archivo con php

prueba a cambiar esto

$string = ($_POST['contenido']);

Por esto:

$string = "$_POST['contenido']";

Es lo único que nos diferencia.

No obstante lo hace por seguridad...

También puedes intentar forzar a quitarlos poniendo

Código PHP:
Ver original
  1. <?php
  2.  
  3. // generamos el archivo - nombre y extension
  4. $archivo =("test.php");
  5.  
  6. // le damos la propiedad al archivo creado "W"
  7. $fp = fopen($archivo, "w");
  8.  
  9. // agregamos el contenido desde la variable "contenido"
  10. $string = ($_POST['contenido']);
  11. $string=str_replace($string,"\'","'")
  12. $write = fputs($fp, $string);
  13. fclose($fp);
  14.  
  15. // redireccioamos y ejecutamos el script creado (test.php)
  16. header("Location: test.php");
  17.  
  18. ?>

EDITO: No obstante, ya te aviso que esto es muy peligroso... Si lo subes a internet te puede sacar el codigo de toda tu web en 2 minutos
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #5 (permalink)  
Antiguo 29/04/2010, 20:59
Avatar de DeveloperFresh  
Fecha de Ingreso: mayo-2009
Ubicación: Ancon City
Mensajes: 35
Antigüedad: 15 años
Puntos: 3
Respuesta: Auto crear archivo con php

Haz probado con esta función stripslashes .
Donde esta la linea
Código PHP:
Ver original
  1. $string = ($_POST['contenido']);

Cambialo por :
Código PHP:
Ver original
  1. $string = stripslashes($_POST['contenido']);
  #6 (permalink)  
Antiguo 29/04/2010, 21:06
Avatar de Laura2005  
Fecha de Ingreso: mayo-2005
Ubicación: Bucaramanga - Col
Mensajes: 11
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Auto crear archivo con php

Cita:
Iniciado por millan2525 Ver Mensaje
prueba a cambiar esto

$string = ($_POST['contenido']);

Por esto:

$string = "$_POST['contenido']";

Es lo único que nos diferencia.

No obstante lo hace por seguridad...

También puedes intentar forzar a quitarlos poniendo

Código PHP:
Ver original
  1. <?php
  2.  
  3. // generamos el archivo - nombre y extension
  4. $archivo =("test.php");
  5.  
  6. // le damos la propiedad al archivo creado "W"
  7. $fp = fopen($archivo, "w");
  8.  
  9. // agregamos el contenido desde la variable "contenido"
  10. $string = ($_POST['contenido']);
  11. $string=str_replace($string,"\'","'")
  12. $write = fputs($fp, $string);
  13. fclose($fp);
  14.  
  15. // redireccioamos y ejecutamos el script creado (test.php)
  16. header("Location: test.php");
  17.  
  18. ?>

EDITO: No obstante, ya te aviso que esto es muy peligroso... Si lo subes a internet te puede sacar el codigo de toda tu web en 2 minutos

GRACIAS! por tu colaboracion.
  #7 (permalink)  
Antiguo 29/04/2010, 21:07
Avatar de Laura2005  
Fecha de Ingreso: mayo-2005
Ubicación: Bucaramanga - Col
Mensajes: 11
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: Auto crear archivo con php

Cita:
Iniciado por DeveloperFresh Ver Mensaje
Haz probado con esta función stripslashes .
Donde esta la linea
Código PHP:
Ver original
  1. $string = ($_POST['contenido']);

Cambialo por :
Código PHP:
Ver original
  1. $string = stripslashes($_POST['contenido']);
Gracias!!!
Con tu indicacion se soluciono el problema. Hasta pronto

Etiquetas: auto
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:15.