Justi 7 de octubre de 2008 a las 13.45
   Imprimir artículo
elWebmaster.com

Taller de PHP: Nuestro blog – Sistema de noticias (1)


En la clase de hoy vamos a ver puntualmente un administrador de categorías para nuestro sitio. Vamos a necesitar las mismas para que las diferentes publicaciones de nuestro blog se puedan ubicar en diferentes categorías como pueden ser: editorial, talleres, noticias, etc.

Para ello primero vamos a ver como hacer que el administrador del sitio sea únicamente para los usuarios con el tipo “admin” y luego veremos cómo hacer un ABM de categorías, es decir, Altas, Bajas Modificaciones de las mismas.

Panel de admin exclusivo para admines

Dentro de la carpeta admin ahora vamos a agregar un archivo “index.php” al que sólo podrán acceder los administradores del sitio, y el cual contendrá el menú para actualizar nuestro sitio.

admin/index.php

  1. // iniciamos session
  2. session_start ();
  3.  
  4. // archivos necesarios
  5. require_once 'config.php';
  6. require_once 'conexion.php';
  7. require_once 'esUsuario.php';
  8.  
  9. // obtengo puntero de conexion con la db
  10. $dbConn = conectar();
  11.  
  12. // verificamos que no este conectado el usuario
  13. if ( !empty( $_SESSION['usuario'] ) && !empty($_SESSION['password']) ) {
  14. $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
  15. }
  16.  
  17. // verificamos que sea un admin
  18. if ( empty($arrUsuario) || $arrUsuario['tipo'] != 'admin' ) {
  19. header( 'Location: ../index.php' );
  20. die;
  21. }
  22.  
  23. ?>
  24. <h1>Blog Personal</h1>
  25. Bienvenido  - <a href="../index.php?salir=true">Salir</a>
  26. <ul>
  27.     <li><a href="categorias.php">Administrar Categorías</a></li>
  28. </ul>

Al igual que en el index del home de nuestro blog, tenemos el inicio de session, el llamado a los archivos necesarios y el puntero a la conexión de base de datos (última vez que comento esto, ya que va a estar en todos nuestros archivos lo doy por sentado a partir de ahora).

Luego si tenemos session completamos un array con los datos del usuario logueado y finalmente abajo preguntamos si el array esta vacío o no es un administrador, en caso de que esta condición se cumpla, quiere decir que, o no estoy logueado o soy un usuario común, por lo que no debería tener acceso a esta sección, entonces en ese caso, redireccionamos al home de nuestro sitio.

Eso es todo lo que vamos a tener de php en nuestro index del panel de control, más abajo, en el html tenemos la bienvenida al usuario y el enlace con la opción de salir que apunta directamente al home del blog, que es donde tenemos el condicional que pregunta si tenemos la variable get salir. Siempre debe apuntar a ese archivo. Por ahora como opciones en nuestro menú agregamos el administrador que categorías que es lo que vamos a empezar a ver hoy.

Por el momento nuestro archivo de categorías va a tener lo siguiente:

admin/categorias.php

  1. // iniciamos session
  2. session_start ();
  3.  
  4. // archivos necesarios
  5. require_once 'config.php';
  6. require_once 'conexion.php';
  7. require_once 'esUsuario.php';
  8.  
  9. // obtengo puntero de conexion con la db
  10. $dbConn = conectar();
  11.  
  12. // verificamos que no este conectado el usuario
  13. if ( !empty( $_SESSION['usuario'] ) &amp;&amp; !empty($_SESSION['password']) ) {
  14. $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );
  15. }
  16.  
  17. // verificamos que sea un admin
  18. if ( empty($arrUsuario) || $arrUsuario['tipo'] != 'admin' ) {
  19. header( 'Location: ../index.php' );
  20. die;
  21. }
  22.  
  23. // agregamos una categoria en la db
  24. // si se envio el formulario
  25. if ( !empty($_POST['submit']) ) {
  26.  
  27. // definimos las variables
  28. if ( !empty($_POST['nombre']) )     $nombre     = $_POST['nombre'];
  29.  
  30. // completamos la variable error si es necesario
  31. if ( empty($nombre) )   $error['nombre']        = 'Es obligatorio completar el nombre de la categoría';
  32.  
  33. // si no hay errores registramos al usuario
  34. if ( empty($error) ) {
  35.  
  36. // inserto los datos de registro en la db
  37. $query  = "INSERT INTO `categorias` (valor) VALUES ('$nombre')";
  38. $result = mysql_query($query, $dbConn);
  39.  
  40. header( 'Location: categorias.php?add=true' );
  41. die;
  42.  
  43. }
  44.  
  45. }
  46.  
  47. // traemos listado de categorias
  48. $arrCategorias = array();
  49. $query = "SELECT idCategoria, valor FROM `categorias` ORDER BY valor ASC";
  50. $resultado = mysql_query ($query, $dbConn);
  51. while ( $row = mysql_fetch_assoc ($resultado)) {
  52. array_push( $arrCategorias,$row );
  53. }
  54.  
  55. ?&gt;
  56. <h1>Blog Personal</h1>
  57. Bienvenido  - <a href="index.php">Panel de control</a> - <a href="../index.php?salir=true">Salir</a>
  58. <h2>Categorías</h2>
  59. <div style="border: 1px solid #ff8800; padding: 5px; background-color: #fdfdfd; width: 90%;">La categoría se agregó con éxito.</div>
  60. <div>
  61. <h3>Listado de Categorías</h3>
  62. <table style="border: 1px solid #cccccc; padding: 5px; width: 90%;" border="0">
  63. <tbody>
  64. <tr>
  65. <th style="background-color:#cccccc;padding:5px;">id</th>
  66. <th style="padding: 5px; width: 90%; background-color: #cccccc;">categoría</th>
  67. <th style="padding: 5px; background-color: #cccccc; width: 10%;"></th>
  68. </tr>
  69. <tr>
  70. <td style="padding:5px;"></td>
  71. <td style="padding:5px;"></td>
  72. <td style="padding:5px;"><a href="categorias.php?id=&lt;? echo $categoria['idCategoria']; ?&gt;">Editar</a> - <a href="categorias.php?del=&lt;?= $categoria['idCategoria'] ?&gt;">Borrar</a></td>
  73. </tr>
  74. </tbody></table>
  75. </div>
  76. <div>
  77. <h3 id="add">Agregar nueva categoría</h3>
  78. <form action="categorias.php" method="post"><label for="nombre">Nombre de la categoría</label>
  79.  
  80. <input name="nombre" type="text" /> <input name="submit" type="submit" value="Agregar" /> </form></div>

Al igual que como vimos en el index del panel de admin, en este caso tambien verificamos que sea un administrador el usuario logueado, o si no redireccionamos al home del blog. Esta verificación la vamos a tener a lo largo de todos nuestros archivos dentro del panel de admin.

Luego tenemos la comprobación de si se envió el formulario para agregar nuevas categorías a nuestro sitio. Las comprobaciones son muy similares a las que usamos en la registración del usuario.

Finalmente tenemos una consulta a la base de datos para mostrar todas las categorías existentes hasta el momento. Con array_push, que se encuentra dentro del while que va trayendo todos los resultados, vamos agregando los datos de la db en el array que se llama $arrCategorias.

El mismo es recorrido dentro de la tabla que se encuentra en la parte del html para mostrar los resultados.

Bueno, eso es todo por hoy, la semana que viene vemos como editar y borrar las categorías y les paso el adjunto de los archivos incluyendo el abm de categorías. Saludos.

<< CLASE ANTERIOR

CLASE SIGUIENTE >>


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (19)

  1. Ricardo Kotik dice:

    Agrego un datito para que no les falle la carga de las paginas que aqui detalla Justi.
    Agreguen una linea al principio de cada uno de estos archivos y pongan lo siguiente:
    <?
    Esa linea lo que hace es abrir el codigo PHP.
    Muy buen tuto Justi, Felicitaciones.

  2. Edison H. dice:

    Hola amisgos de elwebmaster.com… en especial al profe justi jeje
    Bueno mi pregunta es que IDE o programa usan para editar, compilar y ejecutar el codigo php aqui expuesto, ya que e bajado el xammp, pero no viene con lo que les escribi anteriormente, me gustaria que me ayudaran sino es mucha molestia… Ah y felicitaciones por su taller, aunque recien voy por las primeras clases ya que aunque paresca de Ripley soy egresado de ingenieria de sistemas y nunca me dieron php un lenguage muy versatil, potente y lo mejor de todo gratis.. 😀 Creo que deberian hacer una reforma del pensum academico de mi universidad… bueno pero eso esta fuera del tema…
    esperando su pronta respuesta, un saludo a la distancia y muchos exitospara todos ustedes.
    Att. edi

  3. kp dice:

    Hola Edison H. Te comento que podes usar cualquier editor de texto plano y luego guardar tus archivos con la extension .php. Para usar el xampp existe en este mismo blog un articulo, te recomiendo que lo leas, ya que los scripts no se ejecutan asi nomas…http://www.elwebmaster.com/articulos/xampp-servidor-web-facil-de-instalar

  4. Justi dice:

    Hola Edison, lo que respondio kp esta perfecto, no se necesita ninguna ide especial para trabajar con PHP, con un notepad alcanza, de todas formas hay algunas muy potentes, una de ellas es Zend Studio para Eclipse (es paga) y sino gratuita se puede utilizar Eclipse con extensiones para PHP.

  5. karen dice:

    hola estoy recien empezando a ver tus clases y me parecen muy buenas pero tengo un pequeño problema ya intale xampp y el sqlyog tb lo tengo wamp.
    el problema es cuando quiero vizualizar en explorer al ponerle localhost no puedo vizualizar lo q hize en el php dreamweaver por favor si me pudieras ayudar exactamente donde es lo q se tiene q guardar porfa…

  6. karen dice:

    si alguien tuviera el intalador de sqlyog

  7. Anne Laure dice:

    Super-Duper sitio! Me encanta! Volveré de nuevo – que lo alimenta también, Gracias.

  8. Alejandro dice:

    Como estan? Solo quisiera saber de que manera acceder al panel de control (backend) ya que intento acceder tecleando en el navegador /admin/index.php pero me redirecciona al home del frontend. No se de que manera agregar un administrador. Les ruego sacarme de dudas. Muchas gracias!

  9. Justi dice:

    @alejandro seguramente en la base de datos no te marcaste como “admin” por eso te redirecciona.

  10. Alejandro dice:

    Gracias por tu respuesta Justi! Problema solusionado. Quisiera saber si puedes orientarme sobre como hacer un sistemita (frontend-backend) o adaptar este, para que los clientes al entrar con login y pass, puedan acceder a su perfil individual y encontrar info sobre su proxima cita, precio, etc. Desde ya muchas gracias!

  11. Leo dice:

    Gracias por este taller, me esta siendo de gran utilidad.

    Mi primer problema es que no se agrega la categoría cuando aprieto en el botón “Agregar” a pesar de que aparece el texto “La categoría se agregó con éxito.” No aparece listada ninguna categoría y en phpMyadmin he podido comprobar que tampoco se ha agregado.
    ¿Alguien sabe porque sucede esto?

  12. Patty dice:

    Hola, Ya se que esto se publico hace mucho, agradezco mucho este taller, llevo como unh año buscando algo asi, perooooooooo… me di de alta como administrador y no me redirecciona a la pagina de administrador, es mas me dice que la contraseña o el usuario no coinciden, pero ya cheque y si los puse bien

  13. Javi dice:

    Muy buenas y felicitaciones por tu web antes de nada. Me ha surgido un pequeño problema y es que en tu línea 13 de los dos archivos /admin/index.php y /admin/categorias.php el navegador me indica que da un error de sintaxis ‘;’ . Por mas que lo miro no consigo ver que es lo que falla.. He releido el codigo, he vuelto a copiar el tuyo por si hubiese borrado algo sin querer, pero sigue siendo esta misma línea en los dos:

    if ( !empty( $_SESSION[‘usuario’] ) && !empty($_SESSION[‘password’]) ) {

    Si me ayudases.. Gracias por adelantado y felicitaciones de nuevo!

  14. Javi dice:

    Te reescribo de nuevo para confirmarte la solución… escribiendo tu archivo tal cual a esa línea lo que había que hacerle era quitarle el código de los “&” y poner los dos directamente, de todas formas gracias ^^

  15. Antonio dice:

    Hola tengo un duda y espero que me la resolváis, esta línea

    es para identificar al usuario como administrador yo quiero saber si es posible hacer que se pueda identificar a varios tipos de admin para que cada uno vea una cosa diferente en el panel de administración, como lo hago?

    Gracias.

  16. Antonio dice:

    Hola tengo un duda y espero que me la resolváis, esta línea

    “”

    es para identificar al usuario como administrador yo quiero saber si es posible hacer que se pueda identificar a varios tipos de admin para que cada uno vea una cosa diferente en el panel de administración, como lo hago?

    Gracias.

  17. Antonio dice:

    Hola tengo un duda y espero que me la resolváis, esta línea

    if ( $arrUsuario[‘tipo’] == ‘admin’ ) {

    es para identificar al usuario como administrador yo quiero saber si es posible hacer que se pueda identificar a varios tipos de admin para que cada uno vea una cosa diferente en el panel de administración, como lo hago?

    Gracias.

  18. MAtias dice:

    diskulpen la molestias peor kual es el archivo sql o de que manera quedaria la base de datos ??

  19. joel dice:

    hola justi tengo el mismo problema que javi, pero implemente su solucion pero no me funciona.. si podrias darme una mano. por si te sirve de algo uso php 5.3.8

    Gracias de ante mano..

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder