Bueno he avierto otro post porque en el otro hay muchos comentarios de todo tipo, no se si aún lo necesias pero como hace poco me pidieron lo mismo te dejo el trabajo:
El sistema de comentarios estaba pensado para funcionar igual en diferentes secciones de la web... compartiendo tablas de la DB y solo modificando un campo entre las diferentes secciones.
SQL:
Parte que se agrega a la página:
se modifica la variable $seccion dandole el nombre de la página donde se incrustara el código sin el .php de esta forma separamos las diferentes páginas que tendrán un comentario y a la vez redirijimos en el update.php
update.php:
por errores con los headers no hago un include a conect.php...
captcha.php (esta parte es de shell root si no me equivoco)
Estilos css = 0 soy malo con eso y al final cada uno tiene su estilo xD así que espero os sirva.
El sistema de comentarios estaba pensado para funcionar igual en diferentes secciones de la web... compartiendo tablas de la DB y solo modificando un campo entre las diferentes secciones.
SQL:
CREATE TABLE IF NOT EXISTS `web_michelmin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`autor` varchar(50) NOT NULL,
`hora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`comentario` text NOT NULL,
`seccion` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
<?php
#~~ Connect.php
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'z_test'; //nombre de la bd
$tabla = 'web_michelmin'; //nombre de la tabla a usar
$con = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());
?>
Parte que se agrega a la página:
<?php
session_start();
#~~ Comentarios a final de página;
include_once('conect.php');
$seccion = 'index'; //Nombre que le quieras dar a ala seccion
$comentarios = mysql_query("SELECT comentario, autor FROM ".$tabla." WHERE seccion = '".$seccion."' ", $con) or die(mysql_error());
echo '<table border="1">';
while ($coments = mysql_fetch_array($comentarios)) {
echo '<tr><td colspan="2"><sub><strong>'.$coments['autor'] .'</strong></sub></td></tr>
<tr><td colspan="2">'. nl2br(htmlentities($coments['comentario'])) . '</td></tr>';
}
echo '<tr><td colspan="2"></td>
</tr><tr><td colspan="2">Escribe tu comentario: </td></tr>
<tr><td colspan="2">
<form method="post" action="update.php">
Autor: <input type="text" name="autor" size="31" maxlength="50" value="" />
</td>
</tr>
<tr>
<td colspan="2">
Comentario: <br />
<textarea name="coment" cols="31"></textarea>
<input name="seccion" type="hidden" value="'.$seccion.'" />
</td>
<tr>
<td>
Captcha:
</td>
<td>
<img src="captcha.php" /> <br />
<input type="text" name="captcha" size="10" maxlength="7" value="" />
</div>
<br />
</td>
</tr>
<td colspan="2" align="center">
<input name="Enviar" type="submit" />
</td>
</tr>
</form>
</table>';
if ($_GET['err'])
echo "<b>Ha introducido un captcha incorrecto</b>";
?>
se modifica la variable $seccion dandole el nombre de la página donde se incrustara el código sin el .php de esta forma separamos las diferentes páginas que tendrán un comentario y a la vez redirijimos en el update.php
update.php:
por errores con los headers no hago un include a conect.php...
<?php
session_start();
$coment = $_POST['coment'];
$seccion = $_POST['seccion'];
$autor = $_POST['autor'];
if ($_POST['captcha'] && $_POST['captcha'] == $_SESSION['rand'])
{
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'z_test';
$tabla = 'web_michelmin';
$con = mysql_connect($host, $user, $pass) or die(mysql_error());
mysql_select_db($db,$con) or die(mysql_error());
$update = mysql_query("INSERT INTO " . $tabla . " (id, autor, hora, comentario, seccion) VALUES (NULL, '" . $autor . "', CURRENT_TIMESTAMP, '" . $coment . "', '" . $seccion . "') ", $con) or die (mysql_error());
header("location: ". $seccion .".php");
} else
header("location: ".$seccion .".php?err=badcaptcha");
?>
captcha.php (esta parte es de shell root si no me equivoco)
<?php
# Em3trix
session_start();
$x = ImageCreateFrompng("captcha.PNG");
$numeros = rand(0000,9999);
$letras = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$final = $letras{rand(1,50)};
$final .= $letras{rand(1,50)};
$final .= $letras{rand(1,50)};
$rand = $numeros.$final;
$rand2 = $rand[3].$rand[5].$rand[1].$rand[6].$rand[2].$rand[7].$rand[3];
$color = imagecolorallocate($x,"250","0","0");
$string = imagestring($x,5,"13","7","$rand2",$color);
$color1 = imagecolorallocate($x,"250","250","0");
$color2 = imagecolorallocate($x,"0","250","0");
$color3 = imagecolorallocate($x,"0","0","250");
$linea = imageline($x,"0","20","100","10",$color3);
$linea = imageline($x,"0","10","20","100",$color1);
$linea = imageline($x,"50","0","100","100",$color2);
ImageGIF($x);
$_SESSION['rand'] = $rand2;
?>
Estilos css = 0 soy malo con eso y al final cada uno tiene su estilo xD así que espero os sirva.
porque cambiaste de diseño, en el otro se veia el fondo y ahora ya no esta, sube el fondo man, lo necesito el fondo del captcha, era "fondo.PNG" mi msn es carlos.15_92@hotmail.com avisame!!!!!!!!
aqui lo tienes:
http://img840.imageshack.us/img840/6636/captchab.png
pero te sirve cualquier fondo que quieras crear....
de todas formas este blog ya está cerrado (ver el index)
te invito a que nos visites en skamasle.com