Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/12/2009, 18:18
Avatar de Distriker
Distriker
 
Fecha de Ingreso: marzo-2008
Ubicación: Las Palmas De Gran Canarias
Mensajes: 924
Antigüedad: 16 años, 1 mes
Puntos: 23
Me dice que complete el formulario cuando ya lo he completado del todo

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
  1. <div width="90%" border="0">
  2. <form name="formulario" action="agregar.php" method="post">
  3. <input type="hidden" name="identificador" value="<?php echo $id ; ?>">
  4. Autor: <input type="text" name="autor" maxlength="20"> <br />
  5. Titulo: <input type="text" name="titulo" value="<?php echo $titulo ; ?>"> <br />
  6. <form id="form1" name="form1" method="post" action="">
  7. <input type="button" name=negrita" value="Negrita" onclick="formato('bold')" />
  8. <input type="button" name="sursiva" value="Cursiva" onclick="formato('italic')" />
  9. <input type="button" name="subrayado" value="Subrayado" onclick="formato('underline')" />
  10. <input type="button" name="eliminar-formato" value="Eliminar formato" onclick="formato('RemoveFormat')" />
  11. <input type="button" name="insertar-link" value="Insertar link" onclick="insertarEnlace()" />
  12. <input type="button" name="eliminar-link" value="Eliminar link" onclick="formato('Unlink')" />
  13. <input type="button" name="insertar-imagen" value="Insertar imagen" onclick="insertarImagen()" />
  14. <input type="button" name="deshacer-acción" value="Deshacer acción" onclick="formato('undo')" />
  15. <input type="button" name="rehacer-acción " value="Rehacer acción" onclick="formato('redo')" />
  16. <input type="button" name="insertar-html" value="Insertar texto mediante HTML" onclick="inHTML()" />
  17. <br />
  18. <iframe name="mensaje" id="editor" width="100%" height="300" style="border:1px solid #000;"><?php echo $mensaje ; ?></iframe>
  19. <input type="submit" name="Submit" value="Enviar mensaje">
  20. </form>
  21. </div>
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
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Foro de Soporte de IMGBeta</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. <style type="text/css">
  7. </style>
  8. <script>
  9. var editor;
  10. function $(id){
  11.     return document.getElementById(id) ;
  12. }
  13. function formato(f){
  14.     editor.execCommand(f, false, null) ;
  15. }
  16. function rev(t)    {
  17.     return t.split("<").join("&lt;").split(">").join("&gt;").split("\"").join("&quot;") ;
  18. }
  19. function insertarEnlace(){
  20.     var u ;
  21.     if(!(u=prompt('Ingresar URL:','http://')))return ;
  22.     editor.execCommand("CreateLink",false,u) ;
  23. }
  24. function insertarImagen(){
  25.     var u ;
  26.     if(!(u=prompt('Ingresar URL de la imagen:','http://')))return ;
  27.     editor.body.focus() ;
  28.     editor.execCommand("InsertImage",false,u) ;
  29. }
  30.  
  31. function inHTML(){
  32.     var u,u2 ;
  33.     if(!(u=prompt('Ingresar texto escrito en HTML:','')))return ;
  34.    
  35.         try{
  36.             editor.execCommand("inserthtml",false,u) ;
  37.         }catch(e){
  38.             try{
  39.                 editor.body.focus() ;
  40.                 u2=editor.selection.createRange() ;
  41.                 u2.pasteHTML(u) ;
  42.             }catch(E){
  43.                 alert('No es valido') ;
  44.             }
  45.         }
  46. }
  47.  
  48. window.onload=function(){
  49.    
  50.     editor=$('editor').contentDocument || $('editor').contentWindow.document ;
  51.     editor.designMode='on' ;
  52. }
  53. </script>
  54. </head>
  55. <body bgcolor="#9999cc" text="#FFFFFF" link="#FFFFFF">
  56. <div width="90%" border="0" align="center">
  57. <div bgcolor="#4b557d"><h2>Foro de soporte de IMGBeta</h2>
  58. <div align="right">[ <a href="index.php">Inicio</a>] - <a href="respuesta.php">Nuevo tema</a> ] </div> </div>
  59. <br />
  60. <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
__________________
Si no te quejas, nunca conseguiras nada, pero si te quejas siempre lo perderás todo.
Una mala acción da fruto a un mal Karma.

Última edición por Distriker; 22/12/2009 a las 18:38