este es el codigo:
Código PHP:
<?
include("Config.php");
include("funciones.php");
# * Definir el nombre del archivo donde se guardarán los mensajes
define('m','kchat-mini.txt') ;
# * Comprobar si existe el archivo y si se puede escribir en él
if(file_exists(m)) {
if(!is_writable(m)) exit('El archivo <b>'.m.'</b> debe tener el permiso CHMOD 666.') ;
}
else {
# Se intenta crear el archivo, si no se avisa al usuario
if(!@fopen(m,'w')) exit('El directorio del MiniChat debe tener el permiso CHMOD 777.') ;
}
# * Guardar mensaje
if(isset($_POST['enviar'])) {
function quitar_etiq($a) {
$a = preg_replace('/<.*>/iU','',$a) ;
return $a ;
}
function quitar($a) {
$a = trim($a) ;
if(get_magic_quotes_gpc()) $a = stripslashes($a) ;
# Se elimina el separador de datos en caso de que alquien malintencionado (J03L)¬_¬ lo inserte
$a = str_replace('|','',$a) ;
# Se elimina el caractér especial ASCII 160 (es un espacio en blanco que no puede ser eliminado por trim())
$a = str_replace(chr(160),'',$a) ;
$a = htmlspecialchars($a) ;
return $a ;
}
$nick = quitar(quitar_etiq($_POST['nick'])) ;
$web = quitar(quitar_etiq($_POST['web'])) ;
$mensaje = quitar($_POST['mensaje']) ;
# * Se comprueba que los datos no excedan las longitudes fijadas en la configuración
switch(true) {
case strlen($nick) > $max_nick :
$error = 'El nick no debe ser mayor de '.$max_nick.' caractéres.' ;
break ;
case strlen($web) > $max_web :
$error = 'El email o web no debe ser mayor de '.$max_web.' caractéres.' ;
break ;
case strlen($mensaje) > $max_mensaje :
$error = 'El mensaje no debe ser mayor de '.$max_mensaje.' caractéres.' ;
break ;
case !$nick || $nick == 'Tu nick' :
$error = 'Debes escribir un nick.' ;
break ;
case !$mensaje || $mensaje == 'Tu mensaje' :
$error = 'Debes escribir un mensaje.' ;
break ;
default:
if($web && $web != 'Email o web (opcional)') {
if(eregi('^www.',$web)) $web = 'http://'.$web ;
}
else $web = false ;
}
if(isset($error)) exit($error) ;
$meses = array('','Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic') ;
$fecha = date('d').' '.$meses[date('n')].' '.date('Y').' '.date('h:i A') ;
$archivo = fopen(m,'a') ;
fwrite($archivo,"$nick | $web | $mensaje | $fecha | $_SERVER[REMOTE_ADDR]\n") ;
fclose($archivo) ;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>KChaT-Mini v1.0</title>
<link rel="stylesheet" type="text/css" href="<?=$estilo?>">
<base target="_blank">
<link href="estilo.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
background-color: #cacaca;
}
.Estilo1 {color: #999999}
-->
</style></head>
<body>
<div style="height: <?=$altura?>px ; overflow: auto">
<div align="center">
<?
# * Mostrar los mensajes
$mensajes = file(m) ;
$total = count($mensajes) - 1 ;
if(!$mostrar || $total < $mostrar) {
$maximo = 0 ;
}
else {
$maximo = $total - $mostrar ;
}
?>
<table width="100%" border="0" cellpadding="1" cellspacing="1">
<?
for($i = $total ; $i >= $maximo ; $i--) {
# Se obtienen todos los datos partiendo cada línea del archivo mediante el separador " | "
list($nick,$web,$mensaje,$fecha,$ip) = explode(' | ',$mensajes[$i]) ;
# Se aplican las funciones según la configuración
if($codigo == 'SI') $mensaje = html_entity_decode($mensaje) ;
if($censura == 'SI') {
$nick = censura($nick) ;
$web = censura($web) ;
$mensaje = censura($mensaje) ;
}
if($antispam == 'SI') $mensaje = preg_replace('/(http:\/\/|www.)[^\s]+/i',$antispam_aviso,$mensaje) ;
# Si el usuario escribió un email o web, se crea el enlace correspondiente dentro del nick
if(!$web) $nick = '<b>•'.$nick.'•</b>' ;
else {
if(eregi('^[0-9a-z_.-]+@[0-9a-z_.-]+[a-z]{2,3}$',$web)) $web = 'mailto:'.$web ;
$nick = "<a href=\"$web\"><b><$nick></b></a>" ;
}
# Se cortan las palabras que excedan la longitud máxima por palabra
if(strlen($mensaje) > $max_palabra) {
$palabras = explode(' ',$mensaje) ;
$total_palabras = count($palabras) ;
for($a = 0 ; $a < $total_palabras ; $a++) {
if(strlen($palabras[$a]) > $max_palabra) $palabras[$a] = wordwrap($palabras[$a],$max_palabra,' ',1) ;
}
$mensaje = implode($palabras,' ') ;
}
if($caretos == 'SI') $mensaje = caretos($mensaje) ;
$n = $i % 2 ? 1 : 2 ;
?>
<tr>
<td class="mensaje<?=$n?>">
<?=$nick.' '.$mensaje?>
<?
if($fecha_mensajes == 'SI') echo '<div class="fecha">'.$fecha.'</div>' ;
if($ip_mensajes == 'SI') echo '<div class="ip">'.$ip.'</div>' ;
?> </td>
</tr>
<?
}
?>
</table>
</div>
</div>
<div align="center">
<script type="text/javascript">
enviando = 0 ;
function limpiar(campo) {
if(campo.value == 'Tu Nombre Aqui') campo.value = '' ;
if(campo.value == 'Tu Mensaje Aqui') campo.value = '' ;
}
function validar() {
if(formulario.nick.value == '' || formulario.nick.value == 'Tu Nombre Aqui') {
alert('Debes escribir un nick') ;
return false ;
}
if(formulario.mensaje.value == '' || formulario.mensaje.value == 'Tu Mensaje Aqui') {
alert('Debes escribir un mensaje') ;
return false ;
}
if(enviando == 0) {
enviando++ ;
}
else {
alert('El mensaje se está enviando.') ;
return false ;
}
}
</script>
<div align="center"></div>
<form name="formulario" method="post" action="index.php?id=kchat" target="_self" onsubmit="return validar()">
<div align="center">
<p>Manda Tu mensaje Aqui Aiclid <br>
<input type="text" name="nick" size="20" maxlength="<?=$max_nick?>" value="Tu Nombre Aqui" onfocus="limpiar(this)" class="formulario">
<br>
<input name="mensaje" type="text" class="formulario" onFocus="limpiar(this)" value="Tu Mensaje Aqui" size="30" maxlength="<?php $max_mensaje?>">
<br>
<input type="submit" name="enviar" value="Enviar" class="formulario">
</p>
</div>
</form>
<div align="center" class="formulario">
Para Usar Emoticonos: <br>
:D = <img src="caretos/alegre.gif" alt="alegre" width="15" height="15"> :P = <img src="caretos/burla.gif" alt="burla" width="15" height="15"> :? = <img src="caretos/duda.gif" alt="duda" width="15" height="15"> :lol = <img src="caretos/lol.gif" alt="lol" width="15" height="15"> :(2 = <img src="caretos/demonio2.gif" alt="demonio2" width="15" height="15"> :\ = <img src="caretos/llorar.gif" alt="llorar" width="15" height="15"> <br>
:) = <img src="caretos/risa.gif" alt="risa" width="15" height="15"> :8 = <img src="caretos/asustado.gif" alt="asustado" width="15" height="15"> :-( = <img src="caretos/enojado.gif" alt="enojo" width="15" height="15"> :( = <img src="caretos/triste.gif" alt="tite" width="15" height="15">
</p>
</div>
</div>
</body>