Acabo de modificar el último
publicacomentario.php y
ver.php para añadirle seguridad ;) y no nos vayan a querer colar algo, quedo así:
publicacomentario.php
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Sistema de Noticias de KarlicOs - Publica Comentarios :::.</title>
</head>
<body>
<?php
require ('includes/connect.php');
$query = "INSERT INTO comentarios (nick,email,comentario,noticia_id) VALUES('$nick','$email','$comentario','$id')";
header("location: ver.php?id=$_POST[id]") ?>
</body>
</html>
ver.php
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Sistema de Noticias de KarlicOs - Ver Noticia :::.</title>
<script type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+': Es necesario una dirección de e-mail.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+': Es necesario que contenga un numero.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+': Es necesario que contenga un numero entre '+min+' y '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+': Es necesario que escriba un nick/comentario.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body>
<?php
require ('includes/connect.php');
$result = mysql_query("select * from noticias where id_noticia='$id'",$connect); {
$result2=mysql_query("select * from comentarios where noticia_id='$id'",$connect); echo '<h3>'.$row[titulo].'</h3>';
echo ''.$row[noticia].'<br><br><br>';
echo 'Autor: '.$row[autor].' | '.$row[categoria].' | Publicado en: '.$row[fecha].'';
//echo '<a href="editarcomentario.php?id='.$row[id].'">Editar</a> | <a href="borrar.php?id='.$row[id].'">Borrar</a>';
}
?>
<br><br><br><br>
<?php
echo '<h2>Comentarios: ('.$totalcomentarios.')</h2><br>';
//hago el llamado a la base
$result=mysql_query("select * from comentarios where noticia_id='$id'",$connect); //Bucle while para visualizarlos
{
echo '<h4>Nick: '.$row[nick].':</h4>Email: '.$row[email].'<br>Comentario: '.$row[comentario].'<br><br>';
}
?>
<form action="publicacomentario.php" method="post" onsubmit="MM_validateForm('nick','','R','email','','RisEmail','comentario','','R');return document.MM_returnValue">
<input type="hidden" name="id" value="<?php echo $id; ?>"><br>
Nick:<br>
<input type="text" name="nick"><br>
E-Mail:<br>
<input type="text" name="email"><br>
Escriba el comentario<br>
<textarea name="comentario" cols="70" rows="15"></textarea>
<br>
<input type="submit" value="Enviar comentario"><br>
</form>
</body>
</html>
No he revisado a fondo todos los archivos, pero estan usando sesiones para comprobar que solo los admin puedan entrar a ciertos archivos (tales como editar comentarios, borrarlos, publicar, etc...) ??