Foros del Web » Programando para Internet » PHP »

drama con sesion

Estas en el tema de drama con sesion en el foro de PHP en Foros del Web. Temgo una sesion que me esta dando dolor de cabeza el codigo es este. <?php Código PHP: session_name ( "amsterdam" ); session_start (); $mostrar_inicio  =  ...
  #1 (permalink)  
Antiguo 30/12/2003, 21:42
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
drama con sesion

Temgo una sesion que me esta dando dolor de cabeza
el codigo es este.

<?php
Código PHP:
session_name("amsterdam");
session_start();
$mostrar_inicio false;
if (
$accion=="login" && $user!="") {
    if (!
$funciones_inc) { include ($lib."funciones.inc.php"); }
    if (!
$db_conn_inc)   { include ($lib."db_conn.inc.php"); }
    
$sql  "SELECT id_usuario, id_perfil, login, nombre, email FROM intranet_usuario ";
    
$sql .= "WHERE login = '".myStr($user)."' AND password = '".myStr($pass)."' ";
    
$sth mysql_query($sql$dbh);
    if (
$r mysql_fetch_row($sth)) {
        
session_register("id_usuario");
        
session_register("id_perfil");
        
session_register("perfil_usuario");
        
session_register("login_usuario");
        
session_register("nombre_usuario");
        
session_register("email_usuario");
        
$id_usuario     $r[0];
        
$id_perfil      $r[1];
        
$perfil_usuario $r[1];
        
$login_usuario  $r[2];
        
$nombre_usuario $r[3];
        
$email_usuario  $r[4];
    } else {
        
$alerta "Contraseña incorrecta o usuario no existe"
        
$accion "logout";
    }
}
if (
$accion=="logout") {
    
session_destroy();
    
$mostrar_inicio true;

?>

y no hay manera que me inicie la sesion me da el siguiente error

Warning: open(/tmp\sess_7a6cc5bf0f09ce7e4a6cefb4ee6c2b99, O_RDWR) failed: m (2) in lib/login.inc.php on line 3

que podrá ser les agradezco su ayuda
  #2 (permalink)  
Antiguo 31/12/2003, 07:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Fijate en tu php.ini:

session.save_path =

denbe apuntar a un directorio que tengas creado en tu PC (servidor) .. ese "/tmp" correspondería a un sistema Linux que suele estar creado por defecto .. pero en un Windows NO. (y si fuera Linux .. tendría que tener permisos de escritura ese directorio que indiques).

Create un directorio tipo:

c:\php\sesiones y lo indicas así en esa directiva de tu php.ini que mencioné.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 01/01/2004, 16:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Aún sin funcionar

Estimado cree la carpta que me dijiste pero aún me muestra el mismo error la configuración de sesiones esta asi:

[Session]
session.save_handler = files ; handler used to store/retrieve data
session.save_path = C:\Archivos de programa\Abria Merlin\Php\sesiones ; argument passed to save_handler
; in the case of files, this is the
; path where data files are stored
session.use_cookies = 1 ; whether to use cookies
session.name = PHPSESSID
; name of the session
; is used as cookie name
session.auto_start = 0 ; initialize session on request startup
session.cookie_lifetime = 100000 ; lifetime in seconds of cookie
; or if 0, until browser is restarted
session.cookie_path = / ; the path the cookie is valid for
session.cookie_domain = ; the domain the cookie is valid for
session.serialize_handler = php ; handler used to serialize data
; php is the standard serializer of PHP
session.gc_probability = 1 ; percentual probability that the
; 'garbage collection' process is started
; on every session initialization
session.gc_maxlifetime = 1440 ; after this number of seconds, stored
; data will be seen as 'garbage' and
; cleaned up by the gc process
session.referer_check = ; check HTTP Referer to invalidate
; externally stored URLs containing ids
session.entropy_length = 0 ; how many bytes to read from the file
session.entropy_file = ; specified here to create the session id
; session.entropy_length = 16
; session.entropy_file = /dev/urandom
session.cache_limiter = nocache ; set to {nocache,private,public} to
; determine HTTP caching aspects
session.cache_expire = 180 ; document expires after n minutes
session.use_trans_sid = 1 ; use transient sid support if enabled
; by compiling with --enable-trans-sid


le agradezco su ayuda.
  #4 (permalink)  
Antiguo 01/01/2004, 16:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y reiniciastes tu servidor HTTP?

Ves el cambio efectivo en un?:
Código PHP:
<?
phpinfo
();
?>
(fijate bien si ese php.ini fué el que debes de modifica .. ahí se informa en el primer bloque de información la ruta del php.ini que estás usando).

Estas usando W2000/NT? .. Esa carpeta tiene permisos de escritura?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 01/01/2004, 17:15
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Puede que el problema sea porque usas una ruta con espacios en los nombres de los directorios. Muchos programas tienen problemas con los espacios en los nombres de directorios y ficheros (incluso el mismo MSDOS). Yo te recomendaria que para directorio temporal donde se guardan las sesiones uses un directorio sin espacios en su ruta, a ser posible incluso que todos los nombres de la ruta cumplan la regla de 8.3 (8 caracteres maximo en el nombre y 3 en la extension). Create un simple C:/temp o C:\ses_tmp. O si no puedes usar la ruta que tienes entre comillas:

session.save_path = "C:\Archivos de programa\Abria Merlin\Php\sesiones" ; argument passed to save_handler

que es la forma en que los programas entienden que la cadena es una ruta completa con espacios (tambien en MSDOS).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 02/01/2004, 10:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Aún no

Hola hice los cambios en dos php.ini que aparecen uno es un archivo como block de notas y el otro en php.ini-dist
bueno hice los cambio que me dijo Josemi y no logro que funcione.
Atentamente Rogel
  #7 (permalink)  
Antiguo 02/01/2004, 15:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Esto, ¿en que directorio esta ese php.ini? El que debes modificar es el que esta en el directorio c:\windows , o mejor dicho, el que esta en el directorio indicado en la primera seccion que te muestra el phpinfo().

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 02/01/2004, 18:25
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 14 años, 1 mes
Puntos: 0
Ahora si que si

Muchas gracias amigos ahora si funciono

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 02:56.