Cómo enviar comentarios con jQuery y AJAX
En este tutorial vas a aprender como crear un formulario que permite agregar comentarios al usuario sin recargar la página. Para conseguirlo, estoy usando las tecnologías jQuery, AJAX, JSON y PHP.
En prácticamente todas las Webs con interacción es necesario interactuar de la forma más agradable posible con el usuario. Casi todas estas páginas dispone de un sistema para captar y enviar comentarios sobre algún artículo o producto.
La mayoría de sistemas de comentarios trabaja con PHP y una base de datos. El inconveniente de este tipo de sistemas es que al enviar un comentario la página se tiene que recargar por completo. Si quieres optimizar este sistema y hacer que sólo se cargue el comentario enviado sin tener que recargar la página por completo puedes utilizar la tecnología jQuery y Ajax.
Dentro de la cabecera de tu página o dentro de la etiqueta <head> añade la librería jQuery y los estilos necesarios para cambiar el aspecto:
También en el <head> puedes incluir el código jQuery que hará la llamada mediante el método AJAX y JSON:
<script type="text/javascript"> $(document).ready(function() { $("#submitComment").click(function() { var name = $("input#name").val(); var comment = $("textarea#comment").val(); var now = new Date(); var date_show = now.getDate() + '-' + now.getMonth() + '-' + now.getFullYear() + ' ' + now.getHours() + ':' + + now.getMinutes() + ':' + + now.getSeconds(); if (name === '') { alert('Debes añadir un nombre.'); return false; } if (comment === '') { alert('Debes añadir un comentario.'); return false; } var dataString = 'name=' + name + '&comment=' + comment; $.ajax({ type: "POST", dataType: "json", url: "process.php", data: dataString, success: function(response) { if (response) { $('#new-comment').show(); $('#new-comment').find('#author-name').text(response.name); $('#new-comment').find('.comment-text').text(response.comment); $('#new-comment').find('#date-show').text(response.date_show); } } }); return false; }); }); </script>
Como puedes observar, el código anterior espera a que se haga click en botón o enlace con id=»submitComment» donde se recogen las variables «name» y «comment» que son los datos depositados en el formulario. Reconstruimos una fecha para mostrar y generamos otra variable «dataString» que se rellena con los datos enviados desde el formulario para luego pasárselo al archivo process.php usando la técnica AJAX con tipo de datos de retorno JSON.
El archivo process.php se encarga simplemente de insertar en la base de datos la información necesaria para añadir un comentario. Puede tener el siguiente aspecto:
<?php
require('config.php');
$name = strip_tags(utf8_decode($_POST['name']));
$comment = strip_tags(utf8_decode($_POST['comment']));
$insert = $conexion->query('INSERT INTO comments (name, text, date_added) VALUES ("'.$name.'", "'.$comment.'", now())');
if ($insert) {
$row = array(
'name' => $name,
'comment'=> $comment,
'date_show' => date('d/m/Y H:i:s')
);
echo json_encode($row);
}
?>
El archivo config.php que se está incluyendo en la primera linea se encarga de crear la conexión con la base de datos.
Su contenido es tan solo:
<?php
$conexion = new mysqli('localhost', 'USUARIO DE TU BASE DE DATOS', 'CONTRASEÑA DE TU BASE DE DATOS', 'NOMBRE DE TU BASE DE DATOS');
?>
Aquí tendrás que rellenar los datos de conexión con tu base de datos.
Seguidamente, recogemos mediante el método POST los datos del formulario que le hemos pasado mediante las técnicas AJAX.
Finalmente, realizamos una inserción con la información recibida en la tabla «comments» que debes tener en tu base de datos.
Una vez se ha realizado esta operación, es cuando se ejecuta el success que hay dentro de la llamada AJAX, donde simplemente estoy rellenado con la función append() un contenedor con id=»new-comment» que hay al final de los comentarios con las etiquetas vacías.
En el cuerpo de la página o dentro de la etiqueta <body> debes agregar el código que lee de la base de datos los 10 últimos comentarios para mostrarlos en pantalla:
<div id="content" class="col-lg-12">
<h2>Comentarios</h2>
<?php
$result = $conexion->query(
'SELECT name, text, DATE_FORMAT(date_added, "%d/%m/%Y %H:%i:%s") as date_show
FROM comments
ORDER BY date_added DESC LIMIT 0,10'
);
if ($result->num_rows > 0) {
?>
<div class="row items">
<?php while ($row = $result->fetch_assoc()) { ?>
<div class="col-lg-12">
<div class="comment">
<div class="row">
<div class="col-lg-2 comment-avatar">
<img class="img-fluid" width="250" height="250" src="images/user.png" />
</div>
<div class="col-lg-10">
<div class="comment-autor">
<strong><?php echo $row['name']; ?></strong> dice:<br/>
<small><?php echo $row['date_show']; ?></small>
</div>
<div class="comment-text"><?php echo nl2br($row['text']); ?></div>
</div>
</div>
</div>
</div>
<?php } ?>
<div id="new-comment" class="col-lg-12" style="display:none;">
<div class="comment">
<div class="row">
<div class="col-lg-2 comment-avatar">
<img class="img-fluid" width="250" height="250" src="images/user.png" />
</div>
<div class="col-lg-10">
<div class="comment-autor">
<strong><span id="author-name"></span></strong> dice:<br/>
<small><span id="date-show"></span></small>
</div>
<div class="comment-text"></div>
</div>
</div>
</div>
</div>
</div>
<?php } ?>
</div>
Si te fijas bien en el código anterior, puedes observar el contenedor con id=»new-comment» con las etiquetas vacías que serán rellenadas en el success de la llamada AJAX cada vez que se agregue un nuevo comentario.
El formulario para permitir al usuario enviar un comentario es muy sencillo, sería algo como lo siguiente:
<h2>Envia un comentario con JQUERY/AJAX</h2>
<div id="register_form" class="row">
<div class="col-lg-12">
<form method="post">
<div class="form-group">
<label for="name">Nombre</label>
<input type="text" class="form-control" name="name" id="name" placeholder="Tu nombre">
</div>
<div class="form-group">
<label for="comment">Comentario</label>
<textarea class="form-control" name="comment" id="comment" rows="3"></textarea>
</div>
<button type="button" id="submitComment" class="btn btn-primary">Enviar</button>
</form>
</div>
</div>
Tan solo he agregado un campo para poner un nombre y texto.
Thanks for posting this issue here. I really like to proceed and follow these gidelnes. Carry on!
Hola! Intente sumarle al formulario la posibilidad de que el usuario suba imagenes pero no me salio, no logro que se suban a la base datos el input de la imagen, podrias ayudarme con
los datos que deberia poner en el javascript y process.php para que pueda guardarse la imagen insertada en el formulario? Mil gracias!!
Hola,
Quizá te pueda servir este tutorial:
https://www.jose-aguilar.com/blog/como-subir-una-imagen-con-jquery-ajax-php/
Saludos
Hola, gran ejemplo me sirve mucho, pero ¿cómo hago para que también me extraiga la imagen del usuario y me la muestre?, así parecido a facebook.?
Hola,
Puedes usar lo mismo que hay en este artículo pero tan solo te falta pasar la url de la imagen para agregarlo con javascript al html en la respuesta Ajax Json.
Saludos
Gran aporte y excelente articulo. Un saludo!
El ejemplo esta muy bueno, pero no me quedó claro los campos o columnas que debe llevar la base de tados, podría ayudarme con eso?.
Hola,
Puedes crear una tabla con los siguientes campos:
id_comment, name, text, date_added
Con eso es suficiente para armar el ejemlo.
Saludos
Buen día: muchas gracias por este grandioso material, a mi me sucede lo siguiente, resulta que al conectar con la base de datos me aparece sino e solo el titulo del site sin el formulario. Que podría ser ?
hola, ya logre que saliera todo mi contenido, el problema que tengo es que no me guarda los comentarios, es decir, al refrescar la pagina se borran todos los comentarios, Agradezco mucho tu ayuda, Gracias !!
Deberás hacer debug en tu script y revisar que la query que utilizas para hacer el insert en la base de datos sea correcta. Para debugar las querys yo lo que suelo hacer es imprimirlas por pantalla con un echo y luego ir a la base de datos a ejecutarla para revisar que problema tiene.
Hola buenos días,
Sin ver el código que utilizas será muy difícil darte una respuesta acertada. Si nos facilitas un enlace y el código que utilizas quizá podamos ayudarte mejor.
Saludos
hola jose,primero las gracias por este sistema de comentarios, pero me surge un problema que no consigo resolver, como puedo hacer para que cada pagina de mi web tenga sus propios comentarios, sin que aparezcan los de otras paginas? muchas gracias.
Hola buenos días,
Para que cada página tenga sus propios comentarios debes condicionar los comentarios según la página. Entiendo que cada página tendrá un identificador único, pues debes añadir un nuevo campo a los comentarios para indicar que son de una página en concreto, como por ejemplo «id_page». Deberás cambiar el script para rellenar este campo nuevo y cambiar la query para que solo muestre los comentarios de la página que se está viendo.
Saludos
Hola.. buenas tardes! una pregunta estoy implementando su sistema de comentario en otro proyecto y pero su index lo eh pasado en mi vista principal, y ya me muestra la vista del index, pero no me guardan los datos en la base de datos, al momento de actualizar se borran los datos que eh capturado..
Hola,
Quizá te falte la parte más importante del artículo. Lo que hace referencia al archivo «addcomment.php».
Saludos
Muy bueno
Cordial Saludo José, Excelente página, he aprendido mucho gracias a ti, explicas súper bien.
Con respecto a este código, como haría para que la persona que administra la página pudiera comentar lo que las personas comentan, en mi caso estoy realizando una agencia de viajes, y pues sería conveniente que la persona que venda los viajes o la que este administrando la página pudiera despejarle las dudas a los posibles compradores, o también para que las demás personas miren el grado de satisfacción del viaje, cosas así.
Como el sistema de comentarios de esta página, es muy bueno y agradable a la vista.
Me serias de gran ayuda con este problemita jeje.
Gracias de antemano
Hola quisiera saber con este mismo ejemplo como hacer para que solo me aparescan los ultimos comentarios por lo menos unos 7 pero tambien pueda ver los anteriores. Gracias de antemano!!!
amigo disculpa mira soy nuevo pero una vez que ingresa como puedo hacer para que se formatee el formulario talvez me puedes ayudar por favor
Si quisiera agregar más datos aparte del nombre y comentario, por ejemplo el correo y sitio web. Como lo haría en….
var dataString = ‘name=’ + name + ‘&comment=’ + comment;
HOla,
Concatenando más información. Por ejemplo:
var dataString = ‘name=’ + name + ‘&comment=’+ comment + ‘&email=’ + email;
Espero te sirva,
Saludos
Muchas gracias, ya lo logré.
¿Cómo se le podría añadir la opción de responder a comentarios?
Hola, se podría hacer pero requiere un par de horas de programación. Si necesitas ayuda con esto no dudes en contactar con blog@jose-aguilar.com para ver como podemos proceder. Saludos
Hola, me gusto mucho este sistema, dondde puedo descargar el codigo fuente? es exactamente lo que necesito
Hola,
Hemos preparado un zip para que podáis tener todos los archivos del ejemplo:
http://www.jose-aguilar.com/scripts/jquery/ajax-comments/ajax-comments.zip
Saludos
Hola José, dices que hay que ejecutar la sentencia SELECT para seleccionar los comentarios de la BD, hasta ahí todo bien la cuestión es que esa sentencia en qué fichero se inserta? en el addcomment.php o en index.php. A mi los comentarios me los inserta de forma perfecta en la base de datos, pero luego no aparecen en ningún siti. El método de AJAX aparte de hacer la insercción en la BD, muestra de forma automática el resultado?
Gracias y perdona si he dicho alguna barbaridad.
Saludos.
Hola, para mostrar todos los comentarios tienes que hacer la consulta en el index.php
Hola Jose, gracias por la pronta respuesta.
Después de mirar el código, estoy volviéndome loco porque realmente no se como aplicar esa query para que muestre los resultados.
Me dijiste: Solo tienes que procesarla o ejectuarla en tu archivo php.
He procesado la sentencia: SELECT name, text, DATE_FORMAT(date_added, ‘%d-%m-%Y %H:%i:%s’) as date_show FROM comments ORDER BY date_added DESC LIMIT 0,20
Sin embargo por mas que la trato no logro mostrar los resultado, y por mas que le doy vueltas no lo consigo (es frustante T_T).
Podrías si fueras tan amable, de mostrar tu código para ver como lo has aplicado?
Un saludo y siento las molestias.
hola , muy buen tutorial , me funciono , y me preguntaba de como podría poner un limite de comentarios , asi como facebook , onda que diga mostrar mas , o mostrar comentarios mas antiguos.
Yo nose mucho de ajax , me gustaría tener mas o menos una idea de eso :/!!!!
Gracias por compartir tus conocimientos bro.
hola,
En la query que muestra los mensajes deberías poner una limitación. Algo asi:
SELECT * FROM comments WHERE id_product = 10 ORDER BY date_add LIMIT 0,20
En este caso estoy limitando la consulta a 20 resultados
Hola Jose tengo un problema prove este sistema de comentarios y funciona solo que al actualizar la pagina completa se me desaparecen los comentarios que puedo hacer para que eso no suceda?
gracias:)
HOla,
Lo primero que tienes que revisar es si el INSERT que se está ejecutando via ajax está funcionando mirando la base de datos si se están registrando los últimos comentarios. Si eso funciona tendrás que revisar la query que retorna los comentarios. Al menos en el ejemplo en funcionamiento está limitado a 20 comentarios.
Saludos
Hola Jose, gracias por compartir tus conocimientos con nosotros, te comento que me pasa igual que al usuario Alex, revise el código y todo esta igual como en el ejemplo, me puedes indicar cual es el query que retorna los comentarios.
Muchas Gracias por tu pronta respuesta.
Hola buenos días,
La query que estamos utilizando en la demo es esta:
SELECT name, text, DATE_FORMAT(date_added, ‘%d-%m-%Y %H:%i:%s’) as date_show FROM comments ORDER BY date_added DESC LIMIT 0,20
Saludos
Muy buenas, primero que todo darte las gracias por tan excelente tutorial, he seguido los pasos indicados y va de maravilla.
Al igual que muchos, yo solo tengo un problema, y es que en el momento de actualizar la pagina, el comentario realizado desaparece, he leído todos los comentarios y le dais solución al problema con:
SELECT name, text, DATE_FORMAT(date_added, ‘%d-%m-%Y %H:%i:%s’) as date_show FROM comments ORDER BY date_added DESC LIMIT 0,20
Mi duda es como debo resolver esto, es como si hiciera una consulta a la bd para extraer los datos, o se pasa estos valores de alguna forma al script?, estoy perdido en este aspecto, por lo demás de 10 :D, un saludo y espero me podáis echa una mano.
Esa query retorna los últimos 20 comentarios. Solo tienes que procesarla o ejectuarla en tu archivo php y luego hacer un foreach de los resultados.
No hay algún plugin que logre esto en wordpress?
En wordpress no lo se pero en prestashop si -> Comentarios sobre el producto con Ajax
AL RECARGAR DESAPARECE EL COMENTARIO ALGUIEN YA ENCONTRÓ LA SOLUCIÓN?
En la demo hemos quitado el insertar a la base de datos por seguridad pero está explicado como se hace en el tutorial
bien
Me gustaría poder realizar un buen formulario en mi página
probando el sistema de comentarios me funciona todo menos como a algunos de aquí el recargar. Es decir, escribo un comentario y me lo inserta el archivo.php en la base de datos, pero al recargar, mi página principal desaparecen los comentarios… pero en la base de datos se quedan guardados…al final he optado por hacer un buble e imprimir todo en la principal pero no se que he hecho mal. Un saludo.
hola jose, sabes como se podria añadir un sistema de votos a los comentarios? tipo flecha verde y flecha roja para sumar votos positivos y negativos? otra chincheta con este ejemplo, al final vas a copar mis marcadores de chrome jaja un saludo!
Hola buenas tardes,
Sistema de votación con flechas seguro que hay algún plugin pero nunca lo he utilizado. Lo que si he utilizado y posiblemente te pueda servir es el sistema de votación con estrellitas.
Podrías implementar alguno de estos plugins.
http://www.jose-aguilar.com/blog/?s=star+rating
Saludos
Muchas gracias por el sistema funciona a la perfeccion sin nunguna falla, le adapte para q solo los usuarios registrados puedan comentar e igual funciona bien, solo te pediria que si cuando alguien comentar, haiga la manera de responderle, o agregar la opcion responder al comentar que alguien haga 🙂 !! seria bueno 🙂 !! muchas gracias otra ves 🙂
tengo una duda, al insertar este sistema de comentarios, en mi sistema de noticias, osea el que crea la paginas: noticia.php?id=1, y asi, como hago para que solo se muestren los comentarios segun el id del posT !!
ya cambie los datos para que gurade los ID de cada post o noticia, lo que no entiendo es como hacer para q solo muestre los comentarios de esa noticia o post ??
Hola.
Gracias por el aporte.
Me funciona casi por completo. Inserto lo datos en la base de datos pero no me los muestra sin tener que recargar la página. Qué me falta? Lo tengo tal y como lo ha descrito en su tutorial.
Muchas gracias por su tiempo.
Hola,
Facilítanos la url de tu ejemplo y seguramente podremos ver el error.
Saludos
Hola.
Ya está solucionado. Tenía bien hecha la conexión. Lo único que me faltaba era poner el mysql_fetch_array dentro de la etiqueta .
Gracias. Un gran aporte.
Hasta pronto.
muy buen aporte, gracias
hay un problema con la fecha por que cuando se comenta aparece correcto la fecha, el detalle es cuando se recarga la pagina la hora cambia 21 horas
Y por otro lado cuando agrego un comentario y recargo la pagina no aparece los comentarios agregados
Me gustó mucho tu sistema de comentarios, pero dado mis pocos conocimientos no supe como utilizarlo, me quedé atascado en la conexión con la base de datos. Tu artículo fuera de mucha más calidad y mucho más universal si hubieras explicado un poco mas detallado como hacer la conexion para que todo funcionara bien. Pues el artículo es para usuarios con algunos conocimientos que yo no poseo.
DE todas maneras Gracias….Buen aporte 🙂
Con todo el respeto compañero, se presupone que si quieres hacer un sistema de comentarios usando php, ajax, y jquery, lo mínimo es que aprendas a como conectar tu archivo a la base de datos, no se pueden explicar cosas tan básicas en cada ejercicio y ojo que yo no soy programador ni estudio para ello, pero conectar a la base de datos…por favor, es como querer hacer correr sin saber andar…el ejemplo está de 10. Un saludo.
Tienes razon, alguien que no sepa nada de codigo no va a estar buscando un sistema de comentarios, minimamente deberia saber como funciona MySQL,
aunque al tutorial si le faltan demaciados datos, uno como desarrollador los completa facilmente.
cuando envio el comentario este no se inserta y ademas actualiza la pagina en vez de realizarlo de forma asincronica con jquery. que podra ser?
no está bien sincronizado tu botón con el código ajax o te falta la librería jquery
ya revise mil veces el codigo y si lo esta el link es el siguiente
http://www.somosprogramadores.com/videotutorial/60/curso-de-css3-introduccin-box-shadow-border-radius
hola gracias
lo tengo tal cual y ya los datos al parecer se graban en la tabla de mi base de datos,
yo uso phpmyadmin y al entrar a examinar mi tabla efectivamente los datos
están grabados
el único inconveniente es el que considero mas importante es que, si bien los datos ingresados aparecen en la tabla, estos no se reflejan en el index
ya que al actualizar no logra postear ningun comentario
que podria ser? algun error en el html o deberia activar algo en la base de datos?
hola
gracias por el tutorial lo hice y me funciona el script
pero no me esta insertando los valores en la tabla comments
que cree detro de mi base de datos
en la taba he agregdo las filas name text y date_added
con atribtos varchar pero no me agrega nada
ara que la inforamcion quede al actualizar
$insert = mysql_query(“INSERT INTO comments (name, text, date_added) VALUES (‘$name’, ‘$comment’, now())”, $conexion);
_________________________________________________________________
$conexion = mysql_connect($servidor, $usuario, $password);
mysql_select_db($base, $conexion);
Hola,
Bueno a simple vista veo que el campo para almacenar la fecha en la base de datos no debe ser un varchar sino un tipo date.
Saludos
que debe contener el archivo config.php?
Debes añadir las siguientes 2 lineas añadiendo el acceso a la base de datos que estés utilizando:
$conexion = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $conexion);
lo tengo igual pero no me guarda los datos al actualizar la pagina,
acaso me falta algo o hay algo que deba cambiar, disculpa mi ignorancia en
conexiones con php, pero este post es tan practico que no quisiera irme sin
tener todo concreto
gracias de antemano
perdona ya entiendo el codigo
quisiera saber si donde dice host tiene que ser la ip del servidor?
o el nombre de la pagina
gracias
siiw, hiwlom,safie
HOLA QUISIERA SABER SI TIENEN UN EJEMPLO DE COMO HICIERON ESTE SISTEMA DE COMENTARIOS?, NO EL DEL EJEMPLO SI NO EL DE TU WEB
Es una plantilla que he hecho yo para wordpress. Maquetación de los comentarios de WordPress.
lo que pasa es que al agregar el comentario todo funciona bien pero al presionar f5 o actualizar la web se borran por que sera o como puedo dejar que los comentarios sigan asi como en el ejemplo
Todo apunta a que el insert en la base de datos no se está haciendo correctamente. Podría ser por:
1- No se está conectando correctamente a la base de datos.
2- El insert que se intenta ejecutar no es correcto.
Tendrás que debugar en el archivo php para ver el problema.
Saludos
buenas buenas!! tengo entendido que lo que quiero hacer es con JS y no tengo idea…
tengo este form en html
<form name=\"codigo\" method=\"post\" action=\"enviar.php\">
<input type=\"text\" name=\"letra\" required=\"required\">
<input type=\"submit\" name=\"enviar\" value=\"Enviar\">
</form>
tengo entendido que el codigo que tengo que usar para que la variable $letra al archivo enviar.php, sin necesidad de clickear en el botón enviar es este:
onchange=\"document.forms[\"codigo\"].submit();\"
por lo cual si queda asi:
<form name=\"codigo\" method=\"post\" action=\"enviar.php\">
<input type=\"text\" name=\"letra\" required=\"required\">
<input type=\"submit\" name=\"enviar\" value=\"Enviar\">
</form>
<script language=\"JavaScript\">
onchange=\"document.forms[\"codigo\"].submit();\"
</script>
me aparece error en la linea de onchange y si pruebo en localhost no hace nada, tengo que presionar enviar…
y si pongo de código esto con el document,forms sin las comillas por fuera, asi:
<form name=\"codigo\" method=\"post\" action=\"enviar.php\">
<input type=\"text\" name=\"letra\" required=\"required\">
<input type=\"submit\" name=\"enviar\" value=\"Enviar\">
</form>
<script language=\"JavaScript\">
onchange=document.forms[\"codigo\"].submit();
</script>
no me aparece ningun error en netbeans, pero en localhost envia automaticamente apenas carga, por lo cual asumo que el onchange no está funcionando 🙁 alguien me podria ayudar?? Muchas gracias…
A ver si alguien me puede decir dónde está el error. Gracias de antemano.
Hola,
yo tengo el problema que no me inserta los datos a la base de datos, tengo hecha la conexión pero no me inserta en la tabla. Cuando publico se ve, pero al refrescar desaparece y en mi tabla no está.
Este es el código:
<?php
require_once('config.php');
mysql_query("SET NAMES 'utf8'");
$listado = mysql_query("SELECT usuario, texto, date_added from opiniones WHERE date_added
que faltaba: $listado = mysql_query(«SELECT usuario, texto, date_added from opiniones WHERE date_added <= now()", $con);
src=\"js/jquery-1.4.2.min.js
src=\"js/jquery-ui-1.8.6.min.js
Hola solo una pregunta, de donde puedo descargar esta librerias o alguien me las puede pasar.
lo puedes descargar de http://jqueryui.com/
src=»js/jquery-1.4.2.min.js»
src=»js/jquery-ui-1.8.6.min.js»
Hola solo una pregunta, de donde puedo descargar esta librerias o alguien me las puede pasar.
donde puedo descargar los archivos de ese preyecto??
puedo conecta mi base de datos exel
require(‘config.php’); este archivo debe tener los datos de conxión al msql?
$conexion = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $conexion);
Exacto, tan solo eso
jose una consulta tengo varios formularios dentro de un while con el mismo nombre lo que quiero mandar datos ajax jquery pero pero me toma es solo los datos input del primer form com hacer para que mande los datos de cualquier form que este dentro del while desde ya muchas gracias
Hola que tal José me surge un inconveniente con el código no se si podrás solucionarlo lo que pasa que cuando hace el sucess: este ejecuta cualquier xss ósea el usuario envía <a href="">jose</a> y este muestra el link jose
Se entiende ¿?
Hola buenas tardes,
Hay varias soluciones para controlar en XSS. Una de ellas la puedes leer en este artículo:
http://www.jose-aguilar.com/blog/cross-site-scripting/
Espero te sea de utilidad,
saludos
Hola que tal José me surge un inconveniente con el código no se si podrás solucionarlo lo que pasa que cuando hace el sucess: este ejecuta cualquier xss ósea el usuario envía jose y este muestra el link jose
Se entiende ¿?
Muy buen tutorial gracias por tan ermoso aporte.
me surge un problema que si el usuario envia cualquier XSS el success: lo ejecuta como puedo hacer para que no me pase esto…
Hola buenas tardes,
Puedes mirar el siguiente artículo:
http://www.jose-aguilar.com/blog/cross-site-scripting/
Espero te sea de utilidad,
saludos
Hola amigo y para hacer que los datos se inserten en la base de datos como hago ? por ejemplo yo tengo una noticia.php?view=1
eh inserto los comentarios de forma facil:
$idtema= $_GET[«view»];
$comment = $_POST[«comment»];
$time = date(«d/n/Y»);
$query=’INSERT INTO comentario(IDcm,comentario,idtema,time) VALUES (‘null’,’$comment’,’$idtema’,’$time’)’;
$result= mysql_query($query);
if(mysql_affected_rows())
{
echo «se ha enviado correctamente»;
}else{
echo «error al enviar»;
}
uso ese codigo pero no me inserta nada en la tabla (?) cuando uso el codigo de javascript que presentas aqui…
Mi meta es logra que el usuario de mi sitio web comente en mi noticias y vea su comentario al mismo tiempo que ha publicado.
Saludos.!
Posiblemente te falte la conexión a la base de datos. Algo como lo qu sigue:
$conexion = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $conexion);
Antes de hacer el insert
Además debes ejecutar la consulta asi:
$insert = mysql_query(«INSERT INTO comments (name, text, date_added) VALUES (‘$name’, ‘$comment’, now())», $conexion);
buen aporte super facil
Y cómo se hace para añadir un avatar o bien conectar con redes sociales?.
grasias
hola…..una pregunta estoy haciendo este sistema de comentario pero lo estoy implementando en mi proyecto en codeigniter…como puedo hacer para insertar los datos a la base de datos, porque no me lo guarda…….
Hola,
Quizá te falte la parte más importante del artículo. Lo que hace referencia al archivo “addcomment.php”.
Saludos