Foros del Web » Programando para Internet » PHP »

Ayudenme con este Script!!!

Estas en el tema de Ayudenme con este Script!!! en el foro de PHP en Foros del Web. Amigos una ayudadita : Estoy haciendo un script de comprobacion de registro y consiste en jalar informacion de dos cookie con los datos de nombre ...
  #1 (permalink)  
Antiguo 08/08/2003, 09:39
 
Fecha de Ingreso: julio-2003
Ubicación: Arequipa - Peru
Mensajes: 148
Antigüedad: 20 años, 8 meses
Puntos: 0
Ayudenme con este Script!!!

Amigos una ayudadita :
Estoy haciendo un script de comprobacion de registro y consiste en jalar informacion de dos cookie con los datos de nombre de usuario y idsession, para luego comprobarlos en un fichero en el servidor para verificar el tiempo de desconecion y segun esos datos informar si esta conectado o no, bueno lo que pasa es lo siguiente:
Con este script funcion correctamente:

Código PHP:
<?php 
    $nickN 
$HTTP_COOKIE_VARS["usNick"];
    
$VcID $HTTP_COOKIE_VARS["idsession"];
    if(isset(
$nickN) && isset($VcID)) { 
            
$estado "false";
            
$archivo="usuarios.dat"//archivo donde almacenarán los usuarios activos
            
$inactivo="480";//cargamos variable de tiempo
            
$tiempo=time();
            
$filas=file($archivo);
            for (
$a=0$a sizeof($filas); $a++) {
                
$datos=split(':',$filas[$a]);
                if (
$datos[0] != $nickN && $datos[1] != $VcID && ($tiempo $datos[2]) < $inactivo) {
                    
$res .= $datos[0].":".$datos[1].":".$tiempo."\n";
                }
                if (
$datos[0] == $nickN && $datos[1] == $VcID && ($tiempo $datos[2]) < $inactivo) {
                    
$estado "true";
                }
            }
            if (
$estado == "true"){
                
$res .= $nickN ":" $VcID ":" $tiempo;
            }
            
$fp=fopen($archivo,"w") or die("el fichero no se ha podido abrir");
            
fwrite ($fp,$res);
            
fclose($fp);
    } 
print(
$estado);
?>
Pero a la hora de ponerlo todo en una funcion me da una pantalla en blanco, al usarlo en una funcion utilizo el siguiente script:

Código PHP:
<?php 
function validaUSU(){
    
$nickN $HTTP_COOKIE_VARS["usNick"];
    
$VcID $HTTP_COOKIE_VARS["idsession"];
    if(isset(
$nickN) && isset($VcID)) { 
            
$estado "false";
            
$archivo="usuarios.dat"//archivo donde almacenarán los usuarios activos
            
$inactivo="480";//cargamos variable de tiempo
            
$tiempo=time();
            
$filas=file($archivo);
            for (
$a=0$a sizeof($filas); $a++) {
                
$datos=split(':',$filas[$a]);
                if (
$datos[0] != $nickN && $datos[1] != $VcID && ($tiempo $datos[2]) < $inactivo) {
                    
$res .= $datos[0].":".$datos[1].":".$tiempo."\n";
                }
                if (
$datos[0] == $nickN && $datos[1] == $VcID && ($tiempo $datos[2]) < $inactivo) {
                    
$estado "true";
                }
            }
            if (
$estado == "true"){
                
$res .= $nickN ":" $VcID ":" $tiempo;
            }
            
$fp=fopen($archivo,"w") or die("el fichero no se ha podido abrir");
            
fwrite ($fp,$res);
            
fclose($fp);
    } 
return 
$estado;
}

resultado validaUSU();
if (
resultado == "true"){
    print (
"exitoso");
}else{
    print(
"falso");
}
?>
Donde podria estar el problema.
Gracias por su ayuda

Mauricio
  #2 (permalink)  
Antiguo 08/08/2003, 14:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El problema es que $HTTP_COOKIE_VARS no es un array superglobal y se solo se puede acceder directamente en el ambito global (fuera de las funciones). La solucion seria usar el array superglobal ($_COOKIIES si no me equivoco y solo a partir de 4.1) o declarar como global $HTTP_COOKIE_VARS dentro de la funcion. Se hace:
Código PHP:
function validaUSU(){

global function 
validaUSU(){

    
$nickN $HTTP_COOKIE_VARS["usNick"];

    
$VcID $HTTP_COOKIE_VARS["idsession"];
;

    
$nickN $HTTP_COOKIE_VARS["usNick"];

    
$VcID $HTTP_COOKIE_VARS["idsession"]; 
Mas info http://www.php.net/manual/en/languag...bles.scope.php

Otra opcion seria pasarle como parametros esos valores de las cookies.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 05:33.