Parte II: Recibiendo datos del formulario con PHP
Esta mañana mi colega iLLiCe me pidió que le echara una mano a crear un formulario para una de sus web y le pase el link de jotform en el que tengo el manual de como hacer el formulario, pero lógicamente le faltaba la parte de recepción. Quería pasar los datos resultantes del formulario a un archivo de texto plano, no a una base de datos, así que en 5 minuticos me he puesto y he echo la función receptor_a_archivo(). Esta función toma los datos recibidos por get y post y los escribe en el archivo que queramos. Tiene como añadido para mejorar la presentación 3 parámetros a partir de los cuales podemos determinar que texto o caracteres ponemos delante del nombre del campo ($delante), entre el nombre del campo y el valor del mismo ($entre_los_dos) y detrás del valor del campo ($detras). También como respuesta al envío de los datos muestra un mensaje de "Datos enviados con éxito.".
Os dejo un ejemplo de como se ejecutaría la función y que daría como resultado:
-
<?php
-
-
receptor_a_archivo("log.html", "<b>", ":</b> ", "<br>\n");
-
?>
Esa función generará un archivo llamado log.html con este contenido:
A continuación os dejo las dos funciones que se usan para hacerlo. Si queréis ver lo que hace la función archivo() está posteada anteriormente.
-
<?php
-
-
function receptor_a_archivo($nombre, $delante = "", $entre_los_dos = " = ", $detras = ""){
-
foreach($_GET as $key => $valor){
-
$escrito = archivo($nombre, "grabar", $delante.$key.$entre_los_dos.$valor.$detras);
-
if($escrito === FALSE){
-
echo "Error al insertar los datos, inténtelo mas tarde o pongas en contacto con el administrador. :)";
-
$error = "1";
-
} else {
-
}
-
}
-
foreach($_POST as $key => $valor){
-
$escrito = archivo($nombre, "grabar", $delante.$key.$entre_los_dos.$valor.$detras);
-
if($escrito === FALSE){
-
echo "Error al insertar los datos, intentélo mas tarde o pongas en contacto con el administrador. :)";
-
$error = "1";
-
} else {
-
}
-
}
-
if($error != "1"){
-
echo "\n<br>Datos enviados con éxito.";
-
}
-
}
-
-
function archivo($nombre, $tipo, $texto="", $tamanio="") {
-
if($permiso[$tipo] != '0'){
-
if($permiso[$tipo] == 'r'){
-
//leer
-
return $read;
-
} else {
-
//grabar
-
return $read;
-
}
-
} else {
-
return $read;
-
}
-
}
-
?>
Una vez guardado el código en un archivo con extensión .php y indicado en nuestro formulario todo funcionará.
gracias tio, me ha servido de mucho. te debo ya “n” cafeses +1.
ya te los pagaré :d
un saludooo
hola… estoy con una duda sobre jotfomr, la herramietna es buena, funciona barbaro.. el tema es que la quisiera independizar de alguna manera para mi site…
o sea, tengo todo el codigo, incluso el form,js
lo que me encantaria para temrinar es poder bajarme el submit.php pero lo veo tan pero tan dificil,
el tema seria entrar al link, que calculo que seria el siguiente:
http://www.jotform.com/submit.php?formID=q_form_81334109153
o este:
http://www.jotform.com/submit.php?formID=81334109153
obvio, lo qeu cambia es el id del formualrio que hagas.
el tema seria entrar al link y que no ejecute el codigo sino que lo muestre, con eso directamente podriamos descargar y seria muy pero muy facil hacer formularios y no depender de ningun servidor para que funcionen…
es muy loco lo que planteo?
desde ya muchas gracias.
saludos.. Leo
Hola Leo, pues te cuento.
Lo que planteas seria un grave problema de seguridad que afectaría a todo el mundo. Si se pudiera hacer eso cualquiera podría entrar a cualquier archivo “wp-config.php” situado en la raíz de los blog de Wordpress y bajarse las contraseñas de la base de datos de millones de paginas (un 8% de internet son WordPress), o directamente cualquier CMS propietario como por ejemplo youtube.
Lo que pretendes hacer no lo tengo del todo seguro, pero creo que con el tutoría que puse arriba podrás hacer casi todo lo q te propongas, o al menos podrás orientarte a la hora de hacer un nuevo archivo que guarde tus datos.
Un saludo y si te queda alguna duda mas no dudes en preguntar.
oye pero como le hago si quiero un formulario pero que te registre los datos en una base datos con todo el contenido que seria correo,nombre,direccion,fecha de nacimiento, que te registre todos los campos en una tabla
Hola Carlos, lo que pides es relativamente difícil para solucionarlo simplemente.. para subir los datos a una DB hay que considerar que tienes que conectarte a esa DB, definir la tabla, crearla si no existe, y una vez q tienes todo eso, subir cada dato… son muchos pasos que tendrías que hacer independientemente.. pero si quieres un punto por donde terminar.. tendrías que cambiar la función archivo por una a la que pases los textos o valores y los suba a la DB.
Un saludo y espero que lo consigas..