aplicación de chat en php

eugeniaperez.es
aplicación con conexión a bd
- Creo una BD llamada chat y dos tablas:

eugeniaperez.es
aplicación con conexión a bd
- Establece una FK de mensaje a usuario:

eugeniaperez.es
aplicación con conexión a bd
- Creamos un usuario:

eugeniaperez.es

sha1(admin)
chat
simple login
(Descargamos del aula las versiones del chat)

eugeniaperez.es
vamos a poner en práctica la sintaxis de php....
Viendo una manera no tan buena de hacer las cosas

eugeniaperez.es
para el 15 de noviembre debemos
entregar la funcionalidad básica y las validaciones. No es necesario que realicéis ampliaciones todavía ni que lo subamos por FTP a un espacio de hosting.

eugeniaperez.es
chat
- Ver los distintos ficheros PHP:
- Login / Logout
- Comprobación y acceso a BD: comprobar
- Zona protegida ->
- listado de mensajes
- inserción de mensajes

eugeniaperez.es
chat
- Para almacenar valores que vamos a necesitar a lo largo de la sesión tenemos la variable $_SESSION.
- Por ejemplo, el $_SESSION["nombre"] y el $_SESSION["id"] de usuario.
- Un $_POST se pierde de una pantalla a otra, pero $_SESSION PERDURA.
- Para poder utilizarlo debemos llamar a session_start();

eugeniaperez.es
BLOG
- Realizamos el mismo proyecto aplicado al blog.
- Súbelo a Bitbucket y vete haciendo commit de las diferentes versiones.
-
Creamos la BD del blog.
- Tabla usuario
- Tabla post

eugeniaperez.es
BLOG
- Intentamos hacer una pantalla de login que se dirija a una parte privada que liste los posts de los usuarios. En principio solo tendremos un usuario que será el administrador.

eugeniaperez.es

BLOG
- Introducimos el usuario administrador.
Cabe tener en cuenta que la contraseña irá encriptada en sha1. - Este será nuestro index.php

eugeniaperez.es

BLOG
A continuación creamos logincontroller.php, que permitirá garantizar que las credenciales son correctas.
Para ello:
- Se abre la conexión a BD: @mysql_connect("localhost", "root", "")
- Seleccionar la BD a utilizar: mysql_select_db(“blog")
- Componer la SELECT que compruebe al usuario en la BD
- Ejecutar la consulta: mysql_query y almacenar su resultado. Si la consulta genera resultado:
- if (mysql_num_rows($result) > 0)

eugeniaperez.es
BLOG
Cargamos un array asociativo que tiene como claves las columnas de la tabla y como valores los propios de los registros.
- Correcto: se guarda en sesión y se redirige a la parte privada.
- No correcto: se redirige a la parte pública (index) pasando por GET un error.

eugeniaperez.es
BLOG
Si todo ha ido correcto, el usuario se encuentra en la base de datos se le envía a esta pantalla (en caso contrario se mantiene en la pantalla de login y se muestra un error):

eugeniaperez.es

BLOG
Esta pantalla recogerá todos los posts de la BD y los listará. Para ello:
- Mismo proceso para conexión a BD.
- Creamos un post de prueba.
- Se ejecuta la SELECT
- Se compone una tabla que irá mostrando los posts del array asociativo, que luego se mostrarán en una tabla (thead, tbody, tr, th, td. Border, colspan, etc…).
- Como estamos mostrando el $_SESSION["nombre"] del usuario, necesitaremos iniciar la sesión.

eugeniaperez.es
BLOG

eugeniaperez.es
Hacemos el logout.php: finalizamos sesión (session_start, session_destroy) y redirigimos.
Importante: la zona de admin es privada… Luego se debe restringir su acceso:
//Si el usuario no está en sesión, lo redirigimos de nuevo a la página de login
if (!isset($_SESSION["nombre"])) {
header("Location: index.php?error=1");
}
BLOG
Añadiendo funcionalidad:
Listado de posts:
El enlace redireccionará a la propia página.
Escribir nuevo:
Redirige a esta página ->
Editar perfil: pendiente

eugeniaperez.es

BLOG
Creamos la página insertarpost.php, que contendrá un formulario de inserción. Para ello:
Importante: es privado… Luego se debe restringir su acceso.
Se crea el formulario de inserción.
Un controlador del post, que acceda a BD e inserte un post:
¡Hemos finalizado la primera versión de nuestro blog!

eugeniaperez.es
$sql = "INSERT INTO posts (titulo, contenido)
VALUES('" . $_POST["titulo"] . "','" . $_POST["contenido"] . "')";
CHAT
SIMPLE LOGIN V.2

eugeniaperez.es
CHAT
Cargamos el simple_login V2
Modificar un mensaje: PASO POR GET: modificar.php?id=" . $registro["id"]
Si existe un isset($_GET["id"]) => Hago una SELECT por ID, para cargarlo en los campos.
Cuando pulse sobre el botón => Comprobar si hay paso por POST:
if (isset($_POST["texto"])) ->Entonces se actualiza el mensaje (UPDATE)
Redireccionamos a la parte privada

eugeniaperez.es
CHAT
Comprobar:
Borrar un mensaje: PASO POR GET: borrar.php?id=" . $registro["id"]
Si existe un isset($_GET["id"]) =>
Me conecto a BD
Hago un DELETE por id
Redireccionamos a la parte privada

eugeniaperez.es
blog
- Volvamos a nuestra práctica del blog
- Vamos a incorporar el modificar (modificar.php)
- Y el borrar (borrar.php)

eugeniaperez.es
CHAT
SIMPLE LOGIN V3

eugeniaperez.es
CHAT
- Vamos a ver como mostrar la información de usuario, en perfil.php (a través de un SELECT contra BD)
- Y la modificación del perfil en modificarPerfil.php:
- Lo primero es cargar los campos del usuario correctamente.
- Para ello, SELECT por el id de usuario en SESSION.
- También un UPDATE en caso de que se envíe información por POST -> al hacer clic sobre el formulario.
- Se redirige a protegida finalmente.

eugeniaperez.es
BLOG
- Creamos el Acerca de...
- Modificar el perfil
Solo nos quedaría el listado de posts inicial...
Vamos a hacerlo sobre la práctica del chat...
REALIZA UN COMMIT DEL PROYECTO A TU REPOSITORIO DE BITBUCKET

eugeniaperez.es
Aplicación en PHP
By eugenia_perez
Aplicación en PHP
- 1,354