Foros del Web » Programando para Internet » PHP »

Problemas con autentificación (by Cluster)

Estas en el tema de Problemas con autentificación (by Cluster) en el foro de PHP en Foros del Web. Antes de empezar, Cluster, gracias por compartir tu script con los plebeyos que no llegamos ni a la mitad de la mitad de la mitad.... ...
  #1 (permalink)  
Antiguo 04/01/2005, 04:07
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
Problemas con autentificación (by Cluster)

Antes de empezar, Cluster, gracias por compartir tu script con los plebeyos que no llegamos ni a la mitad de la mitad de la mitad.... de tu nivel :)

Bueno, que parece que quiero rollo contigo :P

Bueno, he creado la tabla 'usuarios' y un formulario para logear que apunta a "../clientes/aut_gestion_usuarios.php" y el error que me sale es este:

Warning: session_start(): open(/tmp\sess_e695cf14133d8b33a5e155ffd7970d7a, O_RDWR) failed: No such file or directory (2) in C:\Apache\Apache2\htdocs\TeamCongress\clientes\aut _verifica.inc.php on line 142

Warning: session_destroy(): Session object destruction failed in C:\Apache\Apache2\htdocs\TeamCongress\clientes\aut _verifica.inc.php on line 150
Error cod.: 2 - Acceso incorrecto!


la línea 142 es: session_start();
y la 150: session_destroy();

Me he fijado en el phpinfo() y comparado con el que tengo en mi portal.. y las diferencias en él son:

________________________portal / nuevo site___ portal / nuevo site
session.bug_compat_42 ______On / Off ___________ On / Off
session.gc_divisor__________ 100 / 1000 _________ 100 / 1000
session.use_trans_sid _______ On / Off ___________ On / Off

por lo demás es todo idéntico... no sé si será por alguno de esos valores... pero si lo es... cómo se cambian esos valores??

Muchas gracias y felices fiestas!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 04/01/2005, 04:22
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Es un problema de configuracion, la directiva es session.save_path. Por lo que veo la tienes configurada como /tmp, que es una ruta en formato Unix. Y tambien veo que tienes un servidor windows. Asi que tienes que cambiar el valor de esa directiva por una ruta windows, como por ejemplo c:/temp (si existe ese directorio).

saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 04/01/2005, 04:31
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
ahhhhhhhhh, la cuestión es que he montado este servidor (en mi PC del trabajo) mientras dan de alta el dominio y host... que seá en Linux... sería mejor que yo me lo instalara en mi PC sobre linux, no?? pero no tengo ni pajolera idea de cómo se hace...

bueno, he cambiado session.save_path = c:/temp y funciona perfectamente... espero que cuando lo suba todo al host me acuerde de las modificaciones que stoy haciendo :P

Saludo y gracias de nuevo!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #4 (permalink)  
Antiguo 04/01/2005, 04:42
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Este cambio no creo que lo tengas que hacer en el servidor, normalmente esta bien configurado y debe ser transparente para tu aplicacion.

No es necesario montar en local PHP en linux, pero si es conveniente revisar las configuraciones de PHP del servidor definitivo. Hay configuraciones que son independientes del sistema operativo, que son a discreccion del administrador del servidor (los magic_quotes, max_filesize y otros) que pueden hacer que tu script no funcione como es debido.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 04/01/2005, 05:04
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
tengo otra preguntita, he visto que hay que incluir:

Código PHP:
require("aut_verifica.inc.php"); 
y luego esto para indiar el nivel de seguridad en la página...

Código PHP:
$nivel_acceso=10// Nivel de acceso para esta página.

if ($nivel_acceso <= $_SESSION['usuario_nivel']){
header ("Location: $redir?error_login=5");
exit;

pero lo que yo quiero es que automáticamente si es de nivel 0 (admin) el usuario vaya a una página y si es nivel 1 (cliente) vaya a otra... para no incluirlo en todas las páginas, me imagino que podré añadir esto al final de "aut_verifica.inc.php", no??

Código PHP:
if ($_SESSION['usuario_nivel']==0){
header ("Location: páginaAdmin.php");
exit;
}else if(
$_SESSION['usuario_nivel']==1){
header ("Location: páginaCliente.php");
exit;
}else{
header ("Location: $redir?error_login=5");
exit;

Gracias de nuevo!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #6 (permalink)  
Antiguo 04/01/2005, 07:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No, ... no deberías modificar aut_verifica.inc.php .. sino que tu script que saltas tras la validación, es decir . .en tu "aplicación" que es en definitiva el uso que le das al script genérico de validación y autentificación de usuarios ..

Por ende .. tendrías tu script/pagina cualquiera .. donde haces:

redirecciona.php

Código PHP:
<?
include ("aut_verifica.inc.php");

// Y tu "acción" que ha de hacer tu aplicación
if ($_SESSION['usuario_nivel']==0){ 
header ("Location: páginaAdmin.php"); 
exit; 
}else if(
$_SESSION['usuario_nivel']==1){ 
header ("Location: páginaCliente.php"); 
exit; 
}else{ 
header ("Location: $redir?error_login=5"); 
exit; 

?>
Y no te olvides en paginaCliente.php (no uses acentos! como nombre de archivo) .. de volver a usar el include() de aut_verifica.inc.php .. por qué eso al menos valida que el usuario esté registrado .. a su vez deberías validar (ratificar) que esa página sólo entra tales niveles de usuarios .. por ejemplo el admin (usuario nivel 0) y los usuarios (nivel 1) con una validación <= similar a la que uso en los ejemplos "demo" del script en sí.

No es recomendable que "mezcles" cosas .. aunque te pueda parecer redundante tener otro script que llamar por otro "include()" tal vez para tu "validación" o "redireccionamiento" .. eso te facilitará por ejemplo a futuro si a mi como autor de ese script "autentificator" me dá por sacar una nueva versión/solución de algún "bug" o similar ... tan sólo tendras que cambiar el script que en mi caso yo te proporcionaría sin tocar tu aplicación (tus otros scripts).

Un saludo,
  #7 (permalink)  
Antiguo 04/01/2005, 07:06
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 649
Antigüedad: 20 años, 6 meses
Puntos: 2
muchas gracias Cluster y Josemi ya me ha quedado claro

jeje, lo de los acentos ha sido un "deslíz"

+saludos!!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
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 01:15.