Foros del Web » Programando para Internet » PHP »

ayuda con sesiones please.....!!!!!!

Estas en el tema de ayuda con sesiones please.....!!!!!! en el foro de PHP en Foros del Web. hola a todos espero puedan ayudarle con el siguiente problemita que tengo, estoy haciendo una aplicación web y tengo diferentes perfiles de usuario, uno es ...
  #1 (permalink)  
Antiguo 11/07/2006, 09:12
Avatar de ing_aprendiz  
Fecha de Ingreso: septiembre-2005
Mensajes: 136
Antigüedad: 18 años, 7 meses
Puntos: 0
ayuda con sesiones please.....!!!!!!

hola a todos espero puedan ayudarle con el siguiente problemita que tengo, estoy haciendo una aplicación web y tengo diferentes perfiles de usuario, uno es el administrador general y el otro es un usuario autorizado, pero cada uno tiene una interfaz web diferente es decir cada uno luego de dar su nombre de usuario y contraseña se direcciona a diferente página, estoy controlando esto por medio de sesiones tengo una pagina valida.php:

Código PHP:
<?php require_once('conexion.php'); ?>
<?php
session_register
('l');
session_register('p');
if(
$usuario!="" && $clave!=""){
$l=$usuario;
$p=$clave;
}
$link=conectarse();
$p md5($p);
    
$sql mysql_query("SELECT * FROM usuario where usuario='$l' and password='$p' and id_perfil=1",$link);
    
$fil mysql_num_rows($sql);
        if(
$fil!=0){
          echo
"Datos Correctos";
          
          echo
"<SCRIPT LANGUAGE='javascript'>";
          echo
"location.href = 'bienvenida_admin.php'";
          echo
"</SCRIPT>";

                    }

    
$p md5($p);
    
$administrador mysql_query("SELECT * FROM usuario where usuario='$l' and password='$p' and id_perfil=2",$link);
    
$fila mysql_num_rows($administrador);
        if(
$fila!=0){
          echo
"Datos Correctos";
          
          echo
"<SCRIPT LANGUAGE='javascript'>";
          echo
"location.href = 'index.php'";
          echo
"</SCRIPT>";

                    }
        else{
        
        echo
"<SCRIPT LANGUAGE='javascript'>";
          echo
"alert ('Nombre De Usuario O Contraseña Invalido')";
          echo
"</SCRIPT>";
            echo 
'<html><head><title>SuperSlot</title>
                    <style type="text/css">
                    A:link {color:#008000 ; text-decoration:none}
                    A:visited {color:#c7caed ; text-decoration:none}
                    A:active {color:#000080 ; text-decoration:none}
                    A:hover {color:#000000 ; text-decoration:underline}
                    </style>
                    <meta http-equiv="refresh" content="1; url=principal_admin.php"></head>
                    <body bgcolor=#f6f6f6 style="border:29 solid #dddddd" scroll=no>
                    <br>
                    <br><br><center>
                    <font style="font-size:25" color=#000033><b><code>Cargando Administración...<br>
                    </code></b><code><br>
                       <br>
                      <font style="font-size:17"><br>
                      Ingreso al Panel de Administración</font></code><b><code><br>
                      <font color="#000000">Proyecto Ingenieria Kansei</font><br>
                      <br>
                    </code>SESIÓN INACTIVA</font> 
                    </center></body></html>'
;
                exit();
             }
?>
donde valida el nombre de usuario y contraseña luego de que el usuario digite su nombre de usuario y contraseña en la pagina bienvenida_admin.php:

Código PHP:
<html>
<head>
<title>Entrada al Sistema</title>
<style type="text/css">
<!--
.Estilo1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
.Estilo2 {font-size: 18px}
.Estilo4 {font-size: 18px; font-family: Arial, Helvetica, sans-serif; }
.Estilo5 {
    font-size: 16px;
    font-family: Arial, Helvetica, sans-serif;
    font-weight: bold;
}
.Estilo6 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; }
.Estilo8 {font-size: 12px}
-->
</style>

<style type="text/css">
<!--
body {scrollbar-face-color:#336699;
scrollbar-highlight-color:#8FB7CF;
scrollbar-3dlight-color:#336699;
scrollbar-darkshadow-color:#5D859D;
scrollbar-shadow-color:#8FB7CF;
scrollbar-arrow-color:#EFE9E0;
scrollbar-track-color:#FFFFFF;
color:#000000;
background-color:#FFFFFF;
font-family:verdana,arial;
font-size:12px}
/* End of style section. */
-->
</style>


<script language="javascript" type="text/javascript">
//MAXIMIZACIÓN DE LA VENTANA EN QUE SE CARGA LA PÁGINA

//posiciona en la esquina superior izquierda
top.window.moveTo(0,0)

if (document.all) {
    //si es el IE, usamos resizeTo para redimensionar
    top.window.resizeTo(screen.availWidth,screen.availHeight)

} else if ( document.layers || document.getElementById ) {
    //si Navigator, modificamos los valores de outerHeight y outerWidth    
    if ( top.window.outerHeight < screen.availHeight || top.window.outerWidth < screen.availWidth ) {
        top.window.outerWidth = screen.availWidth
        top.window.outerHeight = screen.availHeight
    }
}

</script>

</head>

<body>
<table width="1024" border="0" cellpadding="0" cellspacing="0">
  <!--DWLayoutTable-->
  <tr>
    <td height="79" colspan="3" valign="baseline"><img src="images/img_r1_c1.gif" width="1024" height="80"></td>
  </tr>
  <tr>
    <td width="232" height="102">&nbsp;</td>
    <td width="577">&nbsp;</td>
    <td width="215">&nbsp;</td>
  </tr>
  
  <tr>
    <td height="222">&nbsp;</td>
    <td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#F8F8F8">
      <!--DWLayoutTable-->
      <tr>
        <td width="13" height="40">&nbsp;</td>
          <td width="142">&nbsp;</td>
          <td width="24">&nbsp;</td>
          <td width="379">&nbsp;</td>
          <td width="19">&nbsp;</td>
        </tr>
      <tr>
        <td height="6"></td>
          <td></td>
          <td></td>
          <td rowspan="4" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#EEEEEE">
              <!--DWLayoutTable-->
              <tr>
                <td width="13" height="48"></td>
                <td width="345" valign="top"><div align="center" class="Estilo5">
                  <p>&nbsp;</p>
                  <p>ACCEDER AL SISTEMA</p>
                  <p>&nbsp; </p>
                </div></td>
                <td width="21">&nbsp;</td>
              </tr>
              <tr>
                <td></td>
                <td height="90" valign="top">
                  <form method="post" name="form1" action="valida.php">
                    <table width="100%" border="0" cellpadding="0" cellspacing="0">
                      <!--DWLayoutTable-->
                      <tr valign="baseline">
                        <td nowrap align="right" class="Estilo2"><div align="left" class="Estilo1"><strong>Usuario:</strong></div>                                    </td>
                        <td><input type="text" name="usuario" value="" size="10" /></td>
                      </tr>
                      <tr valign="baseline">
                        <td nowrap align="right" class="Estilo2"><div align="left" class="Estilo6">Contrase&ntilde;a:</div></td>
                        <td><input type="password" name="clave" value="" size="10"></td>
                      </tr>
                      <tr valign="baseline">
                        <td nowrap align="right" class="Estilo2">&nbsp;</td>
                        <td>&nbsp;</td>
                      </tr>
                        
                      <tr valign="middle">
                          
                        <td height="26" colspan="2" align="right" valign="top"  class="Estilo4"> <div align="center">
                        <? echo'<input name="submit" type="submit" '.
                           
$fil[6];    
                           echo 
'; border:1 groove white" onClick="willSubmit=confirm('."'Ahora ingresará al área de                                         Administración');return willSubmit;".'" value="Entrar" size=10> ';          
                        
?></td>
                        </tr>            </table>
                  </form>
                <td></td>
              </tr>
              <tr>
                <td></td>
                <td height="15"></td>
                <td></td>
              </tr>
              
          </table></td>
            <td></td>
        </tr>
      <tr>
        <td height="53"></td>
        <td valign="top"><div align="center"><img src="images/password.png" width="72" height="67"></div></td>
        <td></td>
        <td></td>
      </tr>
      
      
      
      <tr>
        <td height="94">&nbsp;</td>
          <td valign="top" bgcolor="#F8F8F8" class="Estilo1"><div align="justify">
              <p class="Estilo8">Bienvenido</p>
              <p class="Estilo8">Para ingresar al sistema debe ingresar el nombre de usuario y contrase&ntilde;a </p>
          </div></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      <tr>
        <td height="23">&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      <tr>
        <td height="29"></td>
          <td></td>
          <td></td>
          <td></td>
          <td></td>
        </tr>
      
      
      
      
      
      

    </table></td>
        <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="327">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
    </table>
</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="192">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
vale la pena mencionar que las contraseñas fueron encriptadas con md5. lo que pasa es que solo me valida el usuario id_perfil=1 y no valida el id_perfil=2, lo que ocasiona que siempre que entre el usuario autorizado el sistema dice nombre de usuario o contraseña invalida. si alguien puede ayudarme con este caso le agradecería infinitamente

chao

Última edición por Cluster; 11/07/2006 a las 09:26
  #2 (permalink)  
Antiguo 11/07/2006, 09:32
 
Fecha de Ingreso: junio-2006
Mensajes: 87
Antigüedad: 17 años, 9 meses
Puntos: 0
Estas encriptando dos veces el passwordo para el admisnistrador, haces md5($p) para el primer caso, si no se cumple vuelves a hacer el md5($p) con lo que lo estas encriptando dos veces y nunca acertaras el password.
  #3 (permalink)  
Antiguo 11/07/2006, 09:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No debes usar session_register() es una función insegura y obsoleta con el trabajo de sesiones que actualmetne (bueno .. ya hace unos años) usa PHP.

Te recomiendo usar los arrays superglobales:
$_SESSION

Lee la documentación oficial al respecto:
www.php.net/session

También redireccoinas con javascript .. Tampoco es seguro. Debes usar:

Código PHP:
header ("Location: pagina.tal");
exit; 
En ese caso .. el mensaje de error/exito no se presenta en el mismo flujo del scritp que valida sino en el script donde llegas tras redireccionar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 11/07/2006, 09:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por seanchan
Estas encriptando dos veces el passwordo para el admisnistrador, haces md5($p) para el primer caso, si no se cumple vuelves a hacer el md5($p) con lo que lo estas encriptando dos veces y nunca acertaras el password.
Tampoco queda claro por qué haces dos consultas SQL preguntando por el tipo del usuario ...

Deberías hacer una -sóla- consulta SQL y obtener el "id_perfil" .. con ese dato usas un pequeño switch() y redireccionas según sea el caso (pero no con javascript!!!!!).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 03:45.