Foros del Web » Programando para Internet » PHP »

Problema con session usuario

Estas en el tema de Problema con session usuario en el foro de PHP en Foros del Web. Hola amigos estoy intentando de poner parte de una web que seas solo visible para los usuarios registrados y la verdad no consigo realizar ya ...
  #1 (permalink)  
Antiguo 07/05/2012, 06:48
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Problema con session usuario

Hola amigos estoy intentando de poner parte de una web que seas solo visible para los usuarios registrados y la verdad no consigo realizar ya que no e trabajado nunca con sesiones y e montado este codigo pero siempre me dice que no estoy acto pa ver ese contenido.



Espero puedan ayudarme muchas gracias.

Donde valido el login:
Código PHP:
Ver original
  1. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  2.       mysql_select_db($dbname) or die('Cannot select database');
  3.  
  4.       $email = $_POST["email"];
  5.       $pw1 = $_POST["pw1"];
  6.      
  7.       $result = mysql_query('SELECT * FROM registros WHERE email=\''.$email.'\'');
  8.      
  9.     if($row = mysql_fetch_array($result)){
  10.          
  11.            
  12.         if($row["pw1"] == $pw1){
  13.            
  14.            
  15.           if($row["codigo"] == ""){            //comprobamos que el campo codigo este vacion
  16.            
  17.    
  18.               $id = $row["id"];
  19.              
  20.               $_SESSION["nivel_1"] = $id["id"];
  21.               echo '<script type="text/javascript">window.location="http://www.tuweb.com/perfilles/perfil.php?id='.$id.'";
  22.                    </script>';//si esta vacio que lo llebe al perfil donde estara ya la web
  23.              
  24.        
  25.             }



El perfil del usuario:
Código PHP:
Ver original
  1. <?php session_start();
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <title>Auntentificacion</title>
  8. </head>
  9.  
  10. <body>
  11. <?php
  12.  
  13. if(isset($_SESSION["nivel_1"]))
  14.  
  15. {
  16.  
  17. ?>
  18.  
  19.  
  20. <?php
  21.  
  22. }
  23.  
  24. else
  25.  
  26. {
  27.  
  28. echo "Usted no esta autorizado" ?> <a href="pagina-de-formulario.html"><?php echo "registrar"?></a>.
  29.  
  30. <?php
  31. }
  32.  
  33. ?>
  34. </body>
  35. </html>
  #2 (permalink)  
Antiguo 07/05/2012, 09:10
Avatar de webseficientes  
Fecha de Ingreso: enero-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 320
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: Problema con session usuario

En el archivo de Login no estas haciendo session_start, por ahi sea eso.
__________________
Gerardo Benitez
Programador Web Freelance, SEO, Diseño web
  #3 (permalink)  
Antiguo 07/05/2012, 11:29
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Bueno realmente si lo estoy hacien solo q no lo e puesto aquí

Muchas gracias
  #4 (permalink)  
Antiguo 07/05/2012, 11:54
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: Problema con session usuario

Para ver si estas o no autorizado por esto al comienzo de las paginas protegidas...
Código PHP:
Ver original
  1.  
  2. if( !isset( $_SESSION['nivel_1'] ) && $_SESSION['nivel_1'] != true ) {
  3.       echo "no estas autorizado :( ";
  4. }
  5. else
  6. {
  7. echo "mu bien xabal toma piruleta ;)";M
  8. }
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #5 (permalink)  
Antiguo 07/05/2012, 11:54
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: Problema con session usuario

se me colo una M


Código PHP:
Ver original
  1.  
  2. if( !isset( $_SESSION['nivel_1'] ) && $_SESSION['nivel_1'] != true ) {
  3.       echo "no estas autorizado :( ";
  4. }
  5. else
  6. {
  7. echo "mu bien xabal toma piruleta ;)";
  8. }
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #6 (permalink)  
Antiguo 07/05/2012, 12:16
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: Problema con session usuario

creo que falta session start
Código PHP:
mysql_connect ($dbhost$dbusername$dbuserpass);
      
mysql_select_db($dbname) or die('Cannot select database');
 
      
$email $_POST["email"];
      
$pw1 $_POST["pw1"];
     
      
$result mysql_query('SELECT * FROM registros WHERE email=\''.$email.'\'');
     
    if(
$row mysql_fetch_array($result)){
         
           
        if(
$row["pw1"] == $pw1){
           
           
          if(
$row["codigo"] == ""){            //comprobamos que el campo codigo este vacion
           
   
              
$id $row["id"];
             
session_start(); # <<<---------------- creo que tu problema está aquí
              
$_SESSION["nivel_1"] = $id["id"];
              echo 
'<script type="text/javascript">window.location="http://www.tuweb.com/perfilles/perfil.php?id='.$id.'";
                   </script>'
;//si esta vacio que lo llebe al perfil donde estara ya la web 
Recuerda que para salir puedes ejecutar
Código PHP:
session_destroy(); 
espero haber colaborado, saludos.
  #7 (permalink)  
Antiguo 07/05/2012, 16:35
Avatar de fermin3d  
Fecha de Ingreso: octubre-2010
Ubicación: sevilla
Mensajes: 141
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problema con session usuario

Bueno e probado con los dos y siempre me da que no soy un usuario logeado los cambios son:


Código PHP:
Ver original
  1. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  2.       mysql_select_db($dbname) or die('Cannot select database');
  3.  
  4.       $email = $_POST["email"];
  5.       $pw1 = $_POST["pw1"];
  6.      
  7.       $result = mysql_query('SELECT * FROM registros WHERE email=\''.$email.'\'');
  8.      
  9.     if($row = mysql_fetch_array($result)){
  10.          
  11.            
  12.         if($row["pw1"] == $pw1){
  13.            
  14.            
  15.           if($row["codigo"] == ""){            //comprobamos que el campo codigo este vacion
  16.            
  17.    
  18.               $id = $row["id"];
  19.              session_start(); # <<<---------------- creo que tu problema está aquí
  20.              $_SESSION["nivel_1"] = $id["id"];
  21.               echo '<script type="text/javascript">window.location="http://www.tuweb.com/perfilles/perfil.php?id='.$id.'";
  22.                   </script>';//si esta vacio que lo llebe al perfil donde estara ya la web



del perfil :

Código PHP:
Ver original
  1. <?php session_start();
  2. ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <title>Auntentificacion</title>
  8. </head>
  9.  
  10. <body>
  11. <?php    
  12.     if( !isset( $_SESSION['nivel_1'] ) && $_SESSION['nivel_1'] != true ) {
  13.           echo "no estas autorizado :( ";
  14.     }
  15.     else
  16.     {
  17.     echo "mu bien xabal toma piruleta ;)";
  18.     }
  19. ?>
  20. </body>
  21. </html>
pero aun sigui igual no se si estara bien.


Muchas gracias compañeros por responder.
  #8 (permalink)  
Antiguo 08/05/2012, 06:24
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: Problema con session usuario

Mira para comprobar si has iniciado sesion es como ya te he puesto arriba y para iniciarla correctamente...

haces una query manejando los datos que quieras...y que coincidan con lo que has mandado del formulario para logearte...

Código PHP:
Ver original
  1. $query = mysql_query("SELECT email, password, username FROM $table WHERE email = '$email'") or die(mysql_error());
  2.         $row = mysql_fetch_array($query);
  3.        
  4.         session_start();                                   
  5.         $_SESSION[''.$session.''] = $row['username'];
  6.         echo "
  7.         <script language=\"javascript\">
  8.         window.location.href=\"$location\";
  9.         </script>
  10.         ";
  11.         }

Esto es un ejemplo ... adaptalo, te recomiendo que si lo tienes liado , hagas un borrador simple para probarlo, :)
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #9 (permalink)  
Antiguo 08/05/2012, 06:44
Avatar de xArchangellx  
Fecha de Ingreso: octubre-2008
Ubicación: Peru
Mensajes: 208
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Problema con session usuario

Tengo un problema parecido
  #10 (permalink)  
Antiguo 09/05/2012, 05:07
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: Problema con session usuario

Te paso como tengo armado en un sitio, funciona, prueba si te funciona a ti debería ser así:

desde un formulario como este
Código HTML:
Ver original
  1. <form method="post">
  2.     <input type="hidden" name="ingresar" value="ok" />
  3.     <p></p><p></p>
  4.     <p>Usuario: <input type="text" name="usuario" size="25" maxlength="25" /></p>
  5.     <p>Contrase&ntilde;a: <input type="password" name="password" size="25" /></p>
  6.     <input type="submit" name="Ingresar" />
  7.     </form>

y aqui logueas
Código PHP:
switch("$_POST[ingresar]") {
case 
"ok"
    
$user=$_POST[usuario]; 
        
$pass=$_POST[password];
    
$result=mysql_query("SELECT * FROM usuarios WHERE usuario='$user'"$conexion);
    
$lg=mysql_fetch_array($result);
    
    switch(
true) {
    case (
$user!=""): 
                                        switch(
"$lg[usuario]$lg[pass]") {
                                        case 
"$user$pass":
                                        
session_start();
                                        
$_SESSION[ok]='ok';
                                        echo
"<script type=\"text/javascript\"> window.location=\"/\"; </script>";
                                                
#si registra ok te manda a la raiz del sitio
                                        
break;
                                        default:
                                                
#sino te manda al formulario de ingreso nuevamente
                                        
echo"<script type=\"text/javascript\"> window.location=\"/admin/\"; </script>";
                                        break;}
    break;
    default: echo
"<script type=\"text/javascript\"> window.location=\"/\"; </script>"; break; } 
Y en tu index puedes colocar algo como:
Código PHP:
session_start();
$ok=$_SESSION[ok];
switch(
$ok) {
            case
'ok': echo'estas registrado'; break;
            default: echo
'no estas registrado'; break; } 

Espero te sirva, saludos.

Etiquetas: formulario, html, mysql, registro, session, usuarios
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 08:11.