Foros del Web » Programando para Internet » PHP »

Fallo con las sesiones

Estas en el tema de Fallo con las sesiones en el foro de PHP en Foros del Web. nose como hacerlo del todo asik agradeceria q alguien me dijera el fallo q tengo, primero tengo una pagina con Código PHP: <?php require_once( "configuracion.php" ...
  #1 (permalink)  
Antiguo 05/06/2008, 04:23
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Fallo con las sesiones

nose como hacerlo del todo asik agradeceria q alguien me dijera el fallo q tengo, primero tengo una pagina con
Código PHP:
<?php
require_once("configuracion.php");
    
session_name($usuarios_sesion);
    
session_start();

$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error());
mysql_select_db($bd,$cnn);
$usuario_consulta="SELECT usuario,clave,tipo FROM $tabla WHERE usuario='".$_REQUEST['usuario']."'";   
$res=mysql_query($usuario_consulta,$cnn) or die (mysql_error());
$row=mysql_fetch_assoc($res);
//echo $row['usuario'];
//echo $row['clave'];
//echo $row['tipo'];
if ($row==0){header ("location: registro.php");}
            else {
session_register('tipo');
                    
$_SESSION['tipo']=$row['tipo'];
                    
session_register('usuario');
                    
$_SESSION['usuario']=$row['usuario'];
                    
session_register('clave');
                      
$_SESSION['clave']=$row['clave'];};
mysql_close($cnn);
?>
en esa misma pagina recojo mas abajo
Código PHP:
<?php echo $_SESSION['usuario'];?>
y me sale bien

pero a la ora de llevarlo a otra pagina nose como hacerlo
Código PHP:
<?php
require_once("configuracion.php");
    
session_start();
$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error());
$nivel_acceso=2;
if (
$nivel_acceso $_SESSION['tipo']){
header ("Location: Principal_conjunto_marcos.html");
exit;
}
?>
vamos la pagina se me abre directamente y supongo q sera porque el $nivel_acceso < $_SESSION['tipo'] no lo coge, probe un
Código PHP:
<?php echo $_SESSION['tipo'];?>
dentro del <body> y no sale nada

gracias x adelantado
  #2 (permalink)  
Antiguo 05/06/2008, 05:35
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Fallo con las sesiones

se recogeb a si la variables de sesion

Código PHP:

<?php 
require_once("configuracion.php"); 
    
session_start(); 


$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error()); 
$nivel_acceso=2
$tipo $_SESSION['tipo']; //recoges la variable de sesion
if ($nivel_acceso $tipo){ 
header ("Location: Principal_conjunto_marcos.html"); 
exit; 

?>
  #3 (permalink)  
Antiguo 05/06/2008, 05:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo con las sesiones

seguro no es por usar un nombre especifico de sesion??

Cita:
session_name($usuarios_sesion);
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 05/06/2008, 05:48
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por jaronu Ver Mensaje
se recogeb a si la variables de sesion

Código PHP:

<?php 
require_once("configuracion.php"); 
    
session_start(); 


$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error()); 
$nivel_acceso=2
$tipo $_SESSION['tipo']; //recoges la variable de sesion
if ($nivel_acceso $tipo){ 
header ("Location: Principal_conjunto_marcos.html"); 
exit; 

?>
sigue entrando en la pagina aunq no haya registrado 1 usuario
  #5 (permalink)  
Antiguo 05/06/2008, 05:50
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por skull_ Ver Mensaje
nose como hacerlo del todo asik agradeceria q alguien me dijera el fallo q tengo, primero tengo una pagina con
Código PHP:
<?php
require_once("configuracion.php");
    
session_name($usuarios_sesion);
    
session_start();
Prueba a cambiar el orden...antes de darle nombre a la sesión deberías iniciarla...prueba y a ver...

Código PHP:
<?php
session_start
();
require_once(
"configuracion.php");
session_name($usuarios_sesion);
Saludos!!
  #6 (permalink)  
Antiguo 05/06/2008, 05:52
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por pateketrueke Ver Mensaje
seguro no es por usar un nombre especifico de sesion??
a que te refieres? a la pagina q accedo tenia antes el $usuarios_session y nada

o que quite el
Código PHP:
session_name($usuarios_sesion); 
de la verificacion?
  #7 (permalink)  
Antiguo 05/06/2008, 05:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

Mejor todavía, prueba a poner esto en la cabecera del archivo...

Código PHP:
ob_start(); 
Te quedaría así

Código PHP:
<?php
ob_start
();
session_start();
require_once(
"configuracion.php");
session_name($usuarios_sesion);
Saludos!!
  #8 (permalink)  
Antiguo 05/06/2008, 06:01
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: Fallo con las sesiones

Código PHP:
if (isset($_SESSION['usuario'])){
      if (
$nivel_acceso $tipo){  
           
header ("Location: Principal_conjunto_marcos.html");  
           exit;  
      }  else { 

            echo 
"no tienes nivel de acceso para entrar";
}  else{ 

            echo 
"no hay usuario registrado";

Prueba asi, confirma que haya usuario y despues comprueba el nivel de acceso
  #9 (permalink)  
Antiguo 05/06/2008, 06:02
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

pues no me funciona el ob_start(); he probado poniendolo en las paginas q accedo y en la de registro tambien, que se supone q ace exactamente?

otra cosa, es posible q el error este en el boton q me manda a la pagina?
Código HTML:
<a href="Admin/admin_conjunto_marcos.php" target="MainFrame"><div align="center"><input type="submit" name="vendedor" value="Administrador"></div></a> 
aunque desde mi punto de vista no deberia xq el
Código PHP:
<?php
    ob_start
();
    
session_start();
require_once(
"configuracion.php");
    
session_name($usuarios_sesion); 
$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error());
$nivel_acceso=2;
$tipo $_SESSION['tipo'];
if (
$nivel_acceso $tipo){
header ("Location: Principal_conjunto_marcos.html");
exit;
}
?>
lo tengo puesto en el conjunto de los marcos y en cada marco
  #10 (permalink)  
Antiguo 05/06/2008, 06:08
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por jaronu Ver Mensaje
Código PHP:
if (isset($_SESSION['usuario'])){
      if (
$nivel_acceso $tipo){  
           
header ("Location: Principal_conjunto_marcos.html");  
           exit;  
      }  else { 

            echo 
"no tienes nivel de acceso para entrar";
}  else{ 

            echo 
"no hay usuario registrado";

Prueba asi, confirma que haya usuario y despues comprueba el nivel de acceso
Parse error: syntax error, unexpected T_ELSE in D:\xampp\htdocs\Compraventa\Admin\admin_conjunto_m arcos.php on line 16

el error es del 2º else: "} else{"
  #11 (permalink)  
Antiguo 05/06/2008, 06:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

Creo que he visto el error...prueba a poner esto en las pags que quieres acceder despues de hacer el logueo...

Código PHP:
session_name($_SESSION["usuario"]); 
Sino prueba esto...cuando compruebes user y demás create una var autentificado:

Código PHP:
$_SESSION["autentificado"]= "SI"
Y cada vez que quieras accede a una pagina solo tienes que hacer la comprobación:

Código PHP:
if ($_SESSION["autentificado"] != "SI"
{
    
//si no est&aacute; logueado lo envío a la p&aacute;gina de autentificación
    
header("Location: ../inicio.php");

else
{
    
// esto lo utilizo para controlar tiempo que ha estado sin uso, una comprobación más...

Este código yo lo incluyo con un include al principio de cada página...

El ob_start es para el bufer de salida...http://www.empresario.com.mx/2007/sesiones-en-php/

Última edición por Kilofafeure; 05/06/2008 a las 06:18
  #12 (permalink)  
Antiguo 05/06/2008, 06:25
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por Kilofafeure Ver Mensaje
Creo que he visto el error...prueba a poner esto en las pags que quieres acceder despues de hacer el logueo...

Código PHP:
session_name($_SESSION["usuario"]); 
El ob_start es para el bufer de salida...
bueno he probado
Código PHP:
session_name($_SESSION["usuario"]);
session_name($_SESSION['usuario']);
//weno y con tipo tambien q es el q necesito realmente para comprobarlo
session_name($_SESSION["tipo"]);
session_name($_SESSION['tipo']);
session_name('tipo'); 
joer estoy desesperado ya XD llevo 1 semana probando cosas y siempre consigo acceder
  #13 (permalink)  
Antiguo 05/06/2008, 06:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo con las sesiones

bueno, por que no repasamos todos el tema de sesiones con PHP.... allá los veo....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 05/06/2008, 06:53
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

hmmm ok, algo mas?

xq aki kizas la gente no es tan sabia como tu
  #15 (permalink)  
Antiguo 05/06/2008, 07:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fallo con las sesiones

NO es broma... de verdad nunca he trabajado con sesiones.... solo cookies

de echo... estoy leyendo el manual de PHP y practicando... suerte! :D
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #16 (permalink)  
Antiguo 05/06/2008, 10:05
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

ok a ver si lo apaño entonces :)
  #17 (permalink)  
Antiguo 05/06/2008, 10:06
Avatar de jeanclon  
Fecha de Ingreso: mayo-2005
Mensajes: 258
Antigüedad: 18 años, 10 meses
Puntos: 2
Respuesta: Fallo con las sesiones

Ok primero deberias eliminar los session_register, no deberias usarlos si usas $_session.

luego si sigue sin funcionar prueba tambien quitando el session_name($usuarios_sesion);
  #18 (permalink)  
Antiguo 05/06/2008, 12:52
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

Cuando haces el ob_start y demas al principio lo haces des de el mismo archivo o lo haces con un include??? yo como lo utilizo para controlar que no esté más de 10 mins en desuso lo hago con un include, pero cuando necesito utilizar las vars de sesion por lo que sea tengo que pegar el código, sino no funcionan...

Un saludo!
  #19 (permalink)  
Antiguo 05/06/2008, 13:36
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por jeanclon Ver Mensaje
Ok primero deberias eliminar los session_register, no deberias usarlos si usas $_session.

luego si sigue sin funcionar prueba tambien quitando el session_name($usuarios_sesion);
si quito las 2 cosas sigue entrando esto me supera

Kilofafeure; el ob_start lo tengo en todas
  #20 (permalink)  
Antiguo 05/06/2008, 16:35
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

En principio hasta donde llega mi entendimiento así defería funcionar, una vez ya logueado que dices que te printa bien...

Código PHP:
ob_start();
session_start();  //inicias sesion
session_name($_SESSION["usuario"]);  //sesion usuario
if ($_SESSION["tipo"] > 2) {...}
else {...} 
Igualmente acabo de ver que el sesion_start() al principio del todo lo tienes detras de un require_once...prueba a ponerlo al inicio del todo,debe ser al inicio, no después de un comentario ni de un salto de línea (detras del ob_start()).

Código PHP:
ob_start();
session_start();  //inicias sesion
require_once("configuracion.php"); 
session_name($_SESSION["usuario"]);  //sesion usuario
if ($_SESSION["tipo"] > 2) {...}
else {...} 
Si no no se me ocurre nada mas...podrias destruir las variables de sesion antes de hacer el login, no sea que te quedan colgadas de algo

Código PHP:
// Destruye todas las variables de la sesi&oacute;n
session_unset(); 
  #21 (permalink)  
Antiguo 06/06/2008, 01:23
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

el problema es q antes de hacer el login no tengo las sesiones, las creo en el action del formulario donde introduces nombre y contraseña y bueno a la hora de hacer logout tengo un session_destroy(); pero en otra pagina con un link

Edit: el session_start(); si lo tengo antes del requiere_once

Última edición por skull_; 06/06/2008 a las 02:02
  #22 (permalink)  
Antiguo 06/06/2008, 04:24
 
Fecha de Ingreso: noviembre-2006
Mensajes: 117
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Fallo con las sesiones

Cita:
Iniciado por skull_ Ver Mensaje
el problema es q antes de hacer el login no tengo las sesiones, las creo en el action del formulario donde introduces nombre y contraseña y bueno a la hora de hacer logout tengo un session_destroy(); pero en otra pagina con un link
Edit: el session_start(); si lo tengo antes del requiere_once
Antes de destruir la sesion debes destruir todas sus variables...para eso antes de l session_destroy() tienes que hacer session_unset(), alomejor es por esto...
Código PHP:
// Inicializa de la sesi&oacute;n.
// Si est&aacute; usando session_name("algo"), &iexcl;no lo olvide ahora!
session_start();  
// Destruye todas las variables de la sesi&oacute;n
session_unset();
// Finalmente, destruye la sesi&oacute;n
session_destroy(); 
Yo la funcion que me loguea no la tengo en el action, la tengo con un div, no se si será muy correcto, pero creo recordar que intentando hacerlo como tu (en el action) tenia problemas...t pongo mi codigo y a ver que tal...
Código HTML:
<table width="100%" ><tr align="center" bottom="middle"><td height="144">
<table>
<tr align="center">
<td height="106"><table border=0>
<form id="acceso" name="acceso" method="post" enctype="multipart/form-data" onSubmit="comprobar()">
<tr>
	<td align="left">Email:</td>
	<td align="left"><input type="text" name="meil" maxlength="50" size="10"> </td>
</tr>
<tr>
	<td align="left">Clave:</td>
	<td align="left"><input type=PASSWORD name="clave1" maxlength="20" size="10" > </td>
</tr>
<tr><td align="left">
	<input type="submit" name="boton1" value="Acceder">	
   	<input type="reset" name="resetb" value="Limpiar Campos">
</td></tr>
</form> 	
<tr>
<form id="clavenueva" name="clavenueva" method="post" enctype="multipart/form-data" onSubmit="return comprobar2()" action="./php/envmail.php">
	<td align="left" ><div id="mensaje" align="center">¿Olvidaste tu clave?</div>
	 <div id="mensaje" align="center"> <input type="submit" name="clave0" value="Reenviar Clave" align="center"></div></td>
</form>
</tr>    
</table></td>
</tr>
</table>
	<div id="auten" align="center"><?php include_once('loguear.php');?></div>
</table> 

Última edición por Kilofafeure; 06/06/2008 a las 05:20
  #23 (permalink)  
Antiguo 06/06/2008, 06:40
 
Fecha de Ingreso: marzo-2008
Ubicación: Madrid
Mensajes: 35
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Fallo con las sesiones

x fin lo saque, al final me quedo asi
Código PHP:
<?php
    ob_start
();
    
session_start();
require_once(
"configuracion.php");
   
// session_name($usuarios_sesion);

$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error());
mysql_select_db($bd,$cnn);
$usuario_consulta="SELECT usuario,clave,tipo FROM $tabla WHERE usuario='".$_REQUEST['usuario']."' AND clave='".$_REQUEST['clave']."'";   
$res=mysql_query($usuario_consulta,$cnn) or die (mysql_error());
$row=mysql_fetch_assoc($res);
//echo $row['usuario'];
//echo $row['clave'];
//echo $row['tipo'];
if ($row==0){header ("location: registro.php");}
            else
//{session_register('tipo');
                    
{$_SESSION['tipo']=$row['tipo'];
                    
//session_register('usuario');
                    
$_SESSION['usuario']=$row['usuario'];
                    
//session_register('clave');
                      
$_SESSION['clave']=$row['clave'];};
mysql_close($cnn);
?>
Código PHP:
<?php
    ob_start
();
    
session_start();
require_once(
"configuracion.php");
if (!isset(
$_SESSION["tipo"])){
    
$_SESSION["tipo"] ="0";}
$nivel_acceso=2;
$tipo $_SESSION["tipo"];
    if (
$nivel_acceso $tipo){  
    echo 
"lo sentimos, no tiene suficientes privilegios para visitar esta página";  
    exit;}
$cnn=mysql_connect($hs,$us,$cl) or die (mysql_error());
?>
uno de los fallos q tenia era era el cabron ">" q lo tenia puesto al reves

de todas formas muxas gracias x la ayuda
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:16.