home Foro de soporte Servicio Hosting PHP
 
Ayuda con un chat de php
#1 · ·

Me descargue de una página, un chat, el chat esta compuesto por un par de archivos, uno de ellos es minichat.php. Lo subi a mi web y cuando lo ejecuto me aparece esto: Parse error: parse error, unexpected '<' in /home/webcindario/lacasaweb/chat/minichat/minichat.php on line 15

Lo revise y siembargo sigue, aqui les dejo el script, ¿Tiene algún error?

<iframe src="https://lacasaweb.webcindario.com/chat/minichat/minichat.php" width="150" height="250" frameborder="0" scrolling="no"></iframe>
<head>
<script>
<iframe src="https://lacasaweb.webcindario.com/chat/minichat/minichat.php" width="150" height="250" frameborder="0" scrolling="no"></iframe>
<?
#*****************************
#*** MiniChat v1.5 ***
#*** Creado por: Electros ***
#*** Web: www.electros.net ***
#*****************************

#*********************
#*** Configuración ***
#*********************
<iframe src="https://lacasaweb.webcindario.com/chat/minichat/minichat.php" width="150" height="250" frameborder="0" scrolling="no"></iframe>
# Mensajes a mostrar (0 para mostrar todos)
$mostrar = 30 ;
# Maximo de caracteres por nick
$max_nick = 20 ;
# Maximo de caracteres por web
$max_web = 50 ;
# Maximo de caracteres por mensaje
$max_mensaje = 200 ;
# Maximo de caracteres por palabra (palabras muy grandes pueden descuadrar el diseño y
# ocasionar que el minichat no se vea correctamente), si no deseas esta opción pon 0.
$max_palabra = 30 ;
# ¿Mostrar caretos en los mensajes? (SI / NO)
$caretos = 'SI' ;
# ¿Mostrar fecha en los mensajes? (SI / NO)
$fecha_mensajes = 'SI' ;
# ¿Mostrar IP en los mensajes? (SI / NO)
$ip_mensajes = 'NO' ;
# Estilo (archivo que contiene el estilo del minichat, tipo de letra, tamaño, color, fondo, étc.)
$estilo = 'estilo.css' ;
# ¿Activar filtro Anti-SPAM? (para evitar el envío excesivo de direcciones webs, busca cualquier
# dirección web contenida en el mensaje y mostrará el aviso indicado) (SI / NO)
$antispam = 'SI' ;
# Aviso que se mostrará cuando alguien realice SPAM (sólo si el filtro Anti-SPAM está activado)
$antispam_aviso = '<i>SPAM</i>' ;
# ¿Censurar palabras altisonantes? (SI / NO)
$censura = 'NO' ;
# Permitir código HTML (se recomienda que esté desactivado) (SI / NO)
$codigo = 'NO' ;
# Altura de la tabla de mensajes (cuando los mensajes mostrados rebasan la altura marcada
# aparece una barra de desplazamiento)
$altura = 125 ;
# ¿Mostrar enlace hacia la web del autor? (SI / NO)
$enlace = 'SI' ;

# ***********************************
# *** Fin de configuración básica ***
# ***********************************

# Lo que sigue modifícalo bajo tu propia responsabilidad.

# *** Caretos ***
function caretos($texto) {
# --> Inicio caretos
$lista_caretos = array(
':D' => 'alegre.gif',
':P' => 'burla.gif',
':(1' => 'demonio.gif',
':?' => 'duda.gif',
';)' => 'guino.gif',
':lol' => 'lol.gif',
':|' => 'neutral.gif',
':-)' => 'sonrisa.gif',
':O' => 'sorprendido.gif',
':8' => 'asustado.gif',
':S' => 'confundido.gif',
':(2' => 'demonio2.gif',
':-(' => 'enojado.gif',
':\'(' => 'llorar.gif',
':M' => 'moda.gif',
':)' => 'risa.gif',
':R' => 'sonrojado.gif',
':(' => 'triste.gif'
) ;
# --> Fin caretos
foreach($lista_caretos as $a => $b) $texto = str_replace($a,'<img src="caretos/'.$b.'" width="15" height="15" alt="Careto" align="top">',$texto) ;
return $texto ;
}

# *** Palabras censuradas ***
function censura($texto) {
# --> Inicio palabras
$lista_censura = array(
'insulto1' => 'puto',
'insulto2' => 'pija',
'insulto3' => 'puta'
) ;
# --> Fin palabras
foreach($lista_censura as $a => $b) $texto = str_replace($a,$b,$texto) ;
return $texto ;
}

#*******************************
#*** Fin de la configuración ***
#*******************************

# * Definir el nombre del archivo donde se guardarán los mensajes
define('m',minichat.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 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>MiniChat v1.5</title>
<link rel="stylesheet" type="text/css" href="<?=$estilo?>">
<base target="_blank">
</head>
<body>
<div style="height: <?=$altura?>px ; overflow: auto">
<?
# * 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>
<script type="text/javascript">
enviando = 0 ;
function limpiar(campo) {
if(campo.value == 'Tu nick') campo.value = '' ;
if(campo.value == 'Email o web (opcional)') campo.value = '' ;
if(campo.value == 'Tu mensaje') campo.value = '' ;
}
function validar() {
if(formulario.nick.value == '' || formulario.nick.value == 'Tu nick') {
alert('Debes escribir un nick') ;
return false ;
}
if(formulario.mensaje.value == '' || formulario.mensaje.value == 'Tu mensaje') {
alert('Debes escribir un mensaje') ;
return false ;
}
if(enviando == 0) {
enviando++ ;
}
else {
alert('El mensaje se está enviando.') ;
return false ;
}
}
</script>
<div align="center">
<form name="formulario" method="post" action="minichat.php" target="_self" onsubmit="return validar()">
<input type="text" name="nick" size="15" maxlength="<?=$max_nick?>" value="Tu nick" onfocus="limpiar(this)" class="formulario"><br>
<input type="text" name="web" size="22" maxlength="<?=$max_web?>" value="Email o web (opcional)" onfocus="limpiar(this)" class="formulario"><br>
<input type="text" name="mensaje" size="22" maxlength="<?=$max_mensaje?>" value="Tu mensaje" onfocus="limpiar(this)" class="formulario"><br>
<input type="submit" name="enviar" value="Enviar" class="formulario">
</form>
<? if($enlace == 'SI') echo '<center><a href="http://www.electros.net">MiniChat v1.5</a></center>' ; ?>
</div>
</body>
</html>
</head>
</script>

Salu2


Come y duerme en el foro
Come y duerme en el foro
Haz clic para ver el perfil del usuario
Mensajes: 410
Desde: 19/Jun/2005
· ·
#2 ·

Es complicado corregir el código, en principio, te dice que te falta un simbolo < en la linea 15. Yo no he visto nada, en cambio lo que me ralla es lo que te subrayo:

<!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>MiniChat v1.5</title>
<link rel="stylesheet" type="text/css" href="<?=$estilo?>">
<base target="_blank">
</head>
<body>
<div style="height: <?=$altura?>px ; overflow: auto">

abre <? =$altura ??? no entiendo esto, igual le falta algo.

De todas formas, si continua el error, vuelve a cargar el archivo original, que no creo que tenga fallos.

Un saludo.


Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 51
Desde: 30/Oct/2005
· ·
#3 ·

Quita esto de la línea 15}
<iframe src="https://lacasaweb.webcindario.com/chat/minichat/minichat.php" width="150" height="250" frameborder="0" scrolling="no"></iframe>
tira error porque no puedes meter etiquetas html en el php así como así

<?=$altura?> eso hace lo mismo que <?php echo $altura; ?>

User 390661
@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 1.865
Desde: 14/Abr/2003
·
#4 ·

ahora devuelta Ardiendo con Parse error: parse error, unexpected T_STRING in /home/webcindario/lacasaweb/chat/minichat/minichat.php on line 63


Come y duerme en el foro
Come y duerme en el foro
Haz clic para ver el perfil del usuario
Mensajes: 410
Desde: 19/Jun/2005
· ·
#5 ·

busca esta linea
# * Definir el nombre del archivo donde se guardarán los mensajes
define('m',minichat.txt') ;

se escribe así
define('m','minichat.txt');

ya no debería dar problemas

User 390661
@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 1.865
Desde: 14/Abr/2003
·
#6 ·

ANDA!FlashFlashSonrisa todo este quilombo fue por un '!! Gracias!!.

Salu2Flash


Come y duerme en el foro
Come y duerme en el foro
Haz clic para ver el perfil del usuario
Mensajes: 410
Desde: 19/Jun/2005
· ·
#7 ·

wenas a todos;
germangerman, pos no se si podes ayudarme, o podes brindarme lso files qusaste para hacer el chat en php.


Usuario Novato
Usuario Novato
Haz clic para ver el perfil del usuario
Mensajes: 1
Desde: 24/Ene/2006
·
#8 ·

Hola todosGiño yo descargue la versión 1.5 y no tiene ningún error está en esta página http://www.paws.tk en la parte que dice chat ahí está el ejemplo para que vean la prueba de que no hay que modificarle nada del código.Vacilando


Usuario Novato
Usuario Novato
Haz clic para ver el perfil del usuario
Mensajes: 2
Desde: 31/Ene/2006
·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Servicio Hosting · PHP
Opciones:
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 10:32 UTC+01:00
Temas similares
 I FotoTemaMensajesVisitasÚltima respuesta
No Hay mensajes nuevosHaz clic para ver el perfil del usuario228609/Mar/2012, 01:15
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario173909/Jun/2010, 21:42
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario157707/Feb/2009, 11:17
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Ayuda con una tabla en php
Por: · 22/Ene/2009, 06:03
273026/Ene/2009, 16:56
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Ayuda con un script en php
Por: · 02/Jun/2006, 04:24
84k06/Jun/2006, 15:19
 Ir al último mensaje del tema