Foros del Web » Programando para Internet » PHP »

donde tengo que insertar la variable $_session para que me salga en el chat

Estas en el tema de donde tengo que insertar la variable $_session para que me salga en el chat en el foro de PHP en Foros del Web. Hola, tengo un chat en php en el que los mensajes se guardan en un archivo.txt y necesito meter la variable $_SESSION['usuario_login'] en el campo ...
  #1 (permalink)  
Antiguo 05/01/2011, 08:21
 
Fecha de Ingreso: enero-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
donde tengo que insertar la variable $_session para que me salga en el chat

Hola, tengo un chat en php en el que los mensajes se guardan en un archivo.txt y necesito meter la variable $_SESSION['usuario_login'] en el campo del nick, para que cuando los usuarios que se metan, como se han tenido que autentificar previamente, directamente cuando se metan en el chat el campo del nick tenga puesto su nombre y cuando envíen el mensaje se guarde en el archivo.txt el nombre de la persona y el mensaje que envió Este es el código:
<?
require("aut_verifica.inc.php");
$nivel_acceso=10; // Nivel de acceso para esta página.
// se chequea si el usuario tiene un nivel inferior
// al del nivel de acceso definido para esta página.
// Si no es correcto, se mada a la página que lo llamo con
// la variable de $error_login definida con el nº de error segun el array de
// aut_mensaje_error.inc.php
if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;
}
?>
<?
//*********************
//*** Configuración ***
//*********************

// Mensajes a mostrar (0 para mostrar todos)
$mostrar = 0 ;
// Maximo de caracteres por nick
$max_nick = 20 ;
// Maximo de caracteres por mensaje
$max_mensaje = 200 ;
// Maximo de caracteres por web
$max_web = 100 ;
// 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 = 25 ;
// Caretos
$caretos = "ON" ;
// Estilo (archivo que contiene el estilo del minichat, tipo de letra, tamaño, color, fondo)
$estilo = "estilo.php" ;
// Filtro Anti-Spam (para evitar el envío excesivo de direcciones webs, busca cualquier
// dirección web contenida en el mensaje y la transformará en la palabra indicada)
$antispam = "ON" ;
$antispam_palabra = "SPAM" ;
// Censura de palabras
$censura = "OFF" ;
// Permitir código HTML (se recomienda que esté desactivado)
$codigo = "OFF" ;
// Altura de la tabla de mensajes (cuando los mensajes mostrados rebasan la altura marcada
// aparece una barra de desplazamiento)
$altura = 125 ;

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

// Lista de caretos (si $caretos está en ON)
if($caretos == "ON") {
function caretos($a) {
$a = str_replace("[[","",$a) ;
$a = str_replace("]]","",$a) ;
// ***************
// *** Caretos ***
// ***************
// Debes poner el código del careto y la imagen por el que se va a sustituir
// el nombre de la imagen debe estar metido entre corchetes [[ y ]]
// --> Inicio caretos
$a = str_replace(":D","[[alegre.gif]]",$a) ;
$a = str_replace(":8","[[asustado.gif]]",$a) ;
$a = str_replace(":P","[[burla.gif]]",$a) ;
$a = str_replace(":S","[[confundido.gif]]",$a) ;
$a = str_replace(":(1","[[demonio.gif]]",$a) ;
$a = str_replace(":(2","[[demonio2.gif]]",$a) ;
$a = str_replace(":?","[[duda.gif]]",$a) ;
$a = str_replace("","[[enojado.gif]]",$a) ;
$a = str_replace(";)","[[guino.gif]]",$a) ;
$a = str_replace("","[[llorar.gif]]",$a) ;
$a = str_replace(":lol","[[lol.gif]]",$a) ;
$a = str_replace(":M","[[moda.gif]]",$a) ;
$a = str_replace(":|","[[neutral.gif]]",$a) ;
$a = str_replace(":)","[[risa.gif]]",$a) ;
$a = str_replace("","[[sonrisa.gif]]",$a) ;
$a = str_replace(":R","[[sonrojado.gif]]",$a) ;
$a = str_replace(":O","[[sorprendido.gif]]",$a) ;
$a = str_replace(":(","[[triste.gif]]",$a) ;
// --> Fin caretos
$a = str_replace("[[","<img src=\"caretos/",$a) ;
$a = str_replace("]]","\" width=\"15\" height=\"15\">",$a) ;
return $a ;
}
}
// Lista de censura de palabras (si $censura está en ON)
if($censura == "ON") {
function censura($texto) {
// ***************************
// *** Palabras censuradas ***
// ***************************
// Debes poner primero la palabra a buscar y luego por la que se va a sustituir
// --> Inicio palabras
$texto = str_replace("insulto1","***",$texto) ;
$texto = str_replace("insulto2","***",$texto) ;
$texto = str_replace("insulto3","***",$texto) ;
// --> Fin palabras
return $texto ;
}
}

//*******************************
//*** Fin de la configuración ***
//*******************************

// *** Guardar mensaje ***
if($enviar) {
function limpiar($a) {
$a = trim($a) ;
$a = str_replace("|","",$a) ;
return $a ;
}
$nick = limpiar($nick) ;
$mensaje = limpiar($mensaje) ;
$web = limpiar($web) ;
$minichat = fopen("archivo.txt",a) ;
if($web == "" || $web == "Tu email o web") {
$nick = "<b>&lt;$nick&gt;</b>" ;
}
else {
if(eregi("^www.",$web)) { $web = "http://$web" ; }
if(eregi("^[0-9a-z_\-]+@[0-9a-z_\-\.]+[a-z]{2,3}$",$web)) { $web = "mailto:$web" ; }
$nick = "<a href=\"$web\">&lt;$nick&gt;</a>" ;
}
fwrite($minichat,"\r\n$nick | $mensaje") ;
fclose($minichat) ;
}
?>
<html>
<head>
<title>chat</title>
<?
include("$estilo") ;
?>
<base target="_blank">
</head>
<body>
<br>
<br>
<div style="height: <?=$altura?> ; overflow: auto">
<?
// *** Mostrar los mensajes ***
$mensajes = file("archivo.txt") ;
$total = count($mensajes) ;
if($total < $mostrar || $mostrar == 0) {
$maximo = 0 ;
}
else {
$maximo = $total - $mostrar ;
}
while($total > $maximo) {
$total-- ;
list($nick,$mensaje) = explode(" | ",$mensajes[$total]) ;
if($codigo == "OFF") { $mensaje = htmlspecialchars($mensaje) ; }
if($censura == "ON") { $mensaje = censura($mensaje) ; }
if($antispam == "ON") { $mensaje = preg_replace("/(http:\/\/|www.)[^\s]+/i",$antispam_palabra,$mensaje) ; }
if($max_palabra > 0) {
$palabras = explode(" ",$mensaje) ;
$total_palabras = count($palabras) ;
for($a = 0 ; $a < $total_palabras ; $a++) {
if(strlen($palabras[$a]) > $max_palabra) { $palabras[$a] = chunk_split($palabras[$a],$max_palabra," ") ; }
}
$mensaje = implode($palabras," ") ;
}
if($caretos == "ON") { $mensaje = caretos($mensaje) ; }
if($total % 2) { $estilo_tabla = "mensaje1" ; } else { $estilo_tabla = "mensaje2" ; }
?>
<table width="100%" border="0" cellpadding="1" cellspacing="0" class="<?=$estilo_tabla?>">
<tr>
<td>
<?="$nick $mensaje"?>
</td>
</tr>
</table>
<div style="margin-top: 1"></div>
<?
}
?>
</div>
<script>
enviando = 0 ;
function limpiar(campo) {
if(campo.value=='Tu nick') { campo.value='' ; }
if(campo.value=='Tu mensaje') { campo.value='' ; }
if(campo.value=='Tu email o web') { campo.value='' ; }
}
function validar() {
if(formulario.nick.value == '' || formulario.nick.value == 'Tu nick') { alert('SI NO ESCRIVES UN NICK, NO PUEDES MOSTRARTE A LOS DEMÁS USUARIOS DEL CHAT DE TOKEWEB') ; return false ; }
if(formulario.mensaje.value == '' || formulario.mensaje.value == 'Tu mensaje') { alert('TIENES QUE ESCRIVIR UN MENSAJE PARA QUE LO LEAN LOS DEMÁS USUARIOS') ; 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()">
Nick:
<input type="text" name="nick" size="10" maxlength="<?=$max_nick?>" value="" onfocus="limpiar(this)" class="formulario"><br>
Mensaje:
<input t ype="text" name="mensaje" size="20" maxlength="<?=$max_mensaje?>" value="" onfocus="limpiar(this)" class="formulario"><br>
<input type="submit" name="enviar" value="Enviar" class="formulario">
</form>
<br>
<div style="font-family: verdana ; font-size: 7pt">
<a href="pagina">xx</a>
</div>
</div>
</body>
</html>

Yo lo e intentado y lo unico que e conseguido es que me aparezca con un echo el nombre de la persona antes de enviar el nick y el mensaje para guardarlo en el archivo y luego cuando se muestra no me aparece nada mas que el mensaje.
Tendría que salir:
<Nombre del usuario>mensaje

Etiquetas: chat, session, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.