[Megapost] PHP desde 0 Parte 2
Como estan amigos de T!, hace poco cree un post de como hoy les traigo este post como les habia mencionado en el pasado tutorial que si tenia exito iba hacer uno de php y aqui esta a que mola.
Nota: Clic en las imagenes para verlas de tamaño completo.
Selección de registros en una tabla
Hecha esta aclaración, vamos a crear un archivo al que llamaremos leer.php, y su contenido será:
Vamos por partes, en principio capturamos la variable op, esta variable la enviaremos a travez del menu, después evaluamos si la variable $opcion existe, si es así significa que se he enviado una variable por la URL y por tanto vamos a realizar una consulta a la base de datos para mostrar el contenido asignado al id de la variable.
Para eso, en primera instancia vamos a incluir nuestro archivo conect.php, y después haremos un query del tipo select cuya sintaxis es:
SELECT campo FROM tabla WHERE campo = valor
Ahora, algo importante es que el realizar esta consulta NO devuelve el valor del campo, únicamente almacena en la variable $respuesta una referencia a los datos almacenados en el campo seleccionado.
Para recuperar esos datos hacemos uso de un while y de la función mysql_fetch_array() esta funcion retorna un vector asociativo con los datos del registro rescatados. De modo que la variable $existe se transforma en un vector que contiene los datos rescatados de la consulta.
Entonces, mientras $existe exista, el bucle while nos devolverá el contenido de la clave [‘arto’]
Si acaso no se paso ninguna variable por la URL, el script devolverá el contenido de la pagina de inicio (el ultimo echo que esta cortado en la imagen)
Ahora, ¿como incluimos estos resultados en nuestro index.php? Exacto, es lo que estabais pensando, haremos un include en el area que destinemos para nuestro contenido, de esta forma:
Si corremos nuestro index.php en nuestro navegador veremos algo como esto:
Al no pasar ninguna variable a través de la URL, nuestro script simplemente nos muestra la pagina que definimos por defecto, sin embargo si agregamos a nuestro index.php?op=1
¡VOILA! Veremos el contenido que ingresamos en nuestra base de datos, para el campo #1
Vamos por buen camino, sin embargo, aun nos hace falta crear un menu para acceder a los elementos de nuestro contenido. Vamos a crear un archivo menu.php y en el vamos escribir un script que liste los valores de la tabla para el campo menu con un formato de hipervínculo
El script es muy parecido al ejemplo anterior, con la única diferencia que estamos solicitando en nuestra consulta una referencia a TODOS los datos del campo “menu” y TODOS los datos del campo “id”
De esa forma, construimos un hipervinculo dinámico que pase por URL la variable correspondiente al id de nuestro articulo, para que leer.php pueda mostrar el contenido de dicho articulo.
Cuando incluimos este script en nuestro index.php:

En principio, vamos a introducir el primer elemento de la lista, que corresponde a nuestro index.php y después hacemos nuestro include del archivo que recién creamos, de modo que en el navegador veremos algo como esto:
Únicamente, nos hace falta incluir los títulos de nuestro contenido, esto lo hare con un archivo llamado leertitulos.php, que sera muy parecido a nuestro leer.php
Lo incluimos donde mas nos guste en nuestro index.php, aunque claro esto no hace falta que lo explique.
Hemos terminado con nuestro index.php, y por ende con nuestro INDEX sin embargo nuestro panel de administración aun esta muy incompleto y es que solo tenemos un formulario para ingresar datos a nuestra base de datos. Datos que eventualmente podríamos necesitar editar o bien eliminar.
Dar de baja un registro en la tabla
Una tarea que vamos a realizar muy a menudo, es eliminar un registro, pero claro para eliminar un registro, primero necesitamos enlistarlos, esto lo haremos exactamente como en los ejemplos anteriores, crearemos un archivo al que llamaremos listedit.php y vamos a incluir el siguiente script
Como siempre, vamos a incluir nuestro archivo conect.php de modo que accedamos a nuestra base de datos. En este script se envia el parametro del a travez de la URL dentro del while, si este parametro es enviado entonces se ejecuta el query:
DELETE FROM tabla DONDE campo=valor
Si no se envía este valor, únicamente seguimos ejecutando el script que enlista cada uno de los elementos de nuestra base de datos, sin embargo no hace falta que detalle esto pues hemos hablado suficiente de cómo enlistar valores. La única diferencia con los ejemplos anteriores es que los enlistamos a modo de tabla.
Esto en el navegador, Se vería más o menos así:
Aunque editar por supuesto aun no funciona pues no hemos creado nuestra página de edición.
Actualizar un registro en la base de datos
Vale, ahora vamos a crear una página donde podamos editar nuestros datos, vamos a llamarle editar.php y vamos a crear el siguiente formulario:
Probablemente os preguntarais que es eso de “hidden” pues un campo oculto no es mas que un elemento de formulario que no se puede editar, lo utilizaremos para almacenar el valor de la variable antes de ser modificada.
Con respecto a $mostrar[‘campo’] si, es exactamente lo que creen, parte de un php que aun no hemos escrito, pero que llamara a dichos valores desde una base de datos.
Efectivamente, lo único nuevo en este script es la consulta a MySQL que no es mas que:
UPDATE tabla SET campo=valor_nuevo WHERE campo=valor_viejo
De igual forma, definimos si se ejecuta uno u otro segmento del script considerando las acciones del usuario, Veamos el script completo:
Y en el navegador, si hacemos click en “editar” de nuesto listedit.php, veremos algo como esto:
De modo que de esta forma podemos editar los elementos de nuestra base de datos, pero vamos a ponerlo todo junto para crear un precario panel de administración, pero que valga para esta guía introductoria. Ahora, este panel de administración debe estar protegido pues no deseamos que cualquier usuario de nuestro sitio tenga acceso a modificar nuestra información.
Creando un sistema de autentificación
Estamos considerando que nuestro sitio únicamente será editado por una persona, por lo que haremos un sistema de autentificación muy básico para nuestro panel de administración.
En primera instancia, vamos a mover todos los archivos que pertenecen al panel de administración a una carpeta del mismo nombre, en mi caso he creado un archivo index2.php donde he incluido el contenido de los otros archivos. (esto no hace falta explicarlo pues lo hemos visto para nuestro index.php) en la misma carpeta, vamos a crear un nuevo documento de nombre index.php
Vamos a crear un formulario que solicite al usuario el username y la contraseña para entrar al área de administración:
Ahora, Vamos a introducir un cartelito que diga “Introduce tu clave” si no se ha enviado ninguna, o bien “Clave equivocada” si el usuario ha introducido una clave incorrecta.
Entonces, en el navegador no veremos mas que un formulario, sin embargo dado que el archivo login.php aun no existe, es un formulario que no tiene ninguna utilizad, por eso, vamos a crear un nuevo documento llamado login.php
En esta pagina, mediante una cláusula condicional evaluamos si los valores del campo corresponden a los del usuario del panel de administración:
Si los datos corresponden, entonces creamos una sesión con la función session_start(); también podríamos usar una cookie, pero una variable de sesión es mas segura que una cookie pues se almacena en el servidor.
Después, asignamos un valor a nuestra variable de sesión en $_SESSION[‘valor asociativo’] y procedemos a redireccionar al usuario a nuestro index2.php si la contraseña no es correcta, unidamente mandamos al usuario a la pagina index.php con un valor de retorno.
Si probamos este sistema, en teoria funciona sin embargo un usuario podria simplemente escribir en el navegador url/administración/index2.php y tendria acceso a nuestro panel de administración, entonces debemos restringir ese acceso.
Para eso vamos a crear un nuevo archivo que incluiremos en todos los documentos que deseemos restringir, le llamaremos llave.php
En este script, evaluamos si el contenido de la variable $_SESSION es “si”, contenido que se le asigna tras comprobarse que el campo de username y pass corresponde con la clave y contraseña, si el contenido de la variable $_SESSION es diferente de “si” entonces enviamos al usuario a la pagina de login.
Ahora, solo hace falta incluir el archivo llave.php en cada uno de los archivos que deseamos restringir.
De modo que si intentamos acceder a los mismos por URL, nos enviara a la pagina de login. Ahora solo hace falta crear un documento que finalice la session del usuario, yo le llamare salir.php
Un link a este archivo permitirá al usuario terminar la session, aunque si no hace click la sesión terminara al cabo de un determinado tiempo de inactividad.
Finalmente hemos creado un sitio interactivo, con contenido dinamico, que probablemente puede quedar mucho mejor, pero eso lo dejo a su creatividad, mi objetivo con este pequeño curso es unicamente mostrar las nociones basicas para la creación de un sitio web dinamico con el uso de php y MySQL, mas adelante en futuros cursos aprenderemos un poco mas sobre JavaScript y DHTML.
Un saludo espero sus comentarios

