Foros del Web » Programando para Internet » PHP »

Problemas con recuperacion variable sesion

Estas en el tema de Problemas con recuperacion variable sesion en el foro de PHP en Foros del Web. Hola amigos temgo el siguiente problema con una variable de seccion: la creo de la siguiente manera: Código PHP: $string = "select * from usuarios where nombre='$usuario' and contrasena='$password'" ; $respuesta = ...
  #1 (permalink)  
Antiguo 12/01/2004, 08:24
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 20 años, 5 meses
Puntos: 0
Problemas con recuperacion variable sesion

Hola amigos temgo el siguiente problema con una variable de seccion:

la creo de la siguiente manera:

Código PHP:
$string="select * from usuarios where nombre='$usuario' and contrasena='$password'";
$respuesta=mysql_query($string,$link)or die("Error Fatal: ".mysql_error());
if(
mysql_num_rows($respuesta)!=0){
session_start();    
session_register("autentificado");     
$autentificado "SI";     
header ("Location: [url]http://www.hotmail.com[/url]"); 
}else{    
header("Location: index.php?error=si");

mysql_free_result($respuesta);
mysql_close($link); 
despues en otra pagina la trato de recuperar de la siguiente manera:

Código PHP:
session_start(); 

if (
$_SESSION["autentificado"] == "SI") { 
        
header("Location: [url]www.hotmail.com[/url]"); 
 }else{
    
header("location: index.php");
    exit(); 

lo que esta sucediendo es lo siguiente siempre me envia a index aunque autentificado sea "SI", bueno en el primer script de creacion de la seccion estan echo las conexiones a la base de datos de forma correcto solo que no inclui en este código.
les agradezco su ayuda
  #2 (permalink)  
Antiguo 12/01/2004, 08:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al parecer no se está propagando el SID correctamente entre tus páginas.


En principio .. si usas $_SESSION (como variable superglobal que es) usalo en todos sitio .. es decir:

en lugar de:
Código PHP:
session_register("autentificado");     
$autentificado "SI"
usa:
Código PHP:
$_SESSION['autentificado']= "SI"
(para usar $_SESSION requieres de PHP versión superior a 4.1.0 .. revisalo por si acaso).

Luego .. según la programación que estás usando para sesiones, estás asumiendo que el SID se propagará de forma automática y que lo va hacer PHP, pero .. PHP no va a sobre-escribir los header("location ...") (redireccionamientos) ni vía Javascript o etiquetas META de refresh (si lo usases). Por ende .. o bien propagas el SID (Identificador Único de Sesión) a mano .. o dejas a PHP que lo haga . .para eso, PHP tieen que usar una cookie y se defien en las directivas de tu php.ini:

Para usar cookies en prograpacíon del SID y olvidarte de propagarlo a mano en ese tipo de redireccionamientos:
session.use_cookies =1

Para que PHP sobre-escriba ciertos tag HTML e incruste el SID en ellos de forma automática:
session.use_trans_sid =1

Cuando hagas cambios en tu php.ini .. reinicia tu servidor y verifica el cambio realizado haciendo un:
Código PHP:
<?
phpinfo
();
?>
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 12/01/2004, 13:17
 
Fecha de Ingreso: noviembre-2003
Mensajes: 157
Antigüedad: 20 años, 5 meses
Puntos: 0
creo que es la version de php porque estoy usando la php 4.0 ahora my php se instalo con el paquete de abria merlin como tendría que hacer para actualizarlo?
  #4 (permalink)  
Antiguo 12/01/2004, 14:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te recomiendo la instalación manual (de paso aprendes a conocer PHP y el entorno que trabajas . ya que .. de la configuración de este depende mucho como puedes/tienes que programar ciertas cosas como sesiones .. o la forma de trabajar variables en general "externas"):

http://www.maestrosdelweb.com/editorial/phpmysqlap/

Un saludo,

PD: No te pregunté el S.O. que usas .. supongo que windows?
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 12/01/2004 a las 14:10
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 04:53.