Foros del Web » Programando para Internet » PHP »

autenticador error

Estas en el tema de autenticador error en el foro de PHP en Foros del Web. que tal amigos, antes que nada, decirles que he cogido el autenticador de cluster y le he hecho unas modificaciones bastante grandes... como sea sucede ...
  #1 (permalink)  
Antiguo 18/02/2005, 23:56
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
autenticador error

que tal amigos, antes que nada, decirles que he cogido el autenticador de cluster y le he hecho unas modificaciones bastante grandes... como sea sucede lago muy raro:
me aprece este error en una de las paginas pero me funciona muy bien, es decir me da la seguridad que necesito, lo raro es que las demas paginas no me dan este error, y tienen el mismo codigo

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/nevano/public_html/presentation/index2.php:2) in /home/nevano/public_html/presentation/aut.cfg.php on line 66

aca les dejo el codigo del archivo autenticador:
Código PHP:
<?php
require ("data.cfg.php");
$tabla "registro";
$user $_POST['user'];
$pass md5($_POST['pass']);

if (isset(
$_POST['user']) & isset($_POST['pass'])){
    if (
$_SERVER['HTTP_REFERER'] == ""){
echo 
"Error 300: Esta intentando acceder de una forma no valida";
exit;
}
    
// sacamos los datos de la base dedatos para hacer comprobacion de registro
    
$querymysql_query("SELECT user, pass, admin FROM $tabla WHERE (user='$user')");
    
    
    
//1
    
if (mysql_num_rows($query) != 0){
             
$datos mysql_fetch_array($query);
 
mysql_free_result($query);

//2


//3
if ($pass == $datos[1]){ 
//varibles de sesion
    
session_name("sess");
    
session_start();
   
session_cache_limiter('nocache,private');
    
    
$_SESSION['user']= $datos[0];
    
$_SESSION['pass']=$datos[1];
    
$_SESSION['admin']=$datos[2];
//fin variables de sesion
session_write_close();
    
header('Location:' $_SERVER["PHP_SELF"].'?');
    exit;
}

//e1
else{
 echo 
"Contraseña invalida";

exit;
}
}
//e2


//e3
    
else{
    echo 
"Error 301: Su nombre de usuario es incorrectos";
     
mysql_free_result($query);
    exit;
    }

}
    
    
//e4
    
else{
    
// -------- Chequear sesión existe -------

// usamos la sesion de nombre definido.
session_name("sess");
// Iniciamos el uso de sesiones
session_start();
session_cache_limiter('nocache,private');
// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matado" la sesion se intenta volver hacia atras
// con el navegador.
session_write_close();

if (!isset(
$_SESSION['user']) && !isset($_SESSION['pass'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die (
header("location: http://www.nevano.com/aut/ag_u.php"));
exit;
    }



}



?>
agradeceria su ayuda, y si ven mas errores, que de seguro los habra, espero me los hagan saber
__________________
SEO en Medellin
  #2 (permalink)  
Antiguo 19/02/2005, 08:10
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
=?

a alguie se le ocurra que pueda ser?
__________________
SEO en Medellin
  #3 (permalink)  
Antiguo 19/02/2005, 08:51
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 2 meses
Puntos: 22
Creo que es por iniciar session ya iniciada:

[session_start();]

Mira si no da error quitando esa linea.

Salu2!.
  #4 (permalink)  
Antiguo 19/02/2005, 11:21
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
No es por eso

Si te fijas, para iniciar la primer a sesion tiene que cumplir con el condicion if
que coloca como condicion, que las variables user y pass no esten vacias, es decir que provengan del formulario correspondiente... de lo contrario quiere decir que se trata de que el user ya inicio sesion, entonces no tiene que comprobar todos los datos de nuevo....

beuno.. ya solucioone ese problema... pero me gustaria saber que ven de malo en mi script o en mi codigo...
gracias
__________________
SEO en Medellin
  #5 (permalink)  
Antiguo 21/02/2005, 07:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio esto no es necesario usarlo:

//fin variables de sesion
session_write_close();

PHP ya registra la sesión cuando termina la ejecución del script ..

En php.net algunos comentarios de los usuarios aconsejan usar dicha función antes de un "header("location ...) .. pero lo aconsejan por qué no cierran y terminan el script con "exit" (como por ejemplo por mi parte en el script Autentificator original lo uso).

¿podrías comentar por qué lo usas concretamente? .. alguna otra(s) razones?

Un saludo,
  #6 (permalink)  
Antiguo 21/02/2005, 07:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro detalle:

session_name("sess");
session_start();
session_cache_limiter('nocache,private');

el orden de session_cache_limiter es antes de session_Start():

session_name("sess");
session_cache_limiter('nocache,private');
session_start();

Eso era un problema original de Autentificator .. de hecho por defecto PHP suele usar dicho "cache limiter" a "private" .. por eso si bien no funcionaba .. tampoco afectaba (salvo una configuración por defecto diferente de PHP la cual no se suele cambiar en la mayoría de casos).


-*-------

Ojo con esto:

session_write_close();

if (!isset($_SESSION['user']) && !isset($_SESSION['pass'])){

No sé realmente como se va a comportar las sesiones en ese caso .. pero en teoría dicha función cierra la sesión .. así que ojo con eso y evalua que sucede en ese caso.

Un saludo,

Última edición por Cluster; 21/02/2005 a las 07:36
  #7 (permalink)  
Antiguo 23/02/2005, 20:50
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
OKay cluster

disculpa mi demora... pero habia olvidado este tema por completo

en cuanto apor que cierro la sesion, lo hago mas por seguridad que por cualqueir otra cosa..... aunque no se cuanto pueda ayudar

el script no se me comporto mal en la parte donde tu dices es decir donde cierro por segunda vez, sin emabrgo es una mala practica y no s epor que lo hice...

otra cosa es que me he topado con servidores que me guardane el cache, entonces por esto prefiero dejar la instruccion del cache_limiter... es como para curarme en salud....

__________________
SEO en Medellin
  #8 (permalink)  
Antiguo 24/02/2005, 06:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
otra cosa es que me he topado con servidores que me guardane el cache, entonces por esto prefiero dejar la instruccion del cache_limiter... es como para curarme en salud....
Ok .. pero debe estar en el orden que te dí .. como lo usa originalmente Autentificator no es correcto (en un fallo/error que no arreglé en Autentificator .. pero por eso te aviso ahora).

Un saludo,
  #9 (permalink)  
Antiguo 24/02/2005, 16:59
Avatar de mafima  
Fecha de Ingreso: abril-2003
Ubicación: Medellin-Colombia
Mensajes: 1.109
Antigüedad: 21 años
Puntos: 24
ok gracias

gracias por todo
__________________
SEO en Medellin
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 21:52.