registrarse.php
Código PHP:
<?php
echo "<table border=\"1\" align=\"center\" width=\"700\"><tr><td colspan=\"2\">";
include("titulo.php");
echo "<tr><td valign=\"top\">";
include("menu_c.php");
echo "<td>";
include("registrarse_p.php");
echo "</table>";
?>
Código PHP:
<?php
/* Validación de datos */
if(isset($_POST['registrarse'])) {
if(strlen($alias)<3 || strlen($alias)>20) {
$aviso="Tu alias debe tener entre 3 y 19 caracteres";
} else if(strlen($clave)<5 || strlen($clave)>20) {
$aviso="Tu clave debe tener entre 5 y 19 caracteres";
} else if(strlen($pais)>25) {
$aviso="El campo 'pais' debe tener menos de 25 caracteres";
} else if(strlen($ciudad)>25) {
$aviso="El campo 'ciudad' debe tener menos de 25 caracteres";
} else if($clave!=$cclave) {
$aviso="Fíjate en reescribir bien tu clave";
} else {
header("Location: listo.php"); // Aquí está el meollo
exit();
}
}
//Formulario
echo $aviso; //muestro si hay errores.
Mi idea es que el usuario al poner malos los datos, se siga mostrando el formulario pero con un mensaje de error abajo, y eso es lo que hago con la variable $aviso. Pero si los datos están bien, que entonces redireccione a una página (listo.php) distinta.
Y esto último es lo que no sé cómo hacer bien.
Porque una "solución" es tener que hacer una validación similar, fuera de registrarse_p.php, es decir, al comienzo de registrarse.php, antes del título y todo eso. Pero perdería la estructura de todas las páginas (que son de la forma que expliqué incialmente).
Lo que me hace pensar que estoy haciendo todo muy enredado y que debe haber una forma de hacer todo esto más 'limpiamente'.
Porque me imagino que esto de redireccionar cuando el formulario está bueno, ha sido programado mil veces, pero de forma más ordenada.
¿Qué me sugieren?
De antemano gracias por sus ideas.