Está en la página 1de 3

Cmo hacer un registro de usuarios en PHP Como siempre, partamos por lo primero: Implementos necesarios: Un editor Web.

. Para este caso utilizaremos Adobe Dreamweaver CS3 (Pueden descarg ar una versin de evaluacin aqu). Un servidor que soporte y ejecute archivos PHP. Para esto tienen 2 opciones: Pue den instalar algn software que contenga un servidor estilo Apache (Como Wamp o Xa mpp) o buscar algn alojamiento gratis que ofrezca la funcionalidad. Un sistema de bases de datos. Para este caso utilizaremos MySQL, el cual pueden instalarlo (viene incluido en Wamp y Xampp) o buscar algn alojamiento gratis que ofrezca la funcionalidad. Sin ms cosas, manos a la obra: Procedimiento: 1.- Lo primero que haremos, ser crear la tabla correspondiente a los usuarios en nuestra base de datos. Si no saben como hacerla, pueden ver este tutorial en el que hemos realizado este proceso paso a paso. La tabla para este ejemplo contend r los siguientes campos: 1. username ===> varchar (10) ===> primary key 2. clave ===> varchar(10) 3. email ===> varchar(30) 4. nombre ===> varchar(50) Eventualmente pueden definir los campos que Uds. estimen convenientes (por ejemp lo Sitio Web, Pais de ubicacin, etc), dependiendo de la informacin que quieran rec olectar de cada usuario. 2.- A continuacin comenzaremos con el diseo de nuestro registro de usuarios. Prime ro que todo, crearemos una pgina HTML donde tendremos nuestro formulario de regis tro. A esta pgina la llamaremos registro.html y en ella crearemos el formulario. Si tienen dudas de como crear un formulario, pueden ver este tutorial en el que ya realizamos el proceso paso a paso. Este formulario contendr los siguientes campo s: 1. Nombre de usuario: A este campo le pondremos un mximo de caracteres de 10 en la opcinMax Chars (o el nmero de largo que uds. quieran, fijandose siempre en no superar el mximo que definimos en el campo correspondiente de la base de datos) y como nombre de campo le pondremos username. 2. Contrasea: A este campo tambin le pondremos un mximo de caracteres de 10 en la opcinMax Chars (tambin pueden fijarlo segn su gusto). Le pondremos de nombre clave al campo y en Type pondremos password para que no muestre el texto que se escriba. 3. Confirmar contrasea: Este campo tendr las mismas caractersticas que el ante rior, excepto que el nombre lo fijaremos como confirmar. 4. Correo electrnico: Aqu fijaremos un mximo de caracteres de 30 (o el que uds . decidan), y le pondremos de nombre email. 5. Nombre completo: Este campo lo fijaremos de un mximo de caracteres de 50 y le pondremos de nombre nombre. Y como siempre, los clsicos botones Enviar y Limpiar datos. El Action de este formulario (pgina a la que se dirigir al hacer click en el botn Envi ar) lo dejaremos fijado a agregar.php 3.- Con nuestra base de datos y formulario listos, ahora podemos concentrarnos e n el cdigo para registrar al usuario. Para esto crearemos una pgina llamada agregar .php en el cual realizaremos los siguientes pasos: 1. Confirmaremos que todos los campos han sido llenados. 2. Confirmaremos que el nombre de usuario no exista actualmente en la base de datos (por ser clave primaria, debe ser nico). 3. Validaremos que la contrasea sea igual en los 2 campos donde se ingresaro n. 4. Registraremos al usuario en nuestra base de datos. Para esto, insertaremos el siguiente cdigo despus de la etiqueta <BODY>. La explic acin del cdigo, como siempre, en cursiva, negrita y entre /* */: $user=$_POST["username"]; $clave=$_POST["clave"]; $confirmar=$_POST["confirmar"];

$email=$_POST["email"]; $nombre=$_POST["nombre"]; $error=0; /* Primero que todo asignaremos los valores recogidos del formulario en el vecto r POST a las variables que definimos ($user, $clave, etc). La ltima variable llam ada $error la dejaremos como una bandera para marcar cualquier falla que exista dentro del proceso */ if($user==" || $clave==" || $confirmar==" || $email==" || $nombre==") { echo Debe ingresar todos los datos.<br> Por favor vuelva ; ?> <a href=registro.html> <? echo atrs;?></a><? $error=1; } /* Bsicamente lo que hacemos aqu es controlar mediante una sentencia if que todas la s variables contengan informacin. Por eso preguntamos si alguna de ellas esta vaca (separando por el equivalente a que es || ) que muestre el mensaje de que falta n datos y le muestre el vnculo para volver al formulario. Adems, marcamos nuestra variable $error con un 1 . */ if($clave!=$confirmar) { echo Las contraseas ingresadas no son iguales.<br> Por favor vuelva ; ?> <a href=reg istro.html><? echo atrs;?></a><? $error=1; } /* A continuacin comprobamos que las contraseas ingresadas en el formulario, o bie n la contrasea y la confirmacin sean iguales. Dentro de nuestro if preguntamos si so n distintas (mediante != ) y si es el caso, mostramos el mensaje que las contras eas no son iguales y desplegamos el vnculo para volver el formulario. Adems, marcam os la variable $error con un 1 . */ else { $conexion=mysql_connect(URL del host,usuario,contrasea) or die(No se puede conectar a la BD); mysql_select_db(nombre de nuestra BD,$conexion) or die(No se puede seleccionar la BD); $consulta=SELECT * FROM usuario WHERE username='$user'; $resultado=mysql_query($consulta,$conexion) or die(Operacion fallida: $consulta); /* A este trozo de cdigo se ingresar si los datos del usuario han pasado todas las validaciones anteriores. Lo primero que haremos es establecer una conexin a nues tra base de datos, primero definiendo una variable llamada $conexion y almacenan do dentro de ella el resultado de la conexin a la BD mediante la funcin mysql_conn ect, a la cual le proveemos los parametros correspondientes a la URL de nuestra base de datos (comunmente es localhost) y el usuario y contrasea que utilizamos p ara ingresar. Luego seleccionamos la base de datos mediante la funcin mysql_selec t_db a la cual le proporcionamos los parametros correspondientes al nombre de la base de datos y los datos de la conexin (almacenados en la variable $conexion). En caso de que alguno de esos proceso fallen, presentamos un mensaje de error y m atamos el proceso mediante el or die correspondiente. Luego en una variable $consulta, definimos una consulta a la base de datos de ti po SQL en la cual le pedimos que busque los datos de algn usuario que ya tenga el nombre de usuario que se seleccion ahora. De esta forma veremos si ya existe algn usuario con esos datos. Finalmente, ejecutamos la consulta mediante la funcin my sql_query, a la cual le proporcionamos la consulta almacenada en $consulta y los datos de la conexion almacenados en la variable $conexion. El resultado de la c onsulta lo almacenaremos en la variable $resultado. */ if(mysql_affected_rows($resultado)==0) { $consulta=INSERT into usuario(username, clave, email, nombre) VALUES (`$user', $clave', $email', $nombre');

$resultado=mysql_query($consulta,$conexion); /* Mediante la funcin mysql_affected_rows (dandole de parametro el resultado de l a consulta) averiguaremos si hubo alguna fila afectada por la consulta recin real izada (la consulta SELECT que buscaba la existencia del usuario), en caso de que la funcin sea igual a 0 significa que no hubo coincidencias por lo que el nombre de usuario se encuentra libre y podemos proceder a aadir el nuevo usuario a la b ase de datos. Esto lo hacemos mediante una consulta INSERT, la cual la almacenam os en la variable $consulta (podemos reutilizarla, ya que no necesitaremos el co ntenido anterior) y el resultado de esta la almacenaremos en $resultado (lo mism o que $consulta) luego de ejecutarla mediante un mysql_query */ if(!$resultado) { echo Se ha presentado un error al registrar el usuario. <br> Por favor intentelo de nuevo; $error=1; exit(); /* Ahora mediante un if validaremos que no haya ningn problema con la ejecucin de la consulta. Al poner !$resultado le preguntamos a la BD si no fue posible obten er un resultado en la ejecucin y si es as desplegamos el mensaje de error correspo ndiente y marcamos nuestra variable $error con un 1 para luego hacer un exit() y d etener la ejecucin */ } else { $error=2; /* El else por supuesto corresponde a que no hubo problemas en la ejecucin de la consulta, por lo que marcamos nuestra variable $error con un 2 el cual validarem os ms tarde para desplegar un mensaje de xito */ } } else { echo El nombre de usuario ya existe.<br> Por favor vuelva ; ?> <a href=registro.htm l><? echo atrs;?></a><? $error=1; /* Este else corresponde al if que utilizamos con la funcin mysql_affected_rows , por lo que si entra al else significa que hubo una coincidencia cuando seleccio namos el nombre de usuario de la BD. As que desplegamos el mensaje correspondient e de error, presentamos el vnculo para volver y marcamos nuestra variable $error con un 1 */ } } if($error==2) { echo Se ha registrado en el sistema. Bienvenido `$nombre'; /* Finalmente validamos si nuestra variable error vale 2, esto significa que log r insertar los datos de forma satisfactoria por lo que presentamos el mensaje de x ito y le damos la bienvenida al usuario usando el nombre que registr en el formul ario */ }