Justi 24 de noviembre de 2008 a las 12.30
   Imprimir artículo
elWebmaster.com

Taller de PHP: Nuestro blog – Sistema de comentarios (2)


Hola, ya queda poquito para nuestro blogsito, obviamente que después les va a faltar diseño pero bueno, eso ya le corresponde al taller de Dreamweaver y Photoshop 😀 .

En la clase de hoy vamos a ver como moderar los comentarios que hemos recibido, para ello agregaremos la opción en el administrador y luego agregaremos los comentarios aprobados en la página de la nota comentada.

Los archivos que tocaremos hoy son admin/comentarios.php (nuevo), admin/index.php y vernoticia.php

A admin/index.php sólo le vamos a agregar el enlace a admin/comentarios.php para que se pueda acceder desde el menu de administración. Veamos este último archivo (el de comentarios.php)

admin/comentarios.php

  1. <?
  2.  
  3. // iniciamos session
  4. session_start ();
  5.  
  6. // archivos necesarios
  7. require_once 'config.php';
  8. require_once 'conexion.php';
  9. require_once 'esUsuario.php';
  10.  
  11. // obtengo puntero de conexion con la db
  12. $dbConn = conectar();
  13.  
  14. // verificamos que no este conectado el usuario
  15. if ( !empty( $_SESSION&#91;'usuario'] ) && !empty($_SESSION['password']) ) {
  16.     $arrUsuario = esUsuario( $_SESSION&#91;'usuario'], $_SESSION['password'], $dbConn );
  17. }
  18.  
  19. // verificamos que sea un admin
  20. if ( empty($arrUsuario) || $arrUsuario&#91;'tipo'] != 'admin' ) {
  21.     header( 'Location: ../index.php' );
  22.     die;
  23. }
  24.  
  25. // borramos un comentario
  26. if ( !empty($_GET&#91;'del']) ) {
  27.    
  28.     $query  = "DELETE FROM `comentarios` WHERE idComentario = {$_GET['del']}";
  29.     $result = mysql_query($query, $dbConn);
  30.        
  31.     header( 'Location: comentarios.php?dele=true' );
  32.     die;
  33.    
  34. }
  35.  
  36. // aprobamos un comentario
  37. if ( !empty($_GET&#91;'apr']) ) {
  38.    
  39.     $query  = "UPDATE `comentarios` set estado = 'apto' WHERE idComentario = {$_GET['apr']}";
  40.     $result = mysql_query($query, $dbConn);
  41.        
  42.     header( 'Location: comentarios.php?aprobar=true' );
  43.     die;
  44.    
  45. }
  46.  
  47. // editamos el comentario
  48. if ( !empty($_POST&#91;'submitEdit']) ) {
  49.    
  50.     // definimos las variables
  51.     if ( !empty($_POST&#91;'comentario']) )     $comentario         = $_POST['comentario'];
  52.     if ( !empty($_POST&#91;'idComentario']) )   $idComentario       = $_POST['idComentario'];
  53.    
  54.     // completamos la variable error si es necesario
  55.     if ( empty($comentario) )       $error&#91;'comentario']        = 'Es obligatorio tener un cuerpo';
  56.     if ( empty($idComentario) )     $error&#91;'idComentario']      = 'Es obligatoria la id de comentario';
  57.    
  58.     // si no hay errores registramos al usuario
  59.     if ( empty($error) ) {
  60.        
  61.         // inserto los datos de registro en la db
  62.         $query  = "UPDATE `comentarios` set comentario = '$comentario' WHERE idComentario = $idComentario";
  63.         $result = mysql_query($query, $dbConn);
  64.        
  65.         header( 'Location: comentarios.php?edit=true' );
  66.         die;
  67.        
  68.     }
  69.        
  70. }
  71.  
  72. // traemos listado de comentarios sin aprboar
  73. $arrComentarios = array();
  74. $query = "SELECT comentarios.idComentario, comentarios.comentario, comentarios.idNoticia, usuarios.usuario, noticias.titulo  
  75. FROM `comentarios`
  76. INNER JOIN `usuarios` ON comentarios.idUsuario = usuarios.idUsuario
  77. INNER JOIN `noticias` ON comentarios.idNoticia = noticias.idNoticia
  78. WHERE comentarios.estado = 'sin validar'
  79. ORDER BY comentarios.idComentario ASC";
  80. $resultado = mysql_query ($query, $dbConn);
  81. while ( $row = mysql_fetch_assoc ($resultado)) {
  82.     array_push( $arrComentarios,$row );
  83. }
  84.  
  85. // si tenemos una categoria puntual
  86. if ( !empty($_GET&#91;'id']) ) {
  87.     // traemos una categoria
  88.     $query = "SELECT idComentario, comentario FROM `comentarios` WHERE idComentario = {$_GET['id']}";
  89.     $resultado = mysql_query ($query, $dbConn);
  90.     $row = mysql_fetch_assoc ($resultado);
  91. }
  92.  
  93. ?>
  94. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  95. <html xmlns="http://www.w3.org/1999/xhtml">
  96. <head>
  97.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  98.     <title>Blog Personal</title>
  99. </head>
  100.  
  101. <body>
  102.  
  103.     <h1>Blog Personal</h1>
  104.     <p>Bienvenido <?= $arrUsuario&#91;'usuario'] ?> - <a href="index.php">Panel de control</a> - <a href="../index.php?salir=true">Salir</a></p>
  105.     <h2>Comentarios sin aprobar</h2>
  106.     <? if ( !empty($_GET&#91;'aprobar']) ) { ?>
  107.     <div style="background-color: #fdfdfd;border:1px solid #ff8800;width:90%;padding:5px">El comentario se marc&oacute; como apto con &eacute;xito.</div>
  108.     <? } elseif ( !empty($_GET&#91;'dele']) ) { ?>
  109.     <div style="background-color: #fdfdfd;border:1px solid #ff8800;width:90%;padding:5px">El comentario ha sido borrada con &eacute;xito.</div>
  110.     <? } elseif ( !empty($_GET&#91;'edit']) ) { ?>
  111.     <div style="background-color: #fdfdfd;border:1px solid #ff8800;width:90%;padding:5px">El comentario ha sido editado con &eacute;xito.</div>
  112.    
  113.     <? } ?>
  114.    
  115.     <div>
  116.         <h3>Listado de Comentarios sin aprobar</h3>
  117.         <table style="width:90%;padding:5px;border:1px solid #cccccc">
  118.             <tr>
  119.                 <th style="background-color:#cccccc;padding:5px;">id</th>
  120.                 <th style="width:80%;background-color:#cccccc;padding:5px;">comentario</th>
  121.                 <th style="background-color:#cccccc;padding:5px;width:20%"></th>
  122.             </tr>
  123.             <? foreach ($arrComentarios as $comentario) { ?>
  124.             <tr>
  125.                 <td style="padding:5px;"><? echo $comentario&#91;'idComentario']; ?></td>
  126.                 <td style="padding:5px;">
  127.                     <? echo $comentario&#91;'comentario']; ?><br />
  128.                     <i>Dijo <b><? echo $comentario&#91;'usuario']; ?></b> en <a href="../vernoticia.php?idNoticia=<? echo $comentario['idNoticia']; ?>"><? echo $comentario&#91;'titulo']; ?></a></i>
  129.                 </td>
  130.                 <td style="padding:5px;"><a href="comentarios.php?apr=<? echo $comentario['idComentario']; ?>">Aprobar</a> - <a href="comentarios.php?id=<? echo $comentario['i<?
  131.  
  132. // iniciamos session
  133. session_start ();
  134.  
  135. // archivos necesarios
  136. require_once 'admin/config.php';
  137. require_once 'admin/conexion.php';
  138. require_once 'admin/esUsuario.php';
  139.  
  140. // obtengo puntero de conexion con la db
  141. $dbConn = conectar();
  142.  
  143. // verificamos que este conectado el usuario
  144. if ( !empty( $_SESSION['usuario'] ) && !empty($_SESSION['password']) ) {
  145.     $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );       
  146. }
  147.  
  148. if ( !empty($_POST['submit']) ) {
  149.    
  150.     if ( !empty($_POST['comentario']) )     $comentario     = $_POST['comentario'];
  151.     if ( !empty($_GET['idNoticia']) )       $idNoticia      = $_GET['idNoticia'];
  152.     if ( !empty($arrUsuario['idUsuario']))  $idUsuario      = $arrUsuario['idUsuario'];
  153.    
  154.     // completamos la variable error si es necesario
  155.     if ( empty($comentario) )   $error['comentario']        = true;
  156.     if ( empty($idNoticia) )    $error['idNoticia']         = true;
  157.     if ( empty($idUsuario) )    $error['idUsuario']         = true;
  158.    
  159.     // si no hay errores registramos al usuario
  160.     if ( empty($error) ) {
  161.        
  162.         // inserto los datos de registro en la db
  163.         $query  = "INSERT INTO `comentarios` (comentario, idUsuario, idNoticia) VALUES ('$comentario','$idUsuario','$idNoticia')";
  164.         $result = mysql_query($query, $dbConn);
  165.        
  166.         header( 'Location: vernoticia.php?idNoticia='.$idNoticia );
  167.         die;
  168.        
  169.     }
  170.    
  171. }
  172.  
  173. // traemos la noticia
  174. $query = "SELECT noticias.idNoticia, noticias.titulo, noticias.copete, noticias.cuerpo, categorias.valor as categoria, usuarios.usuario FROM `noticias`
  175. INNER JOIN `categorias` ON categorias.idCategoria = noticias.idCategoria
  176. INNER JOIN `usuarios` ON usuarios.idUsuario = noticias.idUsuario
  177. WHERE noticias.idNoticia = " . $_GET['idNoticia'] . " LIMIT 1";
  178. $resultado = mysql_query ($query, $dbConn);
  179. $noticia = mysql_fetch_assoc ($resultado);
  180.  
  181. // traemos los comentarios aprobados
  182. $arrComentarios = array();
  183. $query = "SELECT comentarios.idComentario, comentarios.comentario, usuarios.usuario  
  184. FROM `comentarios`
  185. INNER JOIN `usuarios` ON comentarios.idUsuario = usuarios.idUsuario
  186. WHERE comentarios.estado = 'apto' AND comentarios.idNoticia = " . $_GET['idNoticia'] . "
  187. ORDER BY comentarios.idComentario DESC";
  188. $resultado = mysql_query ($query, $dbConn);
  189. while ( $row = mysql_fetch_assoc ($resultado)) {
  190.     array_push( $arrComentarios,$row );
  191. }
  192.  
  193. ?>
  194. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  195. <html xmlns="http://www.w3.org/1999/xhtml">
  196. <head>
  197.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  198.     <title>Blog Personal</title>
  199. </head>
  200.  
  201. <body>
  202.  
  203.     <h1>Blog Personal</h1>
  204.    
  205.     <? if ( empty($arrUsuario&#91;'usuario']) ) { ?>
  206.     <ul>
  207.         <li><a href="ingresar.php">Iniciar sesi&oacute;n</a></li>
  208.         <li><a href="registrar.php">Reg&iacute;strate gratis</a></li>
  209.     </ul>
  210.     <? } else { ?>
  211.     <p>Bienvenido <?= $arrUsuario&#91;'usuario'] ?> - <a href="index.php?salir=true">Salir</a></p>
  212.         <? if ( $arrUsuario&#91;'tipo'] == 'admin' ) { ?>
  213.         <ul>
  214.             <li><a href="admin/index.php">Panel de administraci&oacute;n</a></li>
  215.         </ul>
  216.         <? } ?>
  217.     <? } ?>
  218.  
  219.     <h2><?php echo $noticia&#91;'titulo']; ?></h2>
  220.     <p>Publicado por <b><?php echo $noticia&#91;'usuario']; ?></b> en <i><?php echo $noticia&#91;'categoria']; ?></i></p>
  221.     <div><?php echo $noticia&#91;'cuerpo']; ?></div>
  222.    
  223.     <h2>Comentarios</h2>
  224.     <div>
  225.         <? foreach ($arrComentarios as $comentario) { ?>
  226.         <p>
  227.             <b><? echo $comentario&#91;'usuario']; ?></b> dijo:<br />
  228.             <i><? echo $comentario&#91;'comentario']; ?></i>
  229.         </p>
  230.         <? } ?>
  231.     </div>
  232.    
  233.     <div>
  234.         <?php if ( !empty( $arrUsuario ) ) { ?>
  235.        
  236.             <form action="vernoticia.php?idNoticia=<?php echo $_GET['idNoticia']; ?>" method="post">
  237.                 <p>
  238.                     <label for="comentario">Dejar un comentario</label><br />
  239.                     <textarea rows="3" cols="50" name="comentario"></textarea>
  240.                 </p>
  241.                 <p>
  242.                     <input name="submit" type="submit" value="Enviar" />
  243.                 </p>
  244.             </form>
  245.        
  246.         <?php } else { ?>
  247.             <p>Para dejar un comentario hay que ser un usuario registrado. <a href="registrar.php">Registrar</a> o <a href="ingresar.php">Ingresar</a></p>
  248.         <?php } ?>
  249.     </div>
  250. </body>
  251. </html>
  252. dComentario']; ?>">Editar</a> - <a href="comentarios.php?del=<?= $comentario['idComentario'] ?>">Borrar</a>
  253.             </tr>
  254.             <? } ?>
  255.         </table>
  256.     </div>
  257.    
  258.     <? if ( !empty($_GET['id']) ) { ?>
  259.         <div style="background-color:#ff8800;padding:5px; margin-top:10px;">
  260.             <h3 id="add">Editar comentario</h3>
  261.             <? if (!empty($error)) { ?>
  262.                 <ul>
  263.                 <? foreach ($error as $mensaje) { ?>
  264.                     <li><?= $mensaje ?></li>
  265.                 <? } ?>
  266.                 </ul>
  267.             <? } ?>
  268.             <form action="comentarios.php" method="post">
  269.                 <p>
  270.                     <label for="nombre">Comentario</label><br />
  271.                     <textarea name="comentario" rows="5" cols="50"><? echo $row['comentario']; ?></textarea>
  272.                 </p>
  273.                 <p>
  274.                     <input name="idComentario" type="hidden" value="<? echo $row['idComentario']; ?>" />
  275.                     <input name="submitEdit" type="submit" value="Editar" />
  276.                 </p>
  277.             </form>
  278.         </div>
  279.     <? } ?>
  280.    
  281. </body>
  282. </html>

Con los comentarios vamos a poder tener 3 acciones posibles. Una de ellas es borrar los comentarios indeseados, el otro aprobar los comentarios, y por último editarlos, para poder corregir alguna que otra falta de ortografía de nuestros usuarios, no para editarles el contenido del mismo 😉 .

Para borrar es muy similar a como veníamos haciéndolo con los otros elementos. El aprobar en realidad es también muy similar. Recibimos por get la id que queremos aprobar y luego hacemos un UPDATE en la base de datos. Con el editar seguimos igual que como veníamos haciendo con los otros elementos.

De hecho la mayor dificultad que tenemos en esta página es la consulta para traer los comentarios que le hacemos un join con la tabla de usuarios y con la tabla de noticias (para saber quién hizo el comentario y a que noticia pertenece el mismo). Prestar atención que estamos trayendo unicamente los comentarios que estan SIN VALIDAR, es decir, todos aquellos que no hemos visto aún.

En la parte de html simplemente hacemos el foreach con los comentarios y agregamos los enlaces.

Finalmente nos queda por hacer el mostrado de los comentarios en la noticia específica.

  1. <?
  2.  
  3. // iniciamos session
  4. session_start ();
  5.  
  6. // archivos necesarios
  7. require_once 'admin/config.php';
  8. require_once 'admin/conexion.php';
  9. require_once 'admin/esUsuario.php';
  10.  
  11. // obtengo puntero de conexion con la db
  12. $dbConn = conectar();
  13.  
  14. // verificamos que este conectado el usuario
  15. if ( !empty( $_SESSION&#91;'usuario'] ) && !empty($_SESSION['password']) ) {
  16.     $arrUsuario = esUsuario( $_SESSION&#91;'usuario'], $_SESSION['password'], $dbConn );       
  17. }
  18.  
  19. if ( !empty($_POST&#91;'submit']) ) {
  20.    
  21.     if ( !empty($_POST&#91;'comentario']) )     $comentario     = $_POST['comentario'];
  22.     if ( !empty($_GET&#91;'idNoticia']) )       $idNoticia      = $_GET['idNoticia'];
  23.     if ( !empty($arrUsuario&#91;'idUsuario']))  $idUsuario      = $arrUsuario['idUsuario'];
  24.    
  25.     // completamos la variable error si es necesario
  26.     if ( empty($comentario) )   $error&#91;'comentario']        = true;
  27.     if ( empty($idNoticia) )    $error&#91;'idNoticia']         = true;
  28.     if ( empty($idUsuario) )    $error&#91;'idUsuario']         = true;
  29.    
  30.     // si no hay errores registramos al usuario
  31.     if ( empty($error) ) {
  32.        
  33.         // inserto los datos de registro en la db
  34.         $query  = "INSERT INTO `comentarios` (comentario, idUsuario, idNoticia) VALUES ('$comentario','$idUsuario','$idNoticia')";
  35.         $result = mysql_query($query, $dbConn);
  36.        
  37.         header( 'Location: vernoticia.php?idNoticia='.$idNoticia );
  38.         die;
  39.        
  40.     }
  41.    
  42. }
  43.  
  44. // traemos la noticia
  45. $query = "SELECT noticias.idNoticia, noticias.titulo, noticias.copete, noticias.cuerpo, categorias.valor as categoria, usuarios.usuario FROM `noticias`
  46. INNER JOIN `categorias` ON categorias.idCategoria = noticias.idCategoria
  47. INNER JOIN `usuarios` ON usuarios.idUsuario = noticias.idUsuario
  48. WHERE noticias.idNoticia = " . $_GET&#91;'idNoticia'] . " LIMIT 1";
  49. $resultado = mysql_query ($query, $dbConn);
  50. $noticia = mysql_fetch_assoc ($resultado);
  51.  
  52. // traemos los comentarios aprobados
  53. $arrComentarios = array();
  54. $query = "SELECT comentarios.idComentario, comentarios.comentario, usuarios.usuario  
  55. FROM `comentarios`
  56. INNER JOIN `usuarios` ON comentarios.idUsuario = usuarios.idUsuario
  57. WHERE comentarios.estado = 'apto' AND comentarios.idNoticia = " . $_GET&#91;'idNoticia'] . "
  58. ORDER BY comentarios.idComentario DESC";
  59. $resultado = mysql_query ($query, $dbConn);
  60. while ( $row = mysql_fetch_assoc ($resultado)) {
  61.     array_push( $arrComentarios,$row );
  62. }
  63.  
  64. ?>
  65. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  66. <html xmlns="http://www.w3.org/1999/xhtml">
  67. <head>
  68.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  69.     <title>Blog Personal</title>
  70. </head>
  71.  
  72. <body>
  73.  
  74.     <h1>Blog Personal</h1>
  75.    
  76.     <? if ( empty($arrUsuario&#91;'usuario']) ) { ?>
  77.     <ul>
  78.         <li><a href="ingresar.php">Iniciar sesi&oacute;n</a></li>
  79.         <li><a href="registrar.php">Reg&iacute;strate gratis</a></li>
  80.     </ul>
  81.     <? } else { ?>
  82.     <p>Bienvenido <?= $arrUsuario&#91;'usuario'] ?> - <a href="index.php?salir=true">Salir</a></p>
  83.         <? if ( $arrUsuario&#91;'tipo'] == 'admin' ) { ?>
  84.         <ul>
  85.             <li><a href="admin/index.php">Panel de administraci&oacute;n</a></li>
  86.         </ul>
  87.         <? } ?>
  88.     <? } ?>
  89.  
  90.     <h2><?php echo $noticia&#91;'titulo']; ?></h2>
  91.     <p>Publicado por <b><?php echo $noticia&#91;'usuario']; ?></b> en <i><?php echo $noticia&#91;'categoria']; ?></i></p>
  92.     <div><?php echo $noticia&#91;'cuerpo']; ?></div>
  93.    
  94.     <h2>Comentarios</h2>
  95.     <div>
  96.         <? foreach ($arrComentarios as $comentario) { ?>
  97.         <p>
  98.             <b><? echo $comentario&#91;'usuario']; ?></b> dijo:<br />
  99.             <i><? echo $comentario&#91;'comentario']; ?></i>
  100.         </p>
  101.         <? } ?>
  102.     </div>
  103.    
  104.     <div>
  105.         <?php if ( !empty( $arrUsuario ) ) { ?>
  106.        
  107.             <form action="vernoticia.php?idNoticia=<?php echo $_GET['idNoticia']; ?>" method="post">
  108.                 <p>
  109.                     <label for="comentario">Dejar un comentario</label><br />
  110.                     <textarea rows="3" cols="50" name="comentario"></textarea>
  111.                 </p>
  112.                 <p>
  113.                     <input name="submit" type="submit" value="Enviar" />
  114.                 </p>
  115.             </form>
  116.        
  117.         <?php } else { ?>
  118.             <p>Para dejar un comentario hay que ser un usuario registrado. <a href="registrar.php">Registrar</a> o <a href="ingresar.php">Ingresar</a></p>
  119.         <?php } ?>
  120.     </div>
  121. </body>
  122. </html>

Obviamente es igual a nuestro viejo vernoticia.php pero ahora le agregamos la consulta con los comentarios con estado APTO y que tengan idNoticia como nuestra variable GET idNoticia.

Finalmente en el html le agregamos un foreach con los comentarios para que todo el mundo los pueda leer y listo.

Ya tenemos terminado nuestro blog. Queda después en ustedes mejorarlo permitiendo poner avatares en los usuarios, o publicar las fechas de los comentarios, etc…

Saludos y nos vemos la clase que viene.

Aquí les dejo los archivos usados en la clase para que descarguen.

<< CLASE ANTERIOR CLASE SIGUIENTE >>

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

Comentarios (35)

  1. Rubén dice:

    El sistema de blog es ¡BUENÍSIMO! Espero leer el código fuente para saber bien como funciona. En mi caso lo acabo de ejecutar en servidor local (Facultad de Ciencias Veterinarias, Argentina) y anda genial.
    Muchas gracias por transmitir tus conocimientos, a mí en particular todo me cuesta más. Sigo esta página para aprender.

  2. Enrique J Fica F dice:

    Que buena clase… felicitaciones por todos tus conocimientos..

    Que Dios te siga dando Gracia!.

  3. Luis Alfonso dice:

    Realmente me gustan muchas las clases que das muy buenas… A reserva que hace falta un ultimo tema, me gustaria hacer algunas preguntas, si quisieramos seguir por este `maravilloso camino de la programacion que otros cosas debemos estudiar o conocer para poder llegar a ser tan buenos como tu???… 2.- Cuales son las tendencias actualmente a que nos debemos enfocar a la hora de aprender cosas tan practicas como esta, que nos haz enseñado??? 3.- me gustaria que nos comentaras de algun proyecto que haya sido todo un reto tecnologico para ti, lo que implica estar en proyectos importatntes??? 4.- hacia donde va el PHP ( RIAS, Blogger, wordpress, etc ) osea hacia donde le vez mas uso??? 5.- para ti que ha sido lo mas o es lo mas dificil en PHP???

    Muchas gracias por compartir tus conocimientos y tu tiempo, espero que sigas impartiendo talleres PHP+ajax, javascript, Nose supongo que ya tendras algo en mente y creeme que ya somos muchos los que te seguimos, suerte y saludos

  4. sergio dice:

    Holas Webmaster,
    Tu script esta fabuloso bien echa lo instale en mi web site pero no me resulta todo ok
    me sale errores de sql mira cheka http://tuclavedeexito.com/sistemacomentarios/ justo ahi no se puede ni registrar creo que nesecita base de datos no esta publicado en los claces anteriores por favor una ayudadita webmaster. gracias

  5. daury.rd dice:

    Hola promeramente..
    lo segundo es que si se creo una tabla en la primera clase de la creacion del sistema de blog lo que pasa es que la tabla que crea JUSTI tiene errores.. yo por mi cuenta le eh mandado un correo a elwebmaster.com pidendoles que lo arreglen pero parece que no leen los comentarios ni los mensajes. bien ya que ya an abido barias personas que le a dado este problema con la tabla comentarios y tambien con la tabla noticias.. bueno ahora mismo no me recuerdo solo se que ahy dos tablas que tienen un error en su crearcion y es por eso que te da el error amigo mio.

    ATT> Chifo tambien soy web master y espero que arreglen esto ya que quiero hacer mi propio CMS.. que es casi lo mismo que un blog .. pero desde otro punto de VISTA>

    >>>>>>>>>> POR FAVOR STAFF DE ELWEBMASTER.com

    ARREGLEN LAS DOS TABLAS QUE TIENEN UN ERROR EN LA ESTRUCTURA SOY DAURY.rd@gmail.com ya le eh mandado un correo pero parecen que estan muy ocupado pero por favor que sea lo mas rapido posible..

    Grasias..por hacer elwebmaster.com

  6. Mauricio Sierra Cifuentes dice:

    WebMaster, me parece muy bueno tu blog, gracias por compartir muy buenas noticias y conocimientos como este.
    a pesar de que estoy registrado hace varios meses a t blog y recibo frecuentemente tus noticias, no tengo conocimiento respecto a los anteriores ejemplos de php, me gustaria que me colaboraras con las primeras clases, o si alguien suscrito a tu blog lee este comentario las tiene y me las quiere enviar al mail, les agradeceria que me ayudaran.
    mail: maosierra2.0@hotmail.com gracias!

  7. Justi dice:

    hola, si no pude contestar un comentario, fue porque no he tenido mucho tiempo ya que aparte de hacer los tallers, trabajo fulltime como programador y hay veces que hay que esperar un poquito.

    Con respecto a la creacion de las tablas en las primeras clases, eso es porque wordpress cambia el codigo, reemplaza las comillas simples por unos acentitos raros. Pero tendria que funcionar.

    Otra cosa que puede ser es que no soporte enum la version de mysql que tienen, eso se puede resolver usando un campo tinyint(1) y jugando con valores 0,1,2 y 3, el problema que esto tiene que estar bien documentado porque sino viene otro programador y no sabe que significa tipo = 2.

  8. Maximiliano dice:

    Si puedes contactarme al mail para ayudarme con algo que no entiendo. Cómo puedo hacer un aviso para que cuando mandan el comentario, les avise que este no va a ser mostrado hasta no ser aprobado? Saludos.

  9. Justi dice:

    @maximiliano haces un if viendo que si se mando correctamente el POST agregue un p o un div con el mensaje que queres poner

  10. Gilberto dice:

    hola, soy principiante en joomla (es decir, sé casi nada, solo editar), quiero saber si alguen me puede ayudar ya que no sé como activar el componente de foro, ya revise y está dentro de línea, como me lo sugirieron, pero creo que es otro el problema, si alguien ,e puede ayudar se los agradeceré mucho, un saludo.

  11. Morton dice:

    Hola, Gilberto

    Asegúrate de que la versión del plugin que descargaste sea compatible con tu versión de Joomla. Si no es así, intenta actualizarla, o prueba utilizar algún otro plugin. Aquí tienes un listado con otros plugins disponibles:

    Haz clic aquí para visitar las extensiones de foro de Joomla »

    Saludos!

  12. carlos dice:

    hola buenas es impresionante como repartiste el codigo para los demas millon de gracias pero yo soy algo novato en esto del php y neceisto un poco de ayuda cuando le doy al nombre y la contraseña me dicen que no existen y lo registre antes ese nombre y contraseña que hago mal me podriais ayudar por favor

  13. carlos dice:

    sr justi la verda que estoy aprendiendo mas en estas lecciones que estas dando que todos los estudios que he hecho muchas gracias enserio pero tengo un pequeño problema la verda es que todo me funciona correctamente vamos si quieres pasar por mi pagina y mirarlo que he aprendido de todo lo que nos has dicho seria un placer pero el problemilla es esto

    Error
    consulta SQL:

    CREATE TABLE `comentarios` (

    `idComentario` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `comentario` VARCHAR( 255 ) NOT NULL ,
    `idUsuario` INT( 11 ) UNSIGNED NOT NULL ,
    `idNoticia` INT( 11 ) UNSIGNED NOT NULL ,
    `estado` ENUM( ‘sin validar’, ‘apto’ ) NOT NULL DEFAULT ‘sin validar’,
    `fCreacion` TIMESTAMP NOT NULL
    ) ENGINE = MYISAM ;

    MySQL ha dicho:

    #1050 – Table ‘comentarios’ already exists
    eso me pasa en todas las tables y la verda no se de que es :-( me podrias alludar por fabor gracias

  14. carlos dice:

    wenas me podriais ayudar al comentario que dije anteriormente por favor????? gracias

  15. Justi dice:

    @carlos el error es que la tabla ya fue creada!, estas intentando crearla de nuevo, si no la llegas a ver en phpMyAdmin proba haciendo refresh! saludos.

  16. carlos dice:

    gracias justi are el refresh que me comentas

  17. Dante dice:

    En verdad muy bueno, gracias

  18. Daniel Guerrero dice:

    Felicidades Justi haces una gran labor al compartir tu conocimiento, llevo solo una semana en el curso y no sabia nada de php, bueno si se html, sql server y programacion, y ahora ya estoy creando webs dinamicas con tu ayuda.. gracias sigue adelante exitos !!

  19. niko dice:

    muy bueno

  20. dasdssadsa dice:

    020304’ ; DROP TABLE usuarios

  21. Moreno dice:

    buena tutorial

  22. Patricia dice:

    Hola, oye disculpa, teclie todo y tome todo el curso, es buenisimo, no habia encontrado un curso tan detallado como este, pero resulta que al acabr de teclearlo todo, funciono, menos todo lo correspondiente a administrador, cree tres usuarios como administradores y ninguno me lo acepta, solo acepta usuarios comunes… despues copie tus archivos exactamente como se bajan, claro con los cambios de la base de datos y eso, y sigue sin funcionar el area de administracion, me puedes ayudar … mas de lo que ya me ayudaste? estoy estudiando un diplomado web, pero creo que tu me ayudas mas… :) gracias

  23. Patricia dice:

    hola, otra vez yo, para decirte que se soluciono el problema, como los administradores los di de alta directo en la base de datos y no se cifraba el password no me los aceptaba, pero ya que los registre y se cifro y luego cambiara a admin en vez de comun los acepto y todo funciono… gracias

  24. Morton dice:

    @Patricia: ¡Qué bueno! Un saludo. :)

  25. Alejandro dice:

    ¿Cómo se ponen los avatares?
    ¡Un saludo!

  26. carlos dice:

    que tal…
    primeramente darte un cordial saludo….
    me gusto mucho tu taller de php y como ando aprendiendo un poco de ello me tome la livertad de ejecutar tu codigo para ver bien el funcionamiento del codigo….pero me tope con un pequenio problema…que no me permite iniciar sesion con ninguno de los usuarios que he creado…y me aparecen stos errores…
    Warning: Missing argument 3 for esUsuario(), called in C:\AppServ\www\php\ingresar.php on line 16 and defined in C:\AppServ\www\php\admin\esUsuario.php on line 3

    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\php\admin\esUsuario.php on line 10

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\php\admin\esUsuario.php on line 11

    te agradeceria mucho me ayudaras…
    saluds….

  27. Jhymy dice:

    He tenido algunos problemillas con algunas partes del codigo, pero en general tu tutorial me vino de perlas, y eso que es del 2008, gracias!!!por fin acabare mi dichoso proyecto Web.
    Saludos!!!

  28. Josue dice:

    Hola Gracias por el tutorial
    me puedes ayudar con esto es que no terminaste la linea

    <a href=”comentarios.php?apr=”>Aprobar – <a href=”comentarios.php?id=<? echo $comentario[‘i<?

    si alguin me puede ayudar se lo agradeceria todo esta perfecto solo que me quede con esto

    gracias

  29. Sargento dice:

    Justi muy bueno el tutorial.. excepto la parte final.. el tutorial de los comentarios.. Empezaste con todo y terminaste decayendo.. Un error muy grave.. ni si quiera hiciste un INSERT INTO para agregar los comentarios a la ddbb, asique gente si quieren implementar un sistema de comentarios.. busquen otro en la red.. este no funca.. y nunca lo han corregido! Una lastima justi.. porque es muy completo tu tutorial.. saludos.. espero que puedas arreglarlo un dia de estos..

  30. Izcoatl dice:

    buenas noches tengo un problema apenas empiezo en esto de programacion para hacer un blog en estos lenguajes buscando informacion y codigos de ejmplos llegue a este blog el cual mire un codigo que me intereso. lo descargue pero al ver los archivos no viene la base de datos, el admin quien subio este tema o informacion seria tan amable de pasarme la base de datos porfavor. alguien quien me pase la base de datos

  31. duver dice:

    no veo la base de datos, me la podrían enviar al correo dukemen28@hotmail.com, gracias

  32. Luis choque mamani dice:

    Aqui que le falta?…o donde continua?…., estuve probando, logeandote como usuario admin no me redirecciona al panel…
    /body>

    dComentario’]; ?>”>Editar – <a href=”comentarios.php?del=”>Borrar

  33. vape Pens dice:

    Hi! I just would like to offer you a huge thumbs up for the excellent information you have
    got here on this post. I am coming back to your website for more soon.

  34. Roberto dice:

    Hola Justi, Como podriamos sacar el numero de comentarios por noticia, tanto para el blog, como para la noticia en si misma? Hasta ahora todo genial, lo he implantado en mi web, con mi CSS y va de lujo!

    Gracias!

  35. ulises dice:

    hola no podria poner un link con el proyecto termindo pacto tiene erra descargar xq el link de arriba lo descargue pero el proye

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