Buenas, resulta ser de que estoy haciendo un foro para una página web y para evitar que se publiquen mensajes sin datos en algunos campos. Mi problema es que aunque rellene todos los campos siempre me dice que faltan campos, y luego lo raro es que el mensaje es publicado, que es lo que mas me mosquea.
Pero bueno, antes de comenzar a dejaros mi código me gustaría comentaros aspectos de mi foro que pienso que son importantes.
Le he creado un editor WYSING para mayor usabilidad del foro, así los usuarios podrán moverse mejor. Ya os dejaré el script también por si os hace falta.
No tiene sistema de usuarios, de momento.
Y bueno, creo que ya puedo dejaros el código, aunque si necesitáis mas información decídmelo y os la daré.
formulario.html
Código HTML:
Ver original<div width="90%" border="0"> <form name="formulario" action="agregar.php" method="post"> <input type="hidden" name="identificador" value="<?php echo $id ; ?>">
Autor:
<input type="text" name="autor" maxlength="20"> <br />Titulo:
<input type="text" name="titulo" value="<?php echo $titulo ; ?>">
<br /><form id="form1" name="form1" method="post" action=""> <input type="button" name=negrita" value="Negrita" onclick="formato('bold')" /> <input type="button" name="sursiva" value="Cursiva" onclick="formato('italic')" /> <input type="button" name="subrayado" value="Subrayado" onclick="formato('underline')" /> <input type="button" name="eliminar-formato" value="Eliminar formato" onclick="formato('RemoveFormat')" /> <input type="button" name="insertar-link" value="Insertar link" onclick="insertarEnlace()" /> <input type="button" name="eliminar-link" value="Eliminar link" onclick="formato('Unlink')" /> <input type="button" name="insertar-imagen" value="Insertar imagen" onclick="insertarImagen()" /> <input type="button" name="deshacer-acción" value="Deshacer acción" onclick="formato('undo')" /> <input type="button" name="rehacer-acción " value="Rehacer acción" onclick="formato('redo')" /> <input type="button" name="insertar-html" value="Insertar texto mediante HTML" onclick="inHTML()" /> <iframe name="mensaje" id="editor" width="100%" height="300" style="border:1px solid #000;"><?php echo $mensaje ; ?></iframe> <input type="submit" name="Submit" value="Enviar mensaje">
agregar.php
Código PHP:
<?php
require ('configuracion.php') ;
$autor = $_POST ["autor"] ;
$titulo = $_POST ["titulo"] ;
$mensaje = $_POST ["mensaje"] ;
$identificador = $_POST ["identificador"] ;
if ($autor == "" or $titulo == "" or $mensaje == "") {
echo 'Complete el formulario' ;
}
$sql = "INSERT INTO temas (autor, titulo, mensaje, identificador, fecha, ultimarespuesta) " ;
$sql.= "VALUES ('$autor', '$titulo', '$mensaje', '$identificador', NOW(),NOW())" ;
$rs = mysql_query ($sql, $conectar) or die("Error al grabar el mensaje: ".mysql_error) ;
$ult_id = mysql_insert_id ($conectar) ;
if (!empty($identificador))
{
$sql = "UPDATE foro SET respuestas=respuestas+1, ultimarespuesta=NOW()" ;
$sql.= " WHERE id = '$identificador'" ;
$rs = mysql_query ($sql, $conectar) ;
Header ("Location: foro.php?id=$identificador#ult_id") ;
exit () ;
}
Header ("Location: index.php") ;
?>
header.html
Código JAVASCRIPT
:
Ver original<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Foro de Soporte de IMGBeta</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
</style>
<script>
var editor;
function $(id){
return document.getElementById(id) ;
}
function formato(f){
editor.execCommand(f, false, null) ;
}
function rev(t) {
return t.split("<").join("<").split(">").join(">").split("\"").join(""") ;
}
function insertarEnlace(){
var u ;
if(!(u=prompt('Ingresar URL:','http://')))return ;
editor.execCommand("CreateLink",false,u) ;
}
function insertarImagen(){
var u ;
if(!(u=prompt('Ingresar URL de la imagen:','http://')))return ;
editor.body.focus() ;
editor.execCommand("InsertImage",false,u) ;
}
function inHTML(){
var u,u2 ;
if(!(u=prompt('Ingresar texto escrito en HTML:','')))return ;
try{
editor.execCommand("inserthtml",false,u) ;
}catch(e){
try{
editor.body.focus() ;
u2=editor.selection.createRange() ;
u2.pasteHTML(u) ;
}catch(E){
alert('No es valido') ;
}
}
}
window.onload=function(){
editor=$('editor').contentDocument || $('editor').contentWindow.document ;
editor.designMode='on' ;
}
</script>
</head>
<body bgcolor="#9999cc" text="#FFFFFF" link="#FFFFFF">
<div width="90%" border="0" align="center">
<div bgcolor="#4b557d"><h2>Foro de soporte de IMGBeta</h2>
<div align="right">[ <a href="index.php">Inicio</a>] - <a href="respuesta.php">Nuevo tema</a> ] </div> </div>
<br />
<br />
Le pongo el coloreado de JavaScript para poder apreciar el script.
index.php
Código PHP:
<html>
<head>
<link rel="stylesheet" href="template/classic/css/estilo.css" type="text/css" media="all">
<?php
require ('configuracion.php') ;
require ('funciones.php') ;
require ('template/classic/header.html') ;
$sql = "SELECT id, autor, titulo, fecha, respuestas, ultimarespuesta " ;
$sql.= "FROM temas WHERE identificador=0 ORDER BY ultimarespuesta DESC " ;
$rs = mysql_query ($sql, $conectar) or die(mysql_error()) ;
if(mysql_num_rows($rs)>0)
{
$template = implode ("", file("template/classic/temas.html")) ;
require ('template/classic/titulos.html') ;
while ($row = mysql_fetch_assoc($rs))
{
$color = ($color == ""?"#999999":"") ;
$row ["color"] = $color ;
mostrartemplate ($template, $row) ;
}
}
require ('template/classic/footer.html') ;
?>
foro.php
Código PHP:
<?php
require ('configuracion.php') ;
require ('funciones.php') ;
$id = $_GET ["id"] ;
if (empty($id)) Header ("Location: index.php") ;
$sql = "SELECT id, autor, titulo, mensaje, " ;
$sql.= "DATE_FORMAT(fecha, '%d/%m/%Y %H:%i:%s') as enviado FROM temas " ;
$sql.= "WHERE id='$id' OR identificador='$id' ORDER BY fecha ASC " ;
$rs = mysql_query ($sql, $conectar) ;
require ('template/classic/header.html') ;
if (mysql_num_rows($rs)>0)
require ('template/classic/titulos_post.html') ;
$template = implode ("", file ('template/classic/post.html')) ;
while ($row = mysql_fetch_assoc ($rs))
{
$color = ($color== ""?"#5b69a6":"") ;
$row ["color"] = $color ;
$row ["mensaje"] = nl2br ($row["mensaje"]) ;
$row ["mensaje"] = parsearTags($row["mensaje"]) ;
mostrartemplate ($template, $row) ;
}
require ('template/classic/footer.html') ;
?>
Esto es todo lo que creo que debo de dejaros, espero que podáis ayudarme.
Muchas gracias de antemano.
Saludos