Noticias con php parte IV

#codigo{background:#000;color:#fff;}

Sistema de usuarios con php y mysql

Hola amigos, en esta cuarta parte de creación de noticias con php vamos a seguir viendo cómo hacer una web de noticias simple, en esta parte vamos a crear un sistema de usuario para nuestra página web.

Para empezar a crear este sistema de usuarios tenemos que tener claro lo siguiente aspectos y que no puede pasar por alto al momento de la creación de un sistema de estos, primera mente tenemos que preguntarnos ¿Para qué quiero un sistema de usuarios en mi web? ¿Qué lograre con esto? Bueno simple mente hay personas que hacen un sistema de usuario solo por hacerlo aun sin tener que controlar nada en sus sitios.

Entonces la justificación de este sistema de usuario para esta web de noticias, serian las siguiente.
1- Controlar los comentarios que nos enviaran al momento de comentar las noticias
2- Controlar algunas secciones donde no queremos que entren todos los usuarios
3- Para poder administrar la web desde cualquier otro ordenador solo usando nuestra cuenta de administrador.

Con esto claro entonces ya sabemos lo que queremos para nuestro sistema de usuarios en php, entonces como ya sabemos lo que queremos empezamos a programar nuestro código php para dicho sistema.
Lo primero que vamos hacer es crear la base de datos yo en este caso les voy a llamar “noticiero” pero ustedes pueden ponerle el que quieran solo tienen que cambiar los datos en el código que vamos a ir programando.

Una vez creada la base de datos entonces creamos nuestra primera tabla que se va a llamar “usuario” a esta tabla les vamos a ponerle una longitud de 6 campos que son los siguientes: id_user, nombre, apellido, correo, clave, nivel entonces nuestro código de mysql seria el siguiente.

CREATE TABLE IF NOT EXISTS `usuario` (
  `id_user` int(11) NOT NULL,
  `nombre` varchar(50) NOT NULL,
  `apellido` varchar(50) NOT NULL,
  `correo` varchar(50) NOT NULL,
  `clave` varchar(50) NOT NULL,
  `nivel` varchar(2) NOT NULL,
  PRIMARY KEY (`correo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Con nuestra tabla ya creada empezamos a crear nuestra aplicación php la cual nos procesara los datos de los formularios que hicimos en el tutorial anterior aunque tendrán que agregar algunos códigos php, aunque como les dije en los tutoriales anteriores al final les voy a colocar todos los archivos para que lo puedan descargar y estudiarlo si hace lo desean y porque no también hacerle algunas mejoras.

Entonces para empezar los primero que vamos hacer es crear un archivo php llamado conexión.ph el cual nos permitirá conectarnos a la base de datos, entonces lo primero que tenemos que saber son los datos de nuestro servidor en caso de estar trabajando en modo local si no han configurado nada son los mismos que vamos a utilizar, entonces nuestro código php para la conexión.php a la base de datos sería el siguiente.

<?php
$host=’localhost’;
$usuario=’root’;
$password=”;
$bd=’noticiero’;
$conexion=mysql_connect($host,$usuario,$password)or die(mysql_error());
?>

Si te fijas lo primero que hacemos en este archivo es almacenar los datos en variables php lo cual nos permitirá trabajar de una forma más segura y rápida entonces ya con las varibles establecidas hacemos la conexión con mysql_connect .

También vamos a crear otro archivo php llamado sesión.php que es el que se encargara de verificar que estemos autenticados en el servidor y este decidirá si podemos entrar a un lugar protegido sí o no, entonces nuestro codigo de sesion.php seria el siguiente.

<?php
session_start();
if($_SESSION){
}else{
header(“Location: index.php”);
}
?>

Entonces si te fijas lo que hemos hecho es algo muy simple pero que nos servira para hacer lo que queremos.

Entonces con este archivo listo pasamos al archivo que va a dar de alta a los usuarios que estén registrados en la base de datos, en este caso por defecto he puesto en la página de ejemplo un usuario administrador llamado así mismo (Administrador) y si quieren un usuario simple solo tienen que registrarlo y probar para que vean las limitaciones que tiene.
Pueden acceder con estos datos admin@hotmail.com y la clave admin

Lo que podran ver de diferencia entre el administrador y los usuarios comunes que se regitran es que no le aparece el menu Administrar. Y tampoco pueden acceder al area de administrar noticias porque estas areas estan permitidas solo para los usuarios con nivel administrativos en este caso nivel 2.

Entonces ya con esto vamos a recuperar los datos que nos enviaran los usuarios cuando intenten acceder a nuestro sitio y abril una sesión.

Para eso lo hacemos con el archivo entrar.php que su código es el siguiente.

<?php
session_start();
require_once(‘conexion.php’);
$usermail=$_POST[‘mail’];
if($usermail==”){
    header(‘Location: entrar-user.php?error=meil’);
    }else{
        $password=$_POST[‘pass’];
        if($password==”){
            header(‘Location: entrar-user.php?error=clave’);
            }else{
                mysql_select_db($bd,$conexion);
                $datos=mysql_query(“select * from usuario where correo=’$usermail’ and clave=’$password'”,$conexion);
                if(!$datos){
                    header(‘Location: entrar-user.php?error=no’);
                }else{
                if($row=mysql_fetch_array($datos)){
                $_SESSION[‘name’]= $row[‘nombre’];
                $_SESSION[‘apelle’]= $row[‘apellido’];
                $_SESSION[‘niv’]=$row[‘nivel’];
                header(‘location: index.php’);
                }
                }
                }
        }

?>

Si te fijas en esta parte lo que hacemos es recuperar las variables que nos envía el formulario de entrar-usuario.php y almacenarla para luego comprobarla que no estén vacías en caso de que lo estén le decimos que vuelva a la página siguiente con header(‘Location: entrar-user.php?error=meil’); y que nos envié por la url la variable error con un dato en este caso seria meil. Estos datos es lo que controlara que el campo no esté vacio y por supuesto no sea un usuario invisible en nuestra base de datos.
Más adelante vamos a ver donde recuperaremos estas variables enviadas por la url GETTambién en este archivo si el usuario es autenticado correctamente entonces almacenamos los datos en una variable del servidor llamada $_SESSION y lo mandamos a la página principal en este caso index.php.

Básicamente con el archivo registrar.php vamos hacer lo mismo solo que en este caso queremos introducir datos en la base de datos y para ellos tenemos que recuperar los datos que nos envía el usuario comprobarlo que no estén vacios y en caso que cumplan los requisitos entonces darle de alta y enviarlo a que inicien sesión.

Entonces nuestro codigo php para el archivo registrar.php seria el siguiente.

<?php
require_once(‘conexion.php’);
//recuperamos los datos del nuevo usuario y comprobamos que no hayan campos vacios
$name=$_POST[‘nombre’];
if($name==”){
    header(‘Location: login.php?error=name’);
    }else{
$apelle=$_POST[‘apellido’];
if($apelle==”){
    header(‘Location: login.php?error=apelle’);
    }else{
$correo=$_POST[‘correo’];
if($correo==”){
    header(‘Location: login.php?error=meil’);
    }else{
$clave1=$_POST[‘pass’];
if($clave1==”){
    header(‘Location: login.php?error=pass’);
    }else{
$clave2=$_POST[‘rpass’];
if($clave1==$clave2){
// con todos los datos comprobados ahora pasamos a registrar el usuario a la base de datos
mysql_select_db($bd,$conexion);
$query=”INSERT INTO usuario(nombre,apellido,correo,clave) values (‘$name’,’$apelle’,’$correo’,’$clave2′)”;  
$insertar=mysql_query($query,$conexion);
if(!$insertar){
    header(‘Location: login.php?error=existe’);
    }else{
        header(‘Location: entrar-user.php?error=si’);
        }  
    }else{
        header(‘Location: login.php?error=rpass’);
        }
    }
    }
    }
    }
  
?>

También creamos el archivo para serrar la sesión que está abierta ese momento con el archivo salir.php el cual sería el siguiente.

<?php
session_start();
session_unset();
session_destroy();
header(‘Location: index.php’);
?>

En este pequeño código lo que hacemos para serrar la sesión es algo tal vez algo raro pero así es que funciona, primero comprobamos que la sesión existe con sessin_start si esta existe entonces la cargamos con sesión_unset y final mente la destruimos con sesión_destroy y luego que está destruida re direccionamos al usuario a la página principal.

Los códigos de validación que he puesto en los archivos html lo pueden ver en función en el ejemplo del curso noticias con php parte IV.

Los códigos de validación que he puesto en los archivos html lo pueden ver en función en el ejemplo del curso ejemplo IV.

Como ya tenemos un tutorial de validar formulario con php no explico esta parte solo les adjunto todo los archivos para que vallan probando como está quedando o si quieren lo pueden ver en función en el ejemplo IV.

Si descargan los archivos solo tienen que importar el documento noticiero.sql a su base de datos para que funcione todo correctamente y por su puesto tambien tienen que configurar el archivo de conexion.php con los datos de su servidor con esto correctamente el sistema hasta ahora iria marchando de maravillas.

Descargar ejemplo IV.

Bueno Gracias y hasta la proxima entrada…

Comments

  1. By Anonymous

  2. By Anonymous

Deja un comentario

Tu dirección de correo electrónico no será publicada.