![]() |
Probador de código php Hola: Acabo de hacerlo, y es más fácil de lo que suponía... Basta que en una página haya un formulario con un textarea de name=datos (por ejemplo), un fichero en blanco en la misma carpeta que se llame temporal.php (también por ejemplo)... El formulario se envía por el método post a la página crearPhp.php... Y el cóntenido de crearPhp.php sea: Código: <?phpCódigo: <html>Creo que no lo voy a subir porque me parece algo peligroso. Si puede hacerse mejor, me gustaría que me lo dijeran. Intente redireccionar con header y no salió bien...:pensando: Saludos :arriba: |
Hola caricatos Interesante tu probador. Me va a venir bien para facilitarme la tarea de probar mis escasas líneas de código ;-) en PHP. Saludos, :adios: |
Como bien dices .. es altamente peligroso usar dicho código (usa algúna protección para que sólo lo ejecutes bajo algún logín autentificado .. ). Faltaría algunos detalles .. sobre todo verificar si usas "magic_quote_gpc" (en tu php.ini) para ver si necesitarías aplicar stripslashes() o no a la hora de ejecutar tu código. Lo de ejecutar el código inmediatamente redireccionando tu navegador hacia el script recien creado .. debería funcionar con el "header()" de "Location" .. (que servidor HTTP usas? .. no será IIS? .. por ahí tenía problemas si no usabas rutas relativas: http://www.tusito.tal/temporal.php .. pruebalo así). Un saludo, |
Hola otra vez: Me agrada saber que pueda ser útil a alguien... yo estoy empezando a probarlo, y la verdad es que no tener que crear documentos nuevos para pruebas sencillas y que luego iban a parar a la papelera me parece un gran avance. JavierB: Las veces que mis torpes "dedacos" habrán escrito cosas raras... Lo voy a arreglar tan solo para que se pueda buscar bien (aunque estas cosillas creo que le dan cierto encanto a estos foros y a toda internet...) Cluster: Mi servidor es apache (tanto en localhost como en las pocas páginas que tengo subidas)... y creo que no voy a subirlo porque mi nivel es bastante pobre y la intención es que se trate de una ayuda en local... :pensando: No tengo idea sobre el uso de "magic_quote_gpc", pero ya que tengo mi magnífico probador php (ya lo tenía para javascript), voy a verlo... Con phpinfo() aparece en On... no sé si está bien, pero en una página que ya tenía encontraba errores cuando no lo usaba... Gracias por los comentarios. Saludos :arriba: |
La directiva de php.ini "magic_quote_gpc" lo que hace (a ON) es añadirte el caracter de escape (\) a toda comilla doble y algunos caracteres más que pasean por el URL (desde tu formulario o links hacia tu script PHP). Si está a ON . .automáticamente se "escapan" cosas como echo "algo"; quedando en echo \"algo\"; Por otro lado está la misma directiva pero que afecta a la generación de archivos: magic_quote_runtime .. que por defecto está a OFF .. En general todo esto afecta como veras a como se genera el archivo. Ahora, .. viendolo desde otro punto de vista .. si tienes pequeños scripts que probar .. no es necesario ni que generes un archivo (y llenar tu servidor de esos archivos + tener que ir a borrarlos luego a mano despues de ver su ejecución). Puedes ejecutar tu código directamente sin pasar por la generación de tu archivo usando: eval() www.php.net/eval (igual que existe una función equivalente para Javascript). Un saludo, |
Gracias Cluster, como siempre dando lecciones magistrales :aplauso: : Ya veo que debo seguir usando stripslashes en localhost... aunque el tema del eval no lo tengo muy claro (por cierto, cada vez le encuentro menos utilidad al eval en javascript) pero si quiero poner una página completa (parte html/javascript y parte php) no sé si ayudaría mucho el eval de php... como el ejemplo que puse en el primer mensaje... Bueno, por hoy lo dejo y muchas gracias. Saludos :arriba: |
parar variar.. una vez mas no me entero de que hablais.. a que te refieres con probador de codigo? que hace ese codigo? |
Imagina un ejemplo: Yo aquí en el foro te pongo cierto código: Código PHP: Bueno, para eso .. simplemente creas ese pequeño script, tu código (el que sea) lo pegas ahí .. en tu "textarea" le das a "enviar" y ves como se ejecuta (lo que haga) rápidamente .. sin andar liandote creando archivos .. subiendolos y luego borrandolo por qué no es más que una pequeña prueba. Por supuesto, que algo más complejo que -un- sólo script no te sirve este sencillo ejemplo. Un saludo, |
ah vale... pero vamos como yo siempre trabajo en local primero con el easyphp.. no me serviria de mucho.. solo si estoy en un pc que no tiene ni la herramienta en local ni quiero subir nada a mi servidor.. sino que pego ahi y pruebo? eso? pero aparte de <?php $datos = stripslashes($_POST["datos"]); chmod("temporal.php", 0777); $volcado = fopen("temporal.php", "w"); rewind($volcado); fwrite($volcado, $datos, strlen($datos)); fclose($volcado); // header("Location: temporal.php") ?> <html> <META HTTP-EQUIV="refresh" CONTENT="1; url=temporal.php"> <html> dice de poner algo mas no? saludos y gracias de nuevo |
Cita:
Por lo demás Caricatos ya avisa que le falta tu formulario HTML con ese campo "datos" .. Un saludo, |
tengo el dia cuadriculado :golpeado: no se.. a ver si soy capaz de hacerlo pq no me entero :( |
Hola: Lo que falta es una página así: <html> <body> <form action="crearPhp.php" method="post" enctype="application/x-www-form-urlencoded" target="_blank" > <textarea name="datos" rows="15" cols="100"></textarea> <input type="submit" value="probar" /> </form> </body> </html> Como verás es una página muy básica, pero escribiendo en el textarea algo así: <?php phpinfo(); ?> Y enviando el formulario... es suficiente para ver tu configuración php (en parte por eso creo peligroso que esté en el servidor...) Saludos :arriba: |
vale.. a ver si con el nuevo dia lo entiendo.. :p tu tienes esa pagina html en tu servidor... con eso.. subes .php´s a tu servidor para probar, si tener que usar un ftp? es eso? :p |
Hola: Te vas acercando, pero no es exactamente... :pensando: En el textarea se pone código php y html como cualquier página php, luego, al envíar los datos, este código se escribe como un texto plano en el fichero temporal.php, y se redirecciona a ese fichero, que se interpreta como una página php... Yo lo tengo en localhost porque creo que es muy peligroso tenerlo en un servidor. Creo que cuando pegan código en los mensajes de estos foros, es la mejor manera de probarlos, ya que no implica la creación de páginas nuevas... :pensando: Saludos :arriba: |
Cita:
Cita:
Código PHP: Cita:
... lo simple es crear un archivo como se tiene ahora. No le veo drama sí es se puede sobreescribir el mismo (respecto a lo que comentaba Cluster de tener N archivos "basura") y así tener un solo archivo probador. Pero ahora me entra la duda... se puede ejecutar directamente código almacenado en una variable con la posibilidad de que este sea de cualquier tipo (PHP, HTML, JS, CSS, incluso XML)????? :pensando: ¿es posible? :pensando:... supongo que se podría echar mano de regex y una función como preg_match_all() para identificar el PHP embebido, extraerlo y ejecutarlo con eval()... el resto se mandaría a imprimir directamente con un echo... ¿no?. Edito: Por cierto... por qué no te funciona el header()?, no redirecciona?, algún mensaje de error?... :pensando: |
Gracias jam: Es posible que se tratara de un error mío, porque acabo de probarlo y funciona... aunque solo quité el comentario y puse el cierre (;)... que debía ser lo que estaba mal... Parece mejor usar header, ya que el navegador solo queda con la página actual (sin historial)... El fichero crearPhp.php ha quedado así: Código: <?phpSaludos :arriba: |
... oyes... pero si ya te funciona el header() no es necesario el HTML al final... :-) Ahora yo espero que alguien me saque de la duda... :adios: |
Cita:
Los problemas de seguridad vendrán cuando alguien haga algo tipo: <? readfile("config.php"); ?> Es decir .. se puede "ver el código" de cualquier script que ronde en ese servidor .. Por eso es tan peligros (imagina el ejemplo .. un "config.php" donde dejes datos tipo contraseña de acceso a una BD o similar .. hay que tener cuidado). Un saludo, |
Cita:
Si Cluster, por eso en el primer mensaje puse que me parecía peligroso... y solo pensé en usar phpinfo()... Pero en un localhost, tal como yo pienso usarlo... y como creo que se debería usar, puede ser bastante útil. En el caso de html/javascript/css tengo una página subida: http://www.pepemolina.com/probador/ Y en muchas ocasiones aconsejé que pegaran el código y lo probaran sin llegar a escribir ni una sola línea... Ahora estoy pensando en una implementación para enviar/recibir datos por formulario ... tal vez con 2 páginas (enviador/receptor)... pero lo haré en cuanto pueda /si es que puedo...) Gracias de nuevo, y un abrazote desde la Costa del Sol. :adios: |
Cita:
Un saludo, |
Cita:
Cita:
:adios: |
Cita:
Supongo que con un par de textareas que representen a un formulario (y en tal caso bastaría con html plano) y el destinatario del mismo en donde sí sería necesario el uso de php... justamente me piqué con ver lo que recibe un CGI con las distintas posibilidades, como el tema en el que me contestaste sobre las URLs anidadas (creo que sabes a lo que me refiero...http://www.forosdelweb.com/f18/combinar-imagenes-dinamicas-gd-338527/ ) Mañana, veré como hacer el esqueleto... Saludos :arriba: |
Hola: Ya hice el esqueleto y es bastante sencillo (no tengo intención de que esté bonito) Para crear el archivo php: <form name="destino" action="crearPhp.php" method="post" enctype="application/x-www-form-urlencoded" target="_blank"> destino:<br /> <textarea name="datos" cols=100 rows=7 ></textarea> <br/> <input type="submit" value="crear temporal.php" /> </form> Incluso no sería necesario redireccionar (ya se encargaría el formulario o el enlace en mostrarlo...) Y para el origen de los datos: Código: <form name="origen" >Código: function mostrar() {Código: <html>Código: <html>Código: $_GET[archivo] = cualquiera.php?var1=1Saludos :arriba: |
| La zona horaria es GMT -6. Ahora son las 12:57. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.