Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 9 de 9

Tema: Como hacer formulario de comentarios para mi web

  1. #1
    Me va gustando esto... Habitante
    Fecha de Ingreso
    19 sep, 12
    Mensajes
    157
    Poder de Reputación
    8

    Como hacer formulario de comentarios para mi web

    Hola a todos, quisiera saber como se hace para poder poner formularios en mi web, para que la gente pueda poner un comentario y su nombre del tema que se expone. Os dejo mi web para que veáis como podría hacerlo Gracias, un saludo.

    http://www.mundoenigmatico.com/

  2. #2
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    05 sep, 13
    Mensajes
    1
    Poder de Reputación
    0

    Caja de comentarios simple usando PHP y HTML.

    No sé si el tema aún te interese, puesto que ya tiene bastante tiempo esta pregunta; pero igual dejo un método relativamente sencillo para escribir la caja de comentarios desde 0, por si a alguien le interesa.

    Primero necesitamos crear una base de datos en el servidor, y dentro de ella crear una tabla llamada COMENTARIOS, con los siguientes campos:

    (Si no sabes crear bases de datos, te recomiendo te pases por acá)

    ID: Es la fila clave y, por lo tanto, la que se autoenumera. Su configuración será la siguiente:
    Tipo=tinyint
    Valor=4
    Atributos=unsigned_zerofilled
    Null=No
    Extra=auto_increment
    El siguiente campo será NAME, y se usará para el nombre de quien comenta. Su configuración es esta:
    Tipo=varchar
    Valor=50
    Collation=utf8_spanish_ci
    Null=No
    El siguiente campo, será EMAIL, y tendrá la misma configuración que NAME.

    El siguiente campo, se utilizará para el contenido del comentario, lo llamaremos COMMENT, y su configuración será esta:
    Tipo=varchar
    Valor=1000 (o el máximo número de carácteres que quieras permitir)
    Collation=uf8_spanish_ci
    Null=No
    El último campo, y también el más importante, lo llamaremos ENTRY, y lo usaremos para diferenciar los comentarios de cada página de el sitio. O sea, para que a la hora de mostrar los comentarios de Artículo1, salgan SOLO los de Artículo1, y no los de Artículo2, ni los de Artículo3; ya que todos se guardan en la misma base de datos. Su configuración será exactamente la misma que EMAIL y NAME.

    Lo siguiente es crear el archivo config.php.
    Abre un block de notas (o cualquier editor de texto), y escribe lo siguiente:

    Código PHP:
    <?php
     $server
    ="servidor de la base de datos";
     
    $database "nombre de la base de datos";
     
    $db_user "usuario de la base de datos";
     
    $db_pass "contraseña de la base de datos";
    ?>
    Obviamente, sustituyendo lo que está entre comillas por los datos dados por tu servicio de host.

    Ahora construiremos la caja de comentarios en html y la pegaremos en... bueno... donde quieras ponerla, el código que yo uso es el siguiente (siéntete libre de modificarlo a tu antojo, siempre y cuando no cambies los valores "NAME","EMAIL", "COMMENT", "ENTRY" y "sendcomment.php":
    Código HTML:
    <?php
       $url=$_SERVER['REQUEST_URI'];
    ?>      
    <div id="box">
       <form method="post" action="sendcomment.php">
       <b>
       <hr /><hr />
          ¡Oye, tú! ¡Sí, tú! ¡Deberías dejar un comentario!
       </b>
       <br />
       <br /><input type="text" name="NAME" value="" size="20" maxlength="20" placeholder="Nombre (requerido)" required />
       <br />
       <input type="text" name="EMAIL" value="" size="20" maxlength="20" placeholder="Correo electrónico" />
       <br /><br />
       <textarea name="COMMENT" rows="10" cols="50" wrap="soft" placeholder="Máximo 1000 carácteres" maxlength="1000" required></textarea><br />
       <input type="hidden" name="ENTRY" value="<?php echo "$ENTRY";?>">
       <input type="hidden" name="URL" value="<?php echo "$url"; ?>" />
       <input type="submit" value="Enviar" name="Enviar" />
    </form>
    Como podrás ver, en el penúltimo input tag, el valor dado a ENTRY es "<?php echo "$ENTRY";?>". Lo que hace este pequeño pedazo de código, es sustituir el valor de ENTRY por cualquier valor que le hayamos asignado a la variable $ENTRY. Ahora, ¿dónde asignamos la variable entry?. Bien. Ve al <title></title> de la página en la que pegaste la caja de comentarios y sustitúyelo (cambiando la parte de "Título", por el título de tu página actual) por esto:
    Código HTML:
    <title>
    <?php
       $ENTRY = "Título";
       echo "$ENTRY";
    ?>
    </title>
    Lo que hacemos con esto, es asegurarnos que el título de la página que usamos, y el valor de $ENTRY serán siempre el mismo (ojo, tenemos que usar diferentes títulos para cada página o los comentarios de páginas con el mismo nombre se mezclarán). Al guardar el código fuente modificado de tu página, tienes que hacerlo con extensión <i>.php</i>, ya que si lo haces con extensión <i>.html</i>, no funcionará.

    Ahora tenemos que crear el archivo sendcomment.php (el encargado de enviar los comentarios a la base de datos). El código de este archivo es este:
    Código PHP:
    <?php
       
    include("config.php") ;
       
    mysql_connect($server$db_user$db_pass) or die ("error1".mysql_error());
       
    mysql_select_db($database) or die ("error2".mysql_error());
       
    mysql_query ("INSERT INTO `nombredelabasededatos`.`COMENTARIOS` (`NAME`, `EMAIL`, `COMMENT`, `ENTRY`) VALUES ('$_POST[NAME]', '$_POST[EMAIL]', '$_POST[COMMENT]', '$_POST[ENTRY]') "); 

       
    $url $_POST[URL];
       
    header ("Location:$url");
       exit();
    ?>
    NOTA: SUSTITUIR nombredelabasededatos POR EL NOMBRE DE TU BASE DE DATOS.

    "mysql_connect" sirve para conectarse a la base de datos.
    "mysql_select_db" sirve para seleccionar la base de datos.
    "mysql_query" sirve para insertar datos en la base de datos.

    Si hiciste todo bien hasta ahora, los comentarios que se escriban en la caja de comentarios --válgame la redundancia--, serán almacenados en la base de datos. ¿Pero cómo hacemos para que aparezcan en nuestra página?

    Bueno, para eso necesitamos agregar otro pedazo de código PHP dentro de la página donde queremos que aparezcan los comentarios (Sí, código PHP dentro de un archivo HTML. El código en cuestión, es este:
    Código PHP:
    <?php
       
    include("config.php") ;
       
    mysql_connect($server$db_user$db_pass) or die ("error1".mysql_error());
       
    mysql_select_db($database) or die ("error2".mysql_error());
       
    $result mysql_query("SELECT * FROM `nombredelabasededatos`.`COMENTARIOS` WHERE ENTRY='$ENTRY'");
          while(
    $row mysql_fetch_array($result)) {
             echo 
    "<b>".$row['NAME']."</b>"."<p>".$row['COMMENT']."</p>";
             echo 
    "<hr />";
          }
    ?>
    NOTA: SUSTITUIR nombredelabasededatos POR EL NOMBRE DE TU BASE DE DATOS.
    NOTA 2: RECUERDA GUARDAR TODOS LOS ARCHIVOS DONDE QUIERAS USAR LA CAJA DE COMENTARIOS COMO .PHP Y NO COMO .HTML

    En este código hay varios comandos nuevos:
    "mysql_query" sirve para descargar información de la base de datos.
    "SELECT * FROM -- WHERE" eligen los datos a descargar basados en un criterio, que en este caso es "ENTRY=$ENTRY" (o sea, que el valor de la variable $ENTRY, tiene que ser igual al valor almacenado en el campo ENTRY, de la base de datos). En caso de que no haya quedado muy claro, el valor de $ENTRY siempre será igual al <title></title> de la página actual, por lo que, al buscar los comentarios en la base de datos, solo se mostrarán aquellos que tengan como valor el título de la página actual almacenado en el campo $ENTRY de la base de datos.
    "mysql_fetch_array" sirve para, digamos, desencripar la información descargada de la base de datos.
    "$result = mysql_query" sirve para almacenar los datos descargados por mysql_query en la variable $result.
    "$row = mysql_fetch_array($result)" sirve para almacenar los datos desencriptados por la mysql_fetch_array en la variable $row.
    while = sirve para que el comando se siga repitiendo hasta que no encuentre datos (o sea, que muestre todos los comentarios en vez de solo el primero).
    echo imprime los comentarios en el siguiente formato:
    Freak Addict
    Comentario de ejemplo número 1


    Steve Dice
    Comentario de ejemplo número 2

    Por último, no olvides guardar TODOS los archivos donde uses la caja de comentarios como .PHP y NO como .html. No puedo enfatizar esto lo suficiente.

    Eso sería todo, y espero haber sido de utilidad. Cualquier problema, no dudes en preguntarme.
    Última edición por FreakAddict; 05/09/2013 a las 08:27

  3. #3
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    29 jun, 16
    Ubicación
    TUI
    Mensajes
    2
    Poder de Reputación
    0
    Gracias FreakAddict creo que me será útil

  4. #4
    Recien Llegado! Merodeador
    Fecha de Ingreso
    19 abr, 16
    Mensajes
    7
    Poder de Reputación
    0
    Por que puede darme este error

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/u248279179/public_html/index.php on line 421

    gracias

  5. #5
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    10 abr, 14
    Mensajes
    1
    Poder de Reputación
    0
    Hola a todos , FreakAddict gracias por tu codigo lo he puesto en mi web, modeandolo a mi gusto y de verdad esta muy bien, pero tengo una consulta, cada vez que escribo un comentario se recarga la pagina, como puedo solucianarlo?, he buscado por google y todo a punta que tiene que ser co ajax, pero no tengo ni idea, podrias echar una mano?, muhas gracias.

  6. #6
    Recien Llegado! Merodeador
    Fecha de Ingreso
    12 jul, 17
    Mensajes
    3
    Poder de Reputación
    0
    Yo creo que existen plantillas para todas estas cosas no?? No entiendo mucho y la respuesta que te han dado es mucho más acertada, pero en la mayoría de editores o en las mismas plantillas existen estas cosas en forma de pluggins... (a ver, no tengo mucha experiencia, hablo sin conocimiento de causa y probablemente las palabras no son las más técnicas xD, sólo quería ayudar un poco)...

  7. #7
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    12 jul, 17
    Mensajes
    1
    Poder de Reputación
    0
    Yo utilizo un plugin que se llama Discuss... No se si es a ese tipo de formulario que te refieres. Fácil de instalar y de usar. Saludos
    Autor en Psiqueduelo, descubre todo sobre las Etapas del Duelo y más.

  8. #8
    Recien Llegado! Habitante
    Fecha de Ingreso
    15 ago, 17
    Mensajes
    21
    Poder de Reputación
    1
    Si es wordpress solo con activar el plugin "contact Form 7" es suficiente y muy fácil.

  9. #9
    Recien Llegado! Pasaba por aquí...
    Fecha de Ingreso
    19 oct, 17
    Mensajes
    2
    Poder de Reputación
    0
    Es curioso ver como en 2013 se ponía un formulario de contacto. Hoy está incluido en un gran número de themes. Los nuevos formularios los puedes ver en cualquier web (Centro Auditivo) con una gran posibilidad de personalización y sin saber apenas código.

Temas Similares

  1. Respuestas: 1
    Último Mensaje: 25/06/2009, 01:59
  2. COMO HACER PARA QUE LA GENTE PUEDA DEJAR COMENTARIOS
    Por ariviti en el foro Foro General
    Respuestas: 8
    Último Mensaje: 22/05/2007, 22:39

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •