<? // Ruta absoluta a los archivos de texto: // ID $postsID = "/web/http/foro/prueba/mensajes/id.dat"; // Mensajes $posts = "/web/http/foro/prueba/mensajes/mensajes.dat"; // Nombre del foro $nForo = "Foro www.WebTutorial.com.ar"; // Colores del foro $tabla_color="#7A8EEB"; $borde_color="#DBDBDB"; $fila1_color="#ffffff"; $fila2_color="#EAEAFF"; // Mostrar formulario 'si' o 'no' $verFormulario = "si"; // Login: Nombre (admin) y Pass (pass) $loginNombre = "nombre"; $loginPass = "password"; function validarTags()  {  global $nombre;  global $asunto;  global $mensaje;  $nombre = htmlspecialchars(trim($nombre));  $nombre = str_replace("&","&",$nombre);  $nombre = preg_replace("/(\015\012)|(\015)|(\012)/","",$nombre);  $nombre = stripslashes(str_replace("<","",$nombre));  $nombre = strip_tags(str_replace(">","",$nombre));  $nombre = substr(strip_tags($nombre),0,12);  $asunto = htmlspecialchars(trim($asunto));  $asunto = str_replace("&","&",$asunto);  $asunto = preg_replace("/(\015\012)|(\015)|(\012)/","",$asunto);  $asunto = stripslashes(str_replace("<","",$asunto));  $asunto = strip_tags(str_replace(">","",$asunto));  $asunto = substr(strip_tags($asunto),0,30);  $mensaje = htmlspecialchars(trim($mensaje));  $mensaje = str_replace("&","&",$mensaje);  $mensaje = preg_replace("/(\015\012)|(\015)|(\012)/","<br>",$mensaje);  $mensaje = str_replace("<","",$mensaje);  $mensaje = str_replace(">","",$mensaje);  return;  } function reemplazarTags()  {  global $mensaje1;  $mensaje1 = str_replace('[b]', '<b>', $mensaje1);  $mensaje1 = str_replace('[/b]', '</b>', $mensaje1);  $mensaje1 = str_replace('[i]', '<i>', $mensaje1);  $mensaje1 = str_replace('[/i]', '</i>', $mensaje1);  $mensaje1 = str_replace('[u]', '<u>', $mensaje1);  $mensaje1 = str_replace('[/u]', '</u>', $mensaje1);  $mensaje1 = str_replace('[c]', "<font color='#004080'>", $mensaje1);  $mensaje1 = str_replace('[/c]', '</font>', $mensaje1);  $mensaje1 = str_replace ("[tk]", "<img src='imagenes/tk.gif' width='15' height='15'>", $mensaje1);  $mensaje1 = eregi_replace (":)", "<img src='imagenes/sonrisa.gif' width='15' height='15'>", $mensaje1);  $mensaje1 = eregi_replace (":D", "<img src='imagenes/divertido.gif' width='15' height='15'>", $mensaje1);  $mensaje1 = eregi_replace (";)", "<img src='imagenes/ojo.gif' width='15' height='15'>", $mensaje1);  return;  } function escribirMensaje($posts, $postsID)  {  global $nueva_id;  $fp = fopen ($postsID, "rb");  $id = fgets($fp, 4096);  $nueva_id = $id + 1;  fclose($fp);  $fp = fopen ($postsID, "r+b");  flock ($fp,2);  fwrite($fp, $nueva_id);  flock ($fp,3);  fclose($fp);    $fp = fopen ($posts, "ab");  flock ($fp,2);  fwrite($fp, "\r\n");  flock ($fp,3);  fclose($fp);  return;  }   function eliminarMensaje($elArchivo, $elPost)  { $i = 0; $archivo1 = file($elArchivo); $fp = fopen($elArchivo, "w"); for ($i = 0; $i <= sizeof($archivo1); $i++) { if (strstr($archivo1[$i], $elPost)) {   $archivo1[$i] = "";  }  fwrite($fp, $archivo1[$i]); } fclose($fp); return; }   // Contar temas y mensajes $temas=0; $mens=0;   $fp = fopen ($posts, "rb"); while (!feof ($fp))  {   $buff = fgets($fp, 4096);   if(substr($buff, 0, 12 )=="[nuevo_post]") {    $p=explode('|||^^^|||', "$buff");    if ($p[2]==0) {     $temas++;     $mens++;    }    else {     $mens++;    }   }  } fclose($fp); switch($a) { // Ingrear al sistema case "login":  echo "<form action='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid' method='post'>\n";  echo "<table border='0' cellspacing='1' cellpadding='3' width='320' bgcolor='$borde_color'>\n<tr bgcolor='$tabla_color' style='color: rgb(255,255,255)'>\n<td><b>Ingresar al sistema</b></td></tr>\n";  echo "<tr><td width='320' colspan='2' bgcolor='#ffffff'>\n";  echo "<table cols='2' width='320' class='body'>\n";  echo "<tr><td colspan='2' bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>\n";  echo "<tr><td width='70' valign='top'>Usuario:</td><td width='250'>\n<input type='text' name='usuario' size='35' maxlength='12' class='input'></td></tr>\n";  echo "<tr><td width='70' valign='top'>Password:</td><td width='250'>\n<input type='text' name='password' size='35' maxlength='30' class='input'></td></tr>\n";  echo "<tr><td width='320' colspan='2'></td></tr>\n";  echo "<tr><td width='70' valign='top'></td><td width='250'>\n<input type='submit' name='login' value='Ingresar' class='boton'> \n<input type='reset' value='Restablecer' class='boton'></td></tr>\n";  echo "<tr><td bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>\n";  echo "</table></td></tr></table></form>\n";  if (!$usuario or !$password) {   echo "<a href='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid'><< Volver al mensaje</a>";  }   break; // Postear un nuevo mensaje case "postnuevo":  // Validar formulario    if (!$nombre or !$asunto or !$mensaje) {   echo "Por favor, complete todos los campos del formuario.<br><a href='index.php?ver_formulario=$verFormulario'><< Volver al Foro</a>";  }  else {    escribirMensaje($posts, $postsID);    // Reemplazar tags no deseados    validarTags();    // Escribir post en el archivo    if (!$nombre or !$asunto or !$mensaje) {  $nombre = "(Ninguno)";  $asunto = "(Ninguno)";  }  $fecha=date("d-m-y");  $fp = fopen ($posts, "ab");  flock ($fp,2);  fwrite($fp, "[nuevo_post]|||^^^|||$nueva_id|||^^^|||0|||^^^|||$nombre|||^^^|||$asunto|||^^^|||$fecha|||^^^|||$mensaje|||^^^|||");  flock ($fp,3);  fclose($fp);    echo "Muchas gracias. Su mensaje ha sido agregado.<br><a href='index.php?ver_formulario=$verFormulario' target='_top'><< Volver atrás</a>";  } break; // En caso de que sea una respuesta case "responder":  if (!$nombre or !$asunto or !$mensaje) {   echo "Por favor, complete todos los campos del formuario.<br><a href='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid' target='_top'><< Volver al mensaje</a>";  }  else {  escribirMensaje($posts, $postsID);    // Reemplazar tags...    validarTags();    $fecha=date("d-m-y");  $fp = fopen ($posts, "ab");  flock ($fp,2);  fwrite($fp, "[nuevo_post]|||^^^|||$nueva_id|||^^^|||$tid|||^^^|||$nombre|||^^^|||$asunto|||^^^|||$fecha|||^^^|||$mensaje|||^^^|||");  flock($fp,3);  fclose($fp);    echo "Muchas gracias. Su respuesta ha sido agregada.<br><a href='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid' target='_top'><< Ver mensaje</a>";  } break; // En caso de ver un mensaje case "ver_mensaje":  $ahora = date("d-m-y");  $zonahoraria = date("O");    echo "<table border='0' width='550'>\n<tr><td align='left'>\n<tr><td>$nForo<td align='right'>\n";  if ($usuario != $loginNombre || $password != $loginPass)  {  echo "<a href='index.php?ver_formulario=$verFormulario&a=login&tid=$tid'>Ingresar</a> | ";  }  elseif ($usuario == $loginNombre && $password == $loginPass)  {  $verFormulario = "no";  }  echo "<a href='index.php?ver_formulario=$verFormulario' target='_top'>Volver al Foro</a>\n</td></tr></table>\n  <table border='0' width='550' cellspacing='1' cellpadding='2' bgcolor='$borde_color'>\n<tr bgcolor='$tabla_color' border='1' bordercolor='1' style='color: rgb(255,255,255)'>  <td width='100'>\n<b>Autor</b><td width='450'><b>Mensaje</b></td></tr>\n";    $fp = fopen ($posts, "rb");  while(!feof ($fp))  {     $buffer = fgets($fp, 4096);   if (substr($buffer, 0, 12 )=="[nuevo_post]")   {    $p=explode('|||^^^|||', "$buffer");    if ($p[1]==$tid)    {     $asunto=$p[4];     $mensaje1 = nl2br($p[6]);          if ($usuario == $loginNombre && $password == $loginPass)     {     $eliminar = "[ <a href='index.php?ver_formulario=$verFormulario&a=eliminar&usuario=$usuario&password=$password&tid=$tid&p1=$p[1]&p2=$p[2]&p3=$p[3]&p4=$p[4]'>Eliminar</a> ]";     }          reemplazarTags();          echo "<tr bgcolor='$fila1_color' border='1' bordercolor='1'><td valign='top'>\n     <B>$p[3]</B><td><b>$p[4]</b><p>$mensaje1</td></tr>\n     <tr bgcolor='$fila1_color' border='1' bordercolor='#ffffff'><td>$eliminar</td>\n     <td>Fecha: $p[5]</td></tr>";     }   }  }  fclose($fp);  $fp = fopen ($posts, "rb");    $color=0;  while (!feof ($fp))  {   $buffer = fgets($fp, 4096);   if(substr($buffer, 0, 12 )=="[nuevo_post]")   {    $p=explode('|||^^^|||', "$buffer");    if ($p[2]==$tid)    {     $asunto = substr(strip_tags($p[4]),0,30);     $nombre = substr(strip_tags($p[3]),0,10);     $mensaje1 = nl2br($p[6]);          if ($usuario == $loginNombre && $password == $loginPass)     {     $eliminar = "[ <a href='index.php?ver_formulario=$verFormulario&a=eliminar&usuario=$usuario&password=$password&tid=$tid&p1=$p[1]&p2=$p[2]&p3=$p[3]&p4=$p[4]'>Eliminar</a> ]";     }     reemplazarTags();          if ($color==0) {     echo "<tr bgcolor='$fila2_color' border='1' bordercolor='1'>\n<td valign='top'>\n<B>$nombre</B><td><B>Re: $asunto</B><p>\n$mensaje1</td>\n     <tr bgcolor='$fila2_color' border='1' bordercolor='#ffffff'>\n<td>$eliminar</td><td>Fecha: $p[5]</td></tr>\n";     $color=1;     }     else {     echo "<tr bgcolor='$fila1_color' border='1' bordercolor='1'>\n<td valign='top'>\n<B>$nombre</B><td><B>Re: $asunto</B><p>\n$mensaje1</td>\n     <tr bgcolor='$fila1_color' border='1' bordercolor='#ffffff'>\n<td>$eliminar</td><td>Fecha: $p[5]</td></tr>\n";     $color=0;     }    }   }  }  fclose($fp);  echo "</table><table width='550'><tr><td></tr></td>";  echo "<tr><td align='right'><A HREF='index.php?ver_formulario=$verFormulario'>Volver al Foro</A></tr></td></table>";    // Formulario de respuesta    if ($verFormulario == "si" && $tid != "")  {  echo "<form action='index.php?ver_formulario=$verFormulario&a=responder' method='post'>\n";  echo "<table border='0' cellspacing='1' cellpadding='3' width='550' bgcolor='$borde_color'>\n<tr bgcolor='$tabla_color' style='color: rgb(255,255,255)'>\n<td><b>Responder al mensaje:</b> $asunto</td></tr>\n";  echo "<tr><td width='550' colspan='2' bgcolor='#ffffff'>\n";  echo "<table cols='2' width='550' class='body'>\n";  echo "<tr><td colspan='2' bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>";  echo "<tr><td width='100' valign='top'>Nombre:</td><td width='450'><input type='text' name='nombre' size='55' maxlength='12' class='input'></td></tr>\n";  echo "<tr><td width='100' valign='top'>Mensaje:</td><td width='450'><textarea name='mensaje' rows='8' cols='54' class='input'></textarea></td></tr>\n";   echo "<tr><td width='550' colspan='2'></td></tr>\n";  echo "<tr><td width='100' valign='top'></td><td width='450'>\n<input type='submit' name='responder' value='Responder mensaje' class='boton'> \n<input type='reset' value='Restablecer' class='boton'></td></tr>\n";  echo "<input type='hidden' name='tid' value='$tid'><input type='hidden' name='asunto' value='$asunto'>\n";  echo "<tr><td bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>\n";  echo "</table></form></td></tr></table>\n";  } break; // Eliminar mensaje case "eliminar":  if ($usuario == $loginNombre && $password == $loginPass){   if ($p1 != "" && $p2 != "" && $p3 != "" && $p4 != ""){   $elPost = "[nuevo_post]|||^^^|||$p1|||^^^|||$p2|||^^^|||$p3|||^^^|||$p4|||^^^|||";   eliminarMensaje($posts, $elPost);   echo "Listo. El mensaje ha sido eliminado.<br><a href='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid&usuario=$usuario&password=$password' target='_top'><< Volver al mensaje</a>";   }  }  else  {  echo "<font color='#ff0000'><b>Error! El sistema no lo ha identificado.</b></font><br>\n";  echo "<a href='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$tid' target='_top'><< Volver al mensaje</a>\n";  } break; // Mostrar todos los mensajes default:  $limite = 5;  $ahora=date("d-m-y");  $zonahoraria=date("O");  echo "<table border='0' width='550'><tr><td>$nForo<td align='right'>$temas temas y $mens mensajes</td></tr></table>\n  <table border='0' width='550' cellspacing='1' cellpadding='2' bgcolor='$borde_color'>\n  <tr bgcolor='$tabla_color' border='1' bordercolor='1' style='color: rgb(255,255,255)'><td width='20'> </td><td width='280'>\n  <b>Asunto</b></td><td width='90'><b>Autor</b></td><td width='80'><b>Respuestas</b></td><td width='80'><b>Fecha</b></td></tr>\n";  $fp = fopen ($posts, "rb");É  while (!feof ($fp))  {   $buffer = fgets($fp, 4096);   if(substr($buffer, 0, 12 )=="[nuevo_post]")   {    $p=explode('|||^^^|||', "$buffer");    if ($p[2]==0)    {    $fp1 = fopen ($posts, "rb");    $respuestas=0;    while (!feof ($fp1))     {     $buffer1 = fgets($fp1, 4096);          if(substr($buffer1, 0, 12 )=="[nuevo_post]")     {            $p1=explode('|||^^^|||', "$buffer1");      if ($p1[2]==$p[1]) {       $respuestas++;      }      }    }    fclose($fp1);    echo "<tr bgcolor='#ffffff' border='1' bordercolor='1'><td>";    if ($respuestas==0)    {    echo "<img src='imagenes/0mens.gif' width='16' height='16'>";    }    else    {    echo "<img src='imagenes/1mens.gif' width='16' height='16'>";    }    echo "<td><A HREF='index.php?ver_formulario=$verFormulario&a=ver_mensaje&tid=$p[1]'>$p[4]</A><td>$p[3]<td align='center'>$respuestas<td>$p[5]</td></tr>";    }   }  }  fclose ($fp);  echo "</table><br>";    // Formulario para publicar un tema nuevo    if ($verFormulario == "si")  {  echo "<form action='index.php?ver_formulario=$verFormulario&a=postnuevo' method='post'>\n";  echo "<table border='0' cellspacing='1' cellpadding='2' width='550' bgcolor='$borde_color'><tr bgcolor='$tabla_color' style='color: rgb(255,255,255)'><td><b>Publicar un tema nuevo</b></td></tr>";  echo "<tr><td width='550' bgcolor='#ffffff'>";  echo "<table cols='2' width='550' class='body'>";  echo "<tr><td colspan='2' bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>";  echo "<tr><td width='100' valign='top'>Nombre:</td><td width='450'><input type='text' name='nombre' size='55' maxlength='12' class='input'></td></tr>\n";  echo "<tr><td width='100' valign='top'>Asunto:</td><td width='450'><input type='text' name='asunto' size='55' maxlength='30' class='input'></td></tr>\n";  echo "<tr><td width='100' valign='top'>Mensaje:</td><td width='450'><textarea name='mensaje' rows='8' cols='54' class='input'></textarea></td></tr>\n";   echo "<tr><td width='550' colspan='2'></td></tr>";  echo "<tr><td width='100' valign='top'></td><td width='400'><input type='submit' name='postnuevo' value='Publicar tema' class='boton'> <input type='reset' value='Restablecer' class='boton'></td></tr>\n";  echo "<tr><td bgcolor='#ffffff'><img src='imagenes/tablasepara.gif' width='1' height='10'></td></tr>";  echo "</table></form></td></tr></table>\n";  }  break; } ?>