Foros del Web » Programando para Internet » PHP »

problema con perfiles

Estas en el tema de problema con perfiles en el foro de PHP en Foros del Web. hola amigos queria pedirle la siguiente ayuda resulta que en mi index una vez despues de estar logeados un cliente o administrador yo les muestro ...
  #1 (permalink)  
Antiguo 17/06/2009, 19:43
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años
Puntos: 2
problema con perfiles

hola amigos queria pedirle la siguiente ayuda resulta que en mi index una vez despues de estar logeados un cliente o administrador yo les muestro un mensaje a cada uno, pero tengo el siguiente problema, resulta que yo al cliente le mando la variable c=1 y al adminitrador mando c=2, entonces cuando copio la url de administradior (index.php?c=2) y la pego en la sesion del cliente (index.php?c=1) me sale el mensaje del administrador....siendo que eso no deberia suceder....como puedo solucionar eso??

invitado = index.php
cliente = index.php?c=1
administrador = index.php?c=2

aqui les dejo el codigo para que quede mas claro el ejemplo ( ya que no soy muy bueno para explicar las cosas xD)

Código PHP:
<?php              
            
if($_REQUEST['c'] == 1){
            
$user =$_SESSION['k_username'];
            
$x mssql_query("SELECT REGISTRO.reg_id FROM REGISTRO WHERE REGISTRO.reg_usu ='$user'");
             
$id_user mssql_fetch_row($x);
             
$id_user=$id_user[0];
            
$nom3 mssql_query("select cli_nom from cliente where reg_id ='$id_user'");
            
$nom2 mssql_fetch_row($nom3);
            
$nom $nom2[0];
            
$ape3 mssql_query("select cli_ape from cliente where reg_id = '$id_user'");
            
$ape2 mssql_fetch_row($ape3);
            
$ape $ape2[0];
            }elseif(
$_REQUEST['c'] == 2){
            
$nom ="Señor";            
            
$ape" Administrador";
            }else{            
            
$nom ="Está como Invitado";            
            
$ape"(a)";
            }
            
$esp=" ";
            
$pto=":";
            echo 
'Bienvenido' ;
            echo 
'<b>'.$pto,$esp,$nom,$ape,$esp.'</b>';            
        
?>
          </span></div></th>
          <th width="334" valign="middle" scope="col">
          <?php
              
if ($_REQUEST['c'] <> 2){
        
?>             
                 <div class="mensajes">
                  <marquee scrollAmount='3' scrolldelay = 1 class="style1">
                       Realice su Reserva de Manera Responsable y con anticipación, se lo agradece su Hotel Laguna Plateada, el hotel de tus sueños.....
                </marquee>
              </div>          
         <?php
         
}else{
         
?>
         <div class="mensajes">
             <marquee scrollAmount='3' scrolldelay = 1 class="style1">
                Indicadores Economicos al 15 de junio: UF 20.964,49;  UTM (Junio) 36.792,00; Dólar observado 562,09; Euro 786,91; TCM (02/01/1998=100) 111,93 
            </marquee>
         </div>
         <?php
         
         
}
         
?>
  #2 (permalink)  
Antiguo 17/06/2009, 20:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con perfiles

El problema es que estas confiando en variables por URL, lo que tienes que hacer es guardar el tipo de usuario en la base de datos y mejor hacer la comparacion con los datos del usuario en lugar de con datos de entrada.

Saludos.
  #3 (permalink)  
Antiguo 17/06/2009, 21:47
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: problema con perfiles

Te recomiendo hagas una autentificación de usuarios. Algo que se conecte a una BD, haga la consulta si el usuario existe; trabaja con roles(admin,invitado, cliente), asignandole a cada usuario un número de rol(un idea eh). En desarrollo web hay un muy buen manual, procura descargarte el aplicativo.
htp/wwwdesarrollowebcom/manuales/37/ --> Modifique por aquello de antispam.

Éxitos.
  #4 (permalink)  
Antiguo 18/06/2009, 12:22
Avatar de death_nemesis  
Fecha de Ingreso: abril-2009
Ubicación: Santiago - Chile
Mensajes: 147
Antigüedad: 15 años
Puntos: 2
Respuesta: problema con perfiles

mm creo que no me explique bien....eso esta controlado lo de los permisos por un validador.php, y lo que sucede es que ese me retorna la variable que muestro al index para mostrar el mensaje, pero si copio el index de cliente cuando estoy logeado como administrador me muestra el mensaje correspondiente al cliente....pero aun manteniendo el perfil de administrador......y la cosa que quiero es que no suceda eso...como lo podria hacer?
  #5 (permalink)  
Antiguo 18/06/2009, 14:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con perfiles

Como ya te comente, no pases la variable por URL, mejor rescatala directo desde la bdd o guardala en la sesión ya que de la otra forma te va a pasar eso.

Saludos.
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 19:21.