• En espera

Crear un formulario que guarda los datos en un txt

El código html podeis aprender a hacerlo aquí. En este tutorial vamos a usar un formulario que va a estar compuesto de un área de texto llamado texto, un campo de texto llamado nombre y un campo de texto llamado e-mail, además de un captcha (imagen de verificación).

Crear un captcha

Vamos a empezar creando un archivo captcha.php, que debe ir junto al archivo que tenga el formulario. El código de este archivo captcha.php es el siguiente:

<?php
// archivo: captcha.php
function randomText($length) {
$pattern = "1234567890abcdefghijklmnopqrstuvwxyz";
for($i=0;$i<$length;$i++) {
$key .= $pattern{rand(0,35)};
}
return $key;
}?>
<?php
session_start();
$_SESSION['tmptxt'] = randomText(8);
$captcha = imagecreatefromgif("bgcaptcha.gif");
$colText = imagecolorallocate($captcha, 0, 0, 0);
imagestring($captcha, 5, 16, 7, $_SESSION['tmptxt'], $colText);
header("Content-type: image/gif");
imagegif($captcha);
?>

Lo que os pongo en rojo es la ruta de la imagen que se verá de fondo detrás de las letras del captcha, podeis poner la imagen que querais.

Código html del formulario

Una vez tengamos el archivo captcha.php creado vamos a pasar a crear el código html de nuestro formulario. Por lo tanto creamos una página html y añadimos el código siguiente. He resaltado en rojo los nombres de los campos del formulario, en naranja el nombre de la página php a la que manda el formulario y en azul el código perteneciente al captcha:

<center><form action="texto.php" method="post" enctype="multipart/form-data" name="formredac">
Texto:<br />
<textarea name="texto" cols="60" rows="8"></textarea>
<br />Nombre:<br /><input name="nombre" type="text" size="30" maxlength="40" style="text-align:center" />
<br />Email:<br /><input name="email" type="text" size="30" maxlength="50" style="text-align:center" />
<br /><img src="../captcha.php" width="100" height="30"><br>
<input name="tmptxt" type="text" style="text-align:center"><br>
<input name="" type="submit" value="Enviar" />
<input name="action" type="hidden" value="checkdata">
</form></center>

De aquí sólo tiene que explicar el último código azul, que es un campo oculto (no se ve), y lo que hace es guardar el texto del captcha para que después se compare con lo que se ha escrito.

Código php del formulario

Ahora vamos a hacer la página php, que en el caso del código anterior (como se ve en naranja) le llamaremos texto.php. A esta página php le pondremos el código html que queramos. Luego añadiremos el código php siguiente exactamente donde queramos que aparezca la frase de "se ha enviado correctamente" o "No ha introducido bien el texto de la imagen" en su caso:

<?php
session_start();
if ($_POST['action'] == "checkdata") {
if ($_SESSION['tmptxt'] == $_POST['tmptxt']) {


$nombre_archivo = 'texto.txt';
$contenido = "\r\nTexto:" . $_POST["texto"] . "\r\nNombre:" . $_POST["nombre"] . "\r\nEmail:" . $_POST["email"] . "\r\n\r\n\r\n";

if (is_writable($nombre_archivo)) {

if (!$gestor = fopen($nombre_archivo, 'a')) {
echo "<p>No se puede abrir el archivo para guardar su texto. Por favor, si el problema persiste contacte con el administrador.</p>";
exit;
}

if (fwrite($gestor, $contenido) === FALSE) {
echo "<p>No se puede escribir al archivo para guardar su texto. Por favor, si el problema persiste contacte con el administrador.</p>";
exit;
}

echo "<p>Su texto fue enviado correctamente y está pendiente de verificación.</p><p><a href='index.html'>Volver al índice</a></p>";

fclose($gestor);

} else {
echo "<p>No se puede escribir sobre el archivo para guardar su texto. Por favor, si el problema persiste contacte con el administrador.</p>";
}

} else {
echo "<span class='Estilo1'>El código captcha es incorrecto</span><br><a href='javascript:history.go(-1);'>Volver atrás</a>";
}
}
?>

En este código encontramos primero en rojo la ruta del archivo txt en el que se guardarán los datos. Después en celeste y naranja encontramos un estructura que se repite con un punto entre cada una: "\nCeleste: " . $naranja . Lo que encontramos en naranja ahí es de nuevo el nombre del campo, y lo que encontramos en celeste es lo que nos llegará en el mensaje antes de lo que se puso en el campo. Por ejemplo, si en el campo nombre puse "Antonio" y en lo de celeste tengo puesto "Nombre:" pues me llegará en el mensaje "Nombre: Antonio".

Por último en azul encontramos dos frases que si quereis podeis cambiar.

Archivo txt

Por último tenemos que crear el archivo texto.txt (abrís el bloc de notas y le dais a guardar como). Lo subís a vuestro servidor y una vez subido le cambiais los permisos y le poneis los permisos 777 (si usais el filezilla sólo teneis que darle botón derecho al archivo subido desde el filezilla, darle a "Atributos de archivo" y marcar todas las casillas o escribir 777 abajo). Luego subís todo lo demás al servidor y lo probais (teneis que probarlo subido).

Os dejo subida una muestra de este formulario. Aquí teneis el formulario, y lo que escribais se guardará aquí.

Si tienes alguna pregunta que hacernos o no te sale bien tienes el foro a tu disposición.

Volver a cómo crear una web>>


Creada el 21/08/08 18:27
Copyright © - Todos los derechos reservados - Página creada por Juanma