Foros del Web » Programando para Internet » PHP »

problema con sesiones y registros

Estas en el tema de problema con sesiones y registros en el foro de PHP en Foros del Web. Hola a tod@s. Tengo un problema con las variables de sesión de una página de registro. En la página donde busca si el usuario está ...
  #1 (permalink)  
Antiguo 23/03/2002, 09:17
 
Fecha de Ingreso: enero-2002
Mensajes: 87
Antigüedad: 22 años, 10 meses
Puntos: 0
problema con sesiones y registros

Hola a tod@s. Tengo un problema con las variables de sesión de una página de registro. En la página donde busca si el usuario está registrado he puesto esto:

if ($pase == $Row['password']) {
session_start();
session_register("password");
session_register("cliente");
$password=$pase;
$cliente=$nombre;
header("Location:entrada.php");
exit();
} else {
header("Location:salida.php");
exit();
}

Y luego, en entrada.php:

<?
session_start();
echo $password;
?>

Pero en $password no me imprime nada. He mirado en la carpeta sessiondata de php y es como si me creara dos sesiones, la primera me crea las dos variables bien, y luego cuando se redirecciona a entrada.php me crea otra sesión. Y al imprimir $password está vacía. ¿Qué está mal?.
  #2 (permalink)  
Antiguo 23/03/2002, 10:28
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

No estás poniendo que versión de PHP estas usando pero lo correcto sería que usaras el array asociativo $HTTP_SESSION_VARS ($_SESSION en version >= 4.1.0). Incluso ahora permite que directamente registres la variable usando el array asociativo. Ej. $_SESSION['password']=$password. Probá hacer el echo usando el array y contanos.
Suerte.
  #3 (permalink)  
Antiguo 23/03/2002, 18:28
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 9 meses
Puntos: 5
Re: problema con sesiones y registros

Bueno, creo que el error esta en que primero "Registras" la variable y luego le pones nombre....

ES ALREVEZ

$perro='Feo';
session_register("perro");

SALUDOS ;) [/B]

<tr>
<td bgcolor="#339933"> <font face="Verdana, Arial" size="1" color="#FFFFFF">>>
[/CODE]</td> <td align="right" bgcolor="#666666">
  #4 (permalink)  
Antiguo 24/03/2002, 00:12
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 8 meses
Puntos: 5
Re: problema con sesiones y registros

Hola.
Me inclino por la versiond e PHP creo que tienes 4.1 o superior.
Lo otro , !cuidado¡, con lo que estas haciendo.
Me explico: Si no usas $HTTP_SESSION_VAR[&quot;password&quot;]; estas diciendo a php que password es una variable global. Que quiere decir esto, ejemplo:
http://tiweb.com/lapagina.php?password=alguna_pass
y te juro que entras por este metodo GET.
La solucion que poco probe para mi, es colocar lo siguiente: &quot;a la pagina que va despues de la base de datos, tu segunda page que mostraste&quot;

if (!$HTTP_SESSION_VARS[&quot;password&quot;]){
header(location : anda_a_kagar.php);
}else{
//todo bien
}

Para versiones &gt;=4.1 de php, reemplazar $HTTP_SESSION_VARS por $_SESSION.

Cuidado con la seguridad, ese pequeño script deberias incluirlo en todas tus web que trabajaran con el usuario indicado.

Si alguien tiene que decir más con la seguridad, sera un pacer leer sus comentarios.
Espero te sirva y no estar mal.
Saludos.
PD:&quot; Me inscribi en multimania.com en cuanto tiempo esta lista la cuenta, la saque para colocar codigo free, pero no me llega el mail de respuesta, alguien me da una solucion???..&quot;
  #5 (permalink)  
Antiguo 24/03/2002, 01:23
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 8 meses
Puntos: 5
Re: problema con sesiones y registros

BUENO, ya llego y estoy en multimania, todo bien.
http://angelroyo.cjb.net
pronto dare a conocer su objetivo, que es codigo libre bien hecho. &quot;eso espero :D, despues que ustedes le quiten los BUG's jajajaja &quot;
Estoy en un servidor libre por que lo vi aqui posteado y lo prefieor a montarlo en uno pagado.
/*
Espero alguna respuesta sobre la seguridad del muchacho de españa, ojala salgan otran inquietudes
*/
Saludos Angel Royo.
  #6 (permalink)  
Antiguo 24/03/2002, 07:25
 
Fecha de Ingreso: enero-2002
Mensajes: 87
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

Hola a tod@s. Gracias por ayudarme, pero todavía no he encontrado la solución. He probado lo que me habéis comentado, que debería funcionar, pero no ha resuelto el problema. El tema es que cuando hace el redireccionamiento a la página de entrada es como si perdiera la sesión que se ha creado y comenzara otra sesión, por lo que la variable $password está vacía. No sé qué puede pasar. No sé si será problema de la configuración del PHP. La versión que tengo es la 4.1.1. Un saludo.
  #7 (permalink)  
Antiguo 24/03/2002, 10:33
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

selu:
Con esa versión te confirmo que tenés que usar el array asociativo $_SESSION. El array $HTTP_SESSION_VARS se mantiene por compatibilidad con versiones anteriores pero no se sabe por cuanto. Probá hacer algo mas simple, por ej.:
Código:
pagina1.php
&lt;?
$_SESSION['var']=&quot;Algo&quot;;
Header('Location: pagina2.php');
?&gt;

pagina2.php
&lt;?
echo $_SESSION['var'];
?&gt;
y contanos que aparece. También sería bueno que nos digas que server estás usando (Apache, PWS, IIS, etc.) y también la versión.
Saludos.
  #8 (permalink)  
Antiguo 24/03/2002, 13:06
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 23 años, 1 mes
Puntos: 6
Re: problema con sesiones y registros

supongamos una tabla con los siguientes campos
Código:
+--+----+-----+
|id|user| pass|
+--+----+-----+
y luego en tu forma con los siguientes inputs
Código:
&lt;input type=&quot;text&quot; name=&quot;user&quot;&gt;
&lt;input type=&quot;text&quot; name=&quot;pass&quot;&gt;
En este ejemplo usaremos un codigo codigo1.php para verficar la existencia de lusuario y mandarlo a un segundo codigo2.php si el usuario se firma conrrectamente, en el condigo2.php solo desplegaremos la contrase~a como en tu ejemplo.

Código:
--------------- condig1.php -----------------
&lt;?
   $ConServ = mysql_connect($DBhost,$DBuser,$DBpass) or die(mysql_error());

   mysql_select_db($DBase) or die(mysql_error());

   $ResCon = mysql_query(&quot;SELECT user,pass FROM tabla WHERE user = '$_POST[user]' AND pass = '$_POST[pass]'&quot;) or die(mysql_error());

   if(!mysql_num_rows($ResCon))
   {
      echo &quot;Error Contrase~a invalida&quot;;
      exit();  
   }

   $_SESSION[password]=$_POST[pass]
   header(&quot;Location:codigo2.php&quot;);

?&gt;
En el segundo codigo agregamos lo siguiente

Código:
------------------ codigo2.php --------------
&lt;?
   if(!isset($_SESSION[password])
   {
     header(&quot;Location:index.html&quot;);
   }

   echo $_SESSION[password];
?&gt;
En el segundo codigo, uso la funcion isset para verificar que el usuario tiene una sesion, si no lo regresmos al inicio.
A hora este es un ejemplo sencillo. Para esquemas en los que existen administradores, supervisores, usuario, etc.. Ademas de verificar la sesion tienes que crear mecanismos que controlen el acceso a cada area es decir yo como usuario no debo de poder ver el contenido de un administrado o supervisor o iclusive de otro usuario a un cuando tenga creada la sesion.

Saludos.
  #9 (permalink)  
Antiguo 24/03/2002, 18:07
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años, 8 meses
Puntos: 5
Re: problema con sesiones y registros

Holas.
Y que paso con session_start();
session_register();
¿Acaso ya no van más?
chao gracias
  #10 (permalink)  
Antiguo 24/03/2002, 19:17
 
Fecha de Ingreso: enero-2002
Mensajes: 87
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

Hola a tod@s. Gracias por vuestro interés. He probado de todas las formas posibles, y el problema creo que sigue radicando en el redireccionamiento. Cuando va a la página de entrada parece que pierde la sesión, con la consiguiente pérdida de las variables de sesión. No entiendo por qué. Un saludo.
  #11 (permalink)  
Antiguo 25/03/2002, 10:33
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

AngelRoyo:
El nuevo array asociativo permite que registres la variable directamente sin utilizar session_register() y el hecho de registrar una variable implica que el PHP inicie una sesión por lo cual no sería necesario la utlización de la función session_start().

selu:
¿Y los datos del web server?. Pasá mas data para ver si lo sacamos adelante.

<hr noshade><font face=Verdana size=2>Leonardo D'Angelo - Buenos Aires - Argentina[/CODE]
  #12 (permalink)  
Antiguo 25/03/2002, 19:07
 
Fecha de Ingreso: enero-2002
Mensajes: 87
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: problema con sesiones y registros

Hola a tod@s. Mi servidor es el Personal Web Server. Una pregunta: ¿podría ser el problema por la configuración del php.ini? Un saludo.
  #13 (permalink)  
Antiguo 12/04/2002, 03:49
 
Fecha de Ingreso: enero-2002
Mensajes: 110
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: problema con sesiones y registros

Hola este es el code que use para el form
Código:
 
&lt;html&gt;
&lt;header&gt;
&lt;title&gt;·AUTORIZAR//LOGIN·&lt;/title&gt;
&lt;/header&gt;
&lt;body&gt;
&lt;form method=&quot;post&quot; action=&quot;autoriza.php&quot;&gt;
&lt;table align=&quot;center&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;font face=&quot;verdana,arial&quot; size=&quot;1&quot;&gt;&lt;b&gt;USUARIO:&lt;/b&gt;&lt;br&gt;&lt;/font&gt;
&lt;input type=&quot;text&quot; name=&quot;usuari&quot;&gt;&lt;br&gt;
&lt;font face=&quot;verdana, arial&quot; size=&quot;-2&quot;&gt;&lt;b&gt;PASSWORD:&lt;/b&gt;&lt;br&gt;&lt;/font&gt;
&lt;input type=&quot;password&quot; name=&quot;pass&quot;&gt;&lt;br&gt;
&lt;input type=&quot;submit&quot; value=&quot;Autoriza&quot;&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
Y este el code para autoriza.php
Código:
 
&lt;?php
$autoriza = array(
     	    &quot;usuario&quot; =&gt; $usuari,
            &quot;password&quot; =&gt; $pass
);
$dbhost = &quot;localhost&quot;;
$dbuser = &quot;root&quot;;
$dbpass = &quot;&quot;;
$basedatos = &quot;salou_db&quot;;
$consql = mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
mysql_select_db($basedatos, $consql) or die(mysql_error());
$result = mysql_query(&quot;SELECT nom_usuari,pass_usuari FROM autoriza WHERE nom_usuari = '$autoriza[usuario]' AND pass_usuari = '$autoriza[password]'&quot;) or die mysql_error());
if(!mysql_num_rows($result))
{
echo &quot;Contraseña no válida&quot;;
exit();
}
$sesion[passw] = $autoriza[password];
header(&quot;Location:opcion2.php&quot;);
?&gt;
Como resultado siempre obtengo autoriza.php en blanco. ¿podriais debuggerme? yo le estoy dando vueltas y no lo conseguí.

Un saludo, ey son geniales estos foros. Aunque no siempre se consigue el resultado por lo menos inducen a ellos.

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:59.