Foros del Web » Programando para Internet » PHP »

duda

Estas en el tema de duda en el foro de PHP en Foros del Web. Bueno, ahi coge los datos del usuario que esta online desde el archivo $cnnick.php, el problema es que quiero que los usuarios vean el color ...
  #1 (permalink)  
Antiguo 31/01/2010, 08:14
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 2 meses
Puntos: 9
duda

Bueno, ahi coge los datos del usuario que esta online desde el archivo
$cnnick.php, el problema es que quiero que los usuarios vean el color de nickq ue esta usando, pero si pongo un echo, solo lo ve el usuario que tiene ese color, pero nadie mas.

No se como lee los datos del usuario, asi que no se como hacer para que muestre el color

Código PHP:
<?php
// http://www.drew-phillips.com/scripts/index.php
//set the two variables below
$dataFile "online.txt";
$sessionTime "5" //time in **minutes** to consider someone online before removing them
#####################################################
# No editing needed below
#####################################################
error_reporting(E_ERROR E_PARSE);
if(!
file_exists($dataFile)) {
    
$fp fopen($dataFile"w+");
    
fclose($fp);
}
$ip $_SERVER['REMOTE_ADDR'];
$users = array();
$onusers = array();
$timeuser time();
//get users part
$fp fopen($dataFile"r");
flock($fpLOCK_SH);
while(!
feof($fp)) {
    
$users[] = rtrim(fgets($fp));
}
flock($fpLOCK_UN);
fclose($fp);
// pagina actual
if($id == ""){ $paginactual "home";} else { 
if(
file_exists("$id.php")) { $paginactual $id ;} 
if(!
file_exists("$id.php")) { $paginactual "home" ;}
}
// refer
$refer=$_SERVER['HTTP_REFERER'];
if(
$refer==""){
$refer="Su PC"
}
// usuario
if($ucnnick == ""){$nameuser "!$paginactual";} else { $nameuser "|$ucnnick|$paginactual|$refer"; }
//cleanup part
$x 0;
$alreadyIn FALSE;
foreach(
$users as $key => $data) {
    list( , 
$lastvisit) = explode("|"$data);
    if(
time() - $lastvisit >= $sessionTime 60) {
        
$users[$x] = "";
    } else {
        if(
strpos($data$ip) !== FALSE) {
            
$alreadyIn TRUE;
            
$users[$x] = "$ip|$timeuser$nameuser"//update record
        
}
    }
    
$x++;
}
if(
$alreadyIn == FALSE) {
    
$users[] = "$ip|$timeuser$nameuser";
}
//write file
$fp fopen($dataFile"w+");
flock($fpLOCK_EX);
$totaluser 0;
foreach(
$users as $single) {
    if(
$single != "") {
        
fwrite($fp$single "\r\n");
        
$totaluser++;
    }
}
flock($fpLOCK_UN);
fclose($fp);
if(
$uo_keepquiet != TRUE) {
    echo 
$totaluser;
}
?>
<br>
Anonimos : 
<?
$fd_anonimo 
fopen($dataFile"r");
$contenido_anonimo fread($fd_anonimofilesize($dataFile));
fclose($fd_anonimo);

$fichero_anonimo explode("!"$contenido_anonimo);
$fichero_anonimo array_slice($fichero_anonimo0, -1);
$fichero_anonimo array_reverse($fichero_anonimo);
$anonimos count($fichero_anonimo);
echo 
$anonimos ;
?>
<br>
Registrados: 
<?
$registrados 
$totaluser-$anonimos;
echo 
$registrados ;
?>
<br>
<?php
# Numero de registros que se mostraran por página.
$limiteRegistros "10";
# Ubicación del fichero de texto.
$ficheroTexto $dataFile;
# Leemos el contenido del fichero.
$fd fopen($ficheroTexto"r");
$contenido fread($fdfilesize($ficheroTexto));
fclose($fd);
# Creamos el array.
$ficheroTexto explode("\n"$contenido);
# Se extrae la ultimo elemento ya que este es vacio.
$ficheroTexto array_slice($ficheroTexto0, -1);
# Ordenamos los elementos del array en orden inverso.
$ficheroTexto array_reverse($ficheroTexto);
# Numero de elementos del array ósea registros del fichero.
$registrosTotales count($ficheroTexto);
# Obtenemos el numero de página actual.
$paginaActual = @$_GET["pag"];
# Si no se ha especificado el numero de página se establce a 1.
if(empty($paginaActual))
{
    
$paginaActual 1;
}
# Se crean las variables con las cuales se limitaran los registros.
$mostrarDesde $paginaActual $limiteRegistros $limiteRegistros;
$mostrarHasta $paginaActual $limiteRegistros;
# Mostramos los registros limitandolos por medio de las variables de arriba.
for($iregistros $mostrarDesde;  $iregistros $registrosTotales AND $iregistros $mostrarHasta$iregistros++)
{
    
$columna split("\|",$ficheroTexto[$iregistros]);
    
# Resultados
    
if($columna[2]){
    echo 
"<a href='index.php?p=usuarios&u=$columna[2]&seccion=$columna[3]'>- <font color=\"$colornick\">$columna[2]</font></a><br>";
    }
}
# Solo si el total de registros es mayor a el limite de registros por página
# mostraremos los enlaces para cada página.
if($registrosTotales $limiteRegistros)
{
    
# Numero de enlaces que se mostraran.
    
$numeroPaginas ceil($registrosTotales $limiteRegistros);
    
# Mostramos los enlaces.
echo "";
    for(
$iregistros 1$iregistros <= $numeroPaginas$iregistros++)
    {
        
# Con esto no mostraremos el enlace de la página actual.
        
if($paginaActual == $iregistros)
        {
            echo 
"| <b>".$iregistros."</b> |";
        }
        else
        {
            echo 
"| <a href=index.php?p=online&pag=".$iregistros.">".$iregistros."</a> |";
        }
    }
}
echo 
"";
?>
  #2 (permalink)  
Antiguo 31/01/2010, 09:37
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años
Puntos: 14
Respuesta: duda

El color del usuario que estés recorriendo en ese momento estará definido en el fichero como todo lo demás, ¿no? Por tanto, no será $colornick (mismo color para todos, porque ese valor no cambia), sino $columna[x], siendo x el índice que corresponda al color, igual que $columna[2] parece corresponderse con el nombre.
  #3 (permalink)  
Antiguo 31/01/2010, 09:40
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: duda

Si, pero no se como hcaer eso de la columna :S
  #4 (permalink)  
Antiguo 31/01/2010, 09:56
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años
Puntos: 14
Respuesta: duda

La columna es un array que en cada posición tiene un atributo del usuario. En formato Una cosa|Otra cosa|Otra cosa..., por lo que parece. Una de esas cosas supongo que será el color. La primera posición es 0, luego 1, luego 2... Cuenta dónde está color y pon $columna[ese número].
  #5 (permalink)  
Antiguo 31/01/2010, 10:19
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: duda

Se como funciona, pero no se como hacer la comuna del color ;(
  #6 (permalink)  
Antiguo 31/01/2010, 10:40
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años
Puntos: 14
Respuesta: duda

¿El color no se guarda en el mismo fichero que el resto de cosas? ¿Dónde se guarda? En el código no veo ninguna referencia a ello... Pero como has dicho que el usuario veía su propio color daba por hecho que en algún sitio se guardaba...

Si quieres mantener esta estructura de ficheros, tendrás que añadir otra columna al fichero (al final, para no desbaratar la estructura) que indique el color que ha escogido cada usuario y luego hacer lo que te he dicho. ¿Cómo hacerlo? Pues si ahora un usuario es por ejemplo esto:
Código Fichero:
Ver original
  1. 1|Pepito|Mi casa
Tendrá que pasar a ser esto:
Código Fichero:
Ver original
  1. 1|Pepito|Mi casa|#000000
Por si acaso, #000000 es el color negro, para poner un ejemplo. Aunque no sé si entiendo exactamente cuál es tu duda o cómo quieres hacer lo del color...
  #7 (permalink)  
Antiguo 31/01/2010, 12:32
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: duda

si, pero esque el script de arriba recoje los datos desde el archivo php, por ejemplo:

seapirates.php

<?
$nick = "Seapirates";
$email = "....";
$colornick = "";
?>


el problema es que en el script no se como recoje los datos del user, xk no veo como los recoje
  #8 (permalink)  
Antiguo 31/01/2010, 12:41
Avatar de Ryo
Ryo
 
Fecha de Ingreso: marzo-2008
Ubicación: Bilbao
Mensajes: 269
Antigüedad: 16 años
Puntos: 14
Respuesta: duda

Entonces, dentro del for, puedes entrar en el fichero php de cada usuario para recoger su información.

Por cierto, ¿usas ficheros por alguna razón en especial? Sé que es costoso una vez ya está hecho o medio hecho, pero te recomendaría plantearte el crear una base de datos... Te será mucho más fácil trabajar con ella que con ficheros.

Etiquetas: Ninguno
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 07:28.