como hacer un sistema de usuarios con php y mysql

Upload: pedro-garcia

Post on 22-Jul-2015

165 views

Category:

Documents


0 download

TRANSCRIPT

Como hacer un sistema de usuarios con PHP y MySQL

Desde hace ya un buen tiempo queria hacer un tutorial de php y mysql pero la falta de tiempo y algunos imprevistos me lo habian impedido, en este tutorial aprenderan algunas cosas basicas y no tan basicas de lo que es php y mySQL, jugaran con html y php, aprenderan a usar las tablas y bases de datos, todo en este tutorial, espero no haber hecho mal jijiji de todos modos cualquier duda o problema por favorcomentenlo en el Foro o visiten http://www.php.net ahi podran buscar lo que significa cada sentencia, bueno los dejo con esto que les prepare. El tutorial ha sido actualizado! se recibieron mejoras departe del equipo Xombra, evitando asi inyeccciones SQL y mejorando el codigo en gran medida un saludo para ellos por haberlo mejorado!!

Si ya te la sabes, de una vez bajatelo!

Sistema de Usuarios Actualizado

Paso 1 Crear una base de datos, desde tu panel de administracin, asignarle un usuario y un password.

Paso 2 Ingresar a phpMyAdmin, seleccionar la base de datos que creamos ir al menu superios SQL y ejecutar la siguiente consulta o el .sql que viene en la carpeta, para crear la tabla usuarios. Ver codigo en Texto - Recomendable

MySQL: 1. 2. 3. 4. 5. 6. 7. 8. CREATE TABLE usuarios( `id` INT( 4 ) NOT NULL AUTO_INCREMENT , `nombre` TEXT, `apaterno` TEXT, `amaterno` TEXT, `login` VARCHAR( 40 ) NOT NULL , `password` VARCHAR( 80 ) NOT NULL , `email` TEXT,

9. UNIQUE KEY ( id ) 10. );

** La imagen acontinuacion varia ya que han sido actualizado algunos valores

Paso 3 Una ves creada la tabla, creamos nuestro archivo de registro el cual llamaremos form.html, tendra un formulario con los siguientes campos y este se encargara de enviar todas las variables por el metodo POST al archivo crea_usuarios.php (las variables son el parametro que tiene nane= en cada input). El metodo POST es usado para pasar variables sin que nadie las vea hagan de cuenta que las pasa por debajo y el metodo GET las pasa por medio de la URL ejemplo: http://www.sectorweb.net/post.php?action=edit&post=73 Ver codigo en Texto - Recomendable

HTML: 1. Login(nick): 2. 3. Password: 4. 5. Repite Password: 6. 7. Nombre: 8. 9. Apellido Paterno: 10. 11. Apellido Materno: 12. 13. E-mail: 14. 15.

Paso 4 Configurar nuestro archivo config.php el cual contiene todos los datos de autentificacion de nuestra base de datos, solo hay que asignarle a las variables los datos de la base de datos el usuario y la contrasea y el server que casi siempre es localhost. Ver codigo en Texto - Recomendable

PHP: 1. 2. 3. 4. 5.

Paso 5 Es hora de crear el archivo crea_usuarios.php. El formulario nos avento las variables ahora solo hay que cacharlas, bueno para atraparlas utilizaremos la veriable de servidor $_POST una ves atrapado se lo asignamos a una nueva variable, algo asi $login = htmlspecialchars(trim($_POST['login'])); eliminamos espacios con trim y caracteres especiales con htmlspecialshars, aqui ya tenemos el valor del nick dentro de la variable $login, una ves hecho eso con todas las varibles asiganmos a la variable $query la siguiente consulta: $query = sprintf("SELECT login FROM usuarios WHERE usuarios.login='%s'",mysql_real_escape_string($login)); la cual nos

dice: Selecciona el campo login de la tabla usuarios donde el campo login sea igual al valor de nuestra variable login(se le aade la funcion mysql_real_escape_string() esta escapa cualquier tipo de caracter con el que se pueda hacer una inyeccion SQL o que afecte la integridad de nuestros datos), hacemos nuestra conexion y se la asiganmos a la variable $link ahora detonamos la consulta y la almacenamos en $result hecho esto hacemos la siguiente decisin: if(mysql_num_rows($result)) la cual nos devolvera un valor boleano (verdadero o falso) si es verdadero significa que encontro al menos un elemento en la base de datos que coincide con nuestra variable $login, esto significa que ya hay un usuario con ese nick entonces envia un mensaje pidiendo cambiar el nick, si no existe nadie en la base de datos entonces hay que comparar si las variables del password coinciden o no, si no coinciden envia un mensaje de alerta y si si son iguales encripta el password con la funcion MD5 ahora introduciremos los valores de las variables en la base de datos, la instruccion es : $query = sprintf("INSERT INTO usuarios (login, nombre, apaterno, amaterno, password, email) VALUES ('%s','%s','%s',

'%s','%s','%s')",mysql_real_escape_string($login),mysql_real_escape_string($nombre), mysql_real_escape_string($apaterno),mysql_real_escape_string($amaterno),mysql_real_escape_string($pas s1), mysql_real_escape_string($email)); y se la asignamos a la variable $query, la cual nos dice Insertar en la tabla usuarios en el campo login,nombre,apaterno,amaterno,password,email los valores de las variables $login,$nombre,$apaterno, $amaterno,$pass1,$email, cabe mencionar que hay que revisar el orden que tienen y que coincidan los campos con las variables, comunmente no inserta por ese detalle, ahora ejecutamos esa instruccion y la almacenamos en $result ahora hacemos la siguiente decision: if(mysql_affected_rows()) el cual nos devuelvera el nmero de filas afectadas en la ultima sentencia INSERT si es mayor a 0 entonces devolvera true, y enviara el mensaje que se introducieron y si no enviara que hubo error. Parte de codigo mejorada por el Team en seguridad informatica Xombra Ver codigo en Texto - Recomendable

PHP: 1.