Foros del Web » Programando para Internet » PHP »

Problema con variables de sesion

Estas en el tema de Problema con variables de sesion en el foro de PHP en Foros del Web. Veréis. Esta pagina comprueba el usuario con el select. Si el usuario existe, combprueba tambien la clave del idioma, la sam (una especie de permisos ...
  #1 (permalink)  
Antiguo 20/09/2010, 05:01
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Problema con variables de sesion

Veréis. Esta pagina comprueba el usuario con el select. Si el usuario existe, combprueba tambien la clave del idioma, la sam (una especie de permisos de usuario), y la clave de permiso.

El caso es que si todo esto se cumple, hay un redirect hacia una web. Sino, vuelve a cargarse el index.php.

Nunca me llega a cargar el redirect main.php. Siempre se va al ultimo redirect. Que estoy haciendo mal?

Código PHP:
Ver original
  1. <?php
  2. include("include/cons.php");
  3. include("include/inctexteadmin.php");
  4. include("index.php");
  5. ?>
  6.  
  7. <?php
  8.    
  9. if (!isset($_SESSION['user'])){//si no hi ha cap sessió iniciada
  10.  
  11.    
  12.     //if ($_POST['login']){
  13.        
  14.     $user = htmlspecialchars(trim($_POST['login']));
  15.     $passwd = trim($_POST['pass']);
  16.     $link=mysql_connect($server,$dbuser,$dbpass);
  17.  
  18.    
  19.     $sql = sprintf("SELECT * FROM usuaris WHERE codi ='".$user."' and password='".$passwd."'");
  20.     //echo "$sql <br>";
  21.     mysql_real_escape_string($passwd);      
  22.    
  23.     $result=mysql_db_query($database,$sql,$link);
  24.     $n = mysql_num_rows($result);
  25.     echo "$n<br>";    
  26.     if ($n!=0){
  27.  
  28.         $array=mysql_fetch_array($result);
  29.         $_SESSION["codi"]=$array["codi"];
  30.                
  31.         $sql2 = sprintf("SELECT clau_idioma FROM usuaris");
  32.         $result2 = mysql_db_query($database,$sql2,$link);
  33.         $n2 = mysql_num_rows($result2);
  34.        
  35.         if ($n2 = 1){
  36.             echo "$n2<br>";
  37.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  38.         }else{
  39.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  40.         }
  41.    
  42.        
  43.          $sql3 = sprintf("SELECT id_usuari FROM usuaris");
  44.          $result3 = mysql_db_query($database,$sql3,$link);
  45.          $n3 = mysql_num_rows($result3);
  46.          echo "$n3<br>";
  47.          if ($n3!=0){
  48.              
  49.              $array3=mysql_fetch_array($result3);
  50.              $_SESSION["id_usuari"] = $array3["id_usuari"];
  51.    
  52.          }
  53.          
  54.          $sql4 = sprintf("SELECT sam FROM usuaris");
  55.          $result4 = mysql_db_query($database,$sql4,$link);
  56.          $n4 = mysql_num_rows($result3);
  57.          echo "$n4<br>";
  58.          if ($n4!=0){
  59.              $array4=mysql_fetch_array($result4);
  60.              $_SESSION["sam"] = $array4["sam"];    
  61.          
  62.          }
  63.          $sql5 = sprintf("SELECT clau_permis FROM usuaris");
  64.          $result5 = mysql_db_query($database,$sql5,$link);
  65.          $n5 = mysql_num_rows($result3);
  66.          echo "$n5<br>";
  67.          if ($n5!=0){
  68.              $array5=mysql_fetch_array($result5);
  69.              $_SESSION["clau_permis"] = $array5["clau_permis"];    
  70.  
  71.          }    
  72.         header("Location: main.php");    
  73.        
  74.     }
  75.     header("Location: index.php");
  76.        
  77. }    
  78.    
  79. ?>
  #2 (permalink)  
Antiguo 20/09/2010, 05:12
Avatar de AdrianSeg  
Fecha de Ingreso: enero-2010
Mensajes: 595
Antigüedad: 14 años, 3 meses
Puntos: 14
Respuesta: Problema con variables de sesion

Cuando haces if dentro de if usar mejor elseif asi evitarás errores. Tu problema sino me equivoco es que cierras los ifs antes de tiempo por ejemplo.

if ($n3!=0){

$array3=mysql_fetch_array($result3);
$_SESSION["id_usuari"] = $array3["id_usuari"];

}

tiene otra condicion en su interior por tanto esa llave de cerrar sobra...prueba con elseif a ver si te aclaras mejor.
  #3 (permalink)  
Antiguo 20/09/2010, 07:02
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

Yo no veo la condición esa que dices. Lo que viene después de la lalve en ese ejemplo, está fuera del if!
  #4 (permalink)  
Antiguo 20/09/2010, 07:18
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

Hola, en los if no estas validando para validar usa == asi:

Código PHP:
Ver original
  1. if ($n4!==0){
  2.    $array4=mysql_fetch_array($result4);
  3.    $_SESSION["sam"] = $array4["sam"];    
  4.  
  5.                   }
  #5 (permalink)  
Antiguo 20/09/2010, 07:23
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

Bueno, he usado los elseif y validado con ==, pero me sigue pasando lo mismo:


Código PHP:
Ver original
  1. <?php
  2. include("include/cons.php");
  3. include("include/inctexteadmin.php");
  4. include("index.php");
  5. ?>
  6.  
  7. <?php
  8.        
  9. if (!isset($_SESSION['user'])){//si no hi ha cap sessió iniciada
  10.  
  11.    
  12.     //if ($_POST['login']){
  13.        
  14.     $user = htmlspecialchars(trim($_POST['login']));
  15.     $passwd = trim($_POST['pass']);
  16.     $link=mysql_connect($server,$dbuser,$dbpass);
  17.  
  18.    
  19.     $sql = sprintf("SELECT * FROM usuaris WHERE codi ='".$user."' and password='".$passwd."'");
  20.     //echo "$sql <br>";
  21.     mysql_real_escape_string($passwd);    
  22.    
  23.     $result=mysql_db_query($database,$sql,$link);
  24.     $n = mysql_num_rows($result);
  25.     echo "$n<br>"; 
  26.     if ($n!==0){
  27.  
  28.         $array=mysql_fetch_array($result);
  29.         $_SESSION["codi"]=$array["codi"];
  30.                
  31.         $sql2 = sprintf("SELECT clau_idioma FROM usuaris");
  32.         $result2 = mysql_db_query($database,$sql2,$link);
  33.         $n2 = mysql_num_rows($result2);
  34.        
  35.         if ($n2 == 1){
  36.             echo "$n2<br>";
  37.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  38.         }else{
  39.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  40.         }
  41.        
  42.             $sql3 = sprintf("SELECT id_usuari FROM usuaris");
  43.             $result3 = mysql_db_query($database,$sql3,$link);
  44.             $n3 = mysql_num_rows($result3);
  45.             echo "$n3<br>";
  46.         if ($n3!==0){
  47.            
  48.             $array3=mysql_fetch_array($result3);
  49.             $_SESSION["id_usuari"] = $array3["id_usuari"];
  50.            
  51.             $sql4 = sprintf("SELECT sam FROM usuaris");
  52.             $result4 = mysql_db_query($database,$sql4,$link);
  53.             $n4 = mysql_num_rows($result3);
  54.             echo "$n4<br>";
  55.        
  56.         }elseif ($n4!==0){
  57.             $array4=mysql_fetch_array($result4);
  58.             $_SESSION["sam"] = $array4["sam"]; 
  59.        
  60.             $sql5 = sprintf("SELECT clau_permis FROM usuaris");
  61.             $result5 = mysql_db_query($database,$sql5,$link);
  62.             $n5 = mysql_num_rows($result3);
  63.             echo "$n5<br>";
  64.         }elseif ($n5!==0){
  65.             $array5=mysql_fetch_array($result5);
  66.             $_SESSION["clau_permis"] = $array5["clau_permis"]; 
  67.  
  68.         }  
  69.         header("Location: main.php");  
  70.        
  71.     }
  72.     header("Location: index.php");
  73.        
  74. }  
  75.    
  76. ?>
  #6 (permalink)  
Antiguo 20/09/2010, 07:32
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

Mira coloca la validacion directa algo asi:
Código PHP:
Ver original
  1. if( mysql_num_rows($result3) >0){
Tambien chequea los posibles errores agregando or die (mysql_error()) a tus consultas:
Código PHP:
Ver original
  1. $result4 = mysql_db_query($database,$sql4,$link) or die (mysql_error());
  #7 (permalink)  
Antiguo 20/09/2010, 07:42
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

nada tio, no hay manera :(

Código PHP:
Ver original
  1. <?php
  2. include("include/cons.php");
  3. include("include/inctexteadmin.php");
  4. include("index.php");
  5. ?>
  6.  
  7. <?php
  8.        
  9. if (!isset($_SESSION['user'])){//si no hi ha cap sessió iniciada
  10.  
  11.    
  12.     //if ($_POST['login']){
  13.        
  14.     $user = htmlspecialchars(trim($_POST['login']));
  15.     $passwd = trim($_POST['pass']);
  16.     $link=mysql_connect($server,$dbuser,$dbpass);
  17.  
  18.    
  19.     $sql = sprintf("SELECT * FROM usuaris WHERE codi ='".$user."' and password='".$passwd."'");
  20.     //echo "$sql <br>";
  21.     mysql_real_escape_string($passwd);    
  22.    
  23.     $result=mysql_db_query($database,$sql,$link) or die (mysql_error());
  24.     //$n = mysql_num_rows($result);
  25.     //echo "$n<br>";   
  26.     if (mysql_num_rows($result)!==0){
  27.  
  28.         $array=mysql_fetch_array($result);
  29.         $_SESSION["codi"]=$array["codi"];
  30.                
  31.         $sql2 = sprintf("SELECT clau_idioma FROM usuaris");
  32.         $result2 = mysql_db_query($database,$sql2,$link) or die (mysql_error());
  33.        // $n2 = mysql_num_rows($result2);
  34.        
  35.         if (mysql_num_rows($result2) == 1){
  36.             //echo "$n2<br>";
  37.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  38.         }else{
  39.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  40.         }
  41.    
  42.             $sql3 = sprintf("SELECT id_usuari FROM usuaris");
  43.             $result3 = mysql_db_query($database,$sql3,$link) or die (mysql_error());
  44.             //$n3 = mysql_num_rows($result3);
  45.             //echo "$n3<br>";
  46.         if (mysql_num_rows($result3)!==0){
  47.            
  48.             $array3=mysql_fetch_array($result3);
  49.             $_SESSION["id_usuari"] = $array3["id_usuari"];
  50.            
  51.             $sql4 = sprintf("SELECT sam FROM usuaris");
  52.             $result4 = mysql_db_query($database,$sql4,$link) or die (mysql_error());
  53.             //$n4 = mysql_num_rows($result3);
  54.             //echo "$n4<br>";
  55.        
  56.         }elseif (mysql_num_rows($result3)!==0){
  57.             $array4=mysql_fetch_array($result4);
  58.             $_SESSION["sam"] = $array4["sam"]; 
  59.        
  60.             $sql5 = sprintf("SELECT clau_permis FROM usuaris");
  61.             $result5 = mysql_db_query($database,$sql5,$link) or die (mysql_error());
  62.             //$n5 = mysql_num_rows($result3);
  63.             //echo "$n5<br>";
  64.         }elseif (mysql_num_rows($result3)!==0){
  65.             $array5=mysql_fetch_array($result5);
  66.             $_SESSION["clau_permis"] = $array5["clau_permis"]; 
  67.  
  68.         }  
  69.         header("Location: main.php");  
  70.        
  71.     }
  72.     header("Location: index.php");
  73.        
  74. }  
  75.    
  76. ?>
  #8 (permalink)  
Antiguo 20/09/2010, 07:45
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

No ya no lo hagas asi !== sino como te lo pongo yo:

Código PHP:
Ver original
  1. if( mysql_num_rows($result3) >0){
  #9 (permalink)  
Antiguo 20/09/2010, 07:48
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

Y cambia result3 por las demas variables $result4,$result5, segun.
  #10 (permalink)  
Antiguo 20/09/2010, 07:52
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

Si, perdón fallo mio lo de !==0

He reestructurado los if. No tiene que haber nigún else, ya que si el primer

Código PHP:
Ver original
  1. if (mysql_num_rows($result)>0){

no se cumple, no tiene sentido hacer los otros casos.


Código PHP:
Ver original
  1. <?php
  2. include("include/cons.php");
  3. include("include/inctexteadmin.php");
  4. include("index.php");
  5. ?>
  6.  
  7. <?php
  8.    
  9. if (!isset($_SESSION['user'])){//si no hi ha cap sessió iniciada
  10.  
  11.    
  12.     //if ($_POST['login']){
  13.        
  14.     $user = htmlspecialchars(trim($_POST['login']));
  15.     $passwd = trim($_POST['pass']);
  16.     $link=mysql_connect($server,$dbuser,$dbpass);
  17.  
  18.    
  19.     $sql = sprintf("SELECT * FROM usuaris WHERE codi ='".$user."' and password='".$passwd."'");
  20.     //echo "$sql <br>";
  21.     mysql_real_escape_string($passwd);    
  22.    
  23.     $result=mysql_db_query($database,$sql,$link) or die (mysql_error());
  24.     //$n = mysql_num_rows($result);
  25.     //echo "$n<br>";   
  26.     if (mysql_num_rows($result)>0){
  27.  
  28.         $array=mysql_fetch_array($result);
  29.         $_SESSION["codi"]=$array["codi"];
  30.                
  31.         $sql2 = sprintf("SELECT clau_idioma FROM usuaris");
  32.         $result2 = mysql_db_query($database,$sql2,$link) or die (mysql_error());
  33.        // $n2 = mysql_num_rows($result2);
  34.        
  35.         if (mysql_num_rows($result2) == 1){
  36.             //echo "$n2<br>";
  37.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  38.         }else{
  39.             $_SESSION["clau_idioma"] = $array["clau_idioma"];
  40.         }
  41.    
  42.             $sql3 = sprintf("SELECT id_usuari FROM usuaris");
  43.             $result3 = mysql_db_query($database,$sql3,$link) or die (mysql_error());
  44.             //$n3 = mysql_num_rows($result3);
  45.             //echo "$n3<br>";
  46.             if (mysql_num_rows($result3)>0){
  47.                
  48.                 $array3=mysql_fetch_array($result3);
  49.                 $_SESSION["id_usuari"] = $array3["id_usuari"];
  50.                
  51.                 $sql4 = sprintf("SELECT sam FROM usuaris");
  52.                 $result4 = mysql_db_query($database,$sql4,$link) or die (mysql_error());
  53.                 //$n4 = mysql_num_rows($result3);
  54.                 //echo "$n4<br>";
  55.            
  56.            
  57.                 if (mysql_num_rows($result3)>0){
  58.                 $array4=mysql_fetch_array($result4);
  59.                 $_SESSION["sam"] = $array4["sam"]; 
  60.            
  61.                 $sql5 = sprintf("SELECT clau_permis FROM usuaris");
  62.                 $result5 = mysql_db_query($database,$sql5,$link) or die (mysql_error());
  63.                 //$n5 = mysql_num_rows($result3);
  64.                 //echo "$n5<br>";
  65.                
  66.                 if (mysql_num_rows($result3)>0){
  67.                 $array5=mysql_fetch_array($result5);
  68.                 $_SESSION["clau_permis"] = $array5["clau_permis"]; 
  69.                 }
  70.                 }
  71.                
  72.             }  
  73.             header("Location: main.php");  
  74.            
  75.     }
  76.     header("Location: index.php");
  77.        
  78. }  
  79.    
  80. ?>
  #11 (permalink)  
Antiguo 20/09/2010, 08:03
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

Que tal te fue?
  #12 (permalink)  
Antiguo 20/09/2010, 08:04
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

ya he contestado, mira el anterior post. No hay manera!
  #13 (permalink)  
Antiguo 20/09/2010, 08:25
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

Tu problema no es con los if es con las sessiones:
Primero compruebas que no hay una session iniciada con if (!isset($_SESSION['user']))
Pero luego no le dices que si ah pasado todas las pruebas de validacion, registre una session, entonces nuevamente te vuelve a validar if (!isset($_SESSION['user'])), y con esto nunca te va a mandar a tu pagina main.php
  #14 (permalink)  
Antiguo 20/09/2010, 08:30
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

Ostia, ahora si q me has liado..

Entonces que tengo que añadir? Yo creía que con cada $_SESSION que hago despues de cada if, estaba validando la sesión con cada uno de los datos que necesito!
  #15 (permalink)  
Antiguo 20/09/2010, 09:00
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

te pongo un ejemplo de uso esta bien claro:
Código PHP:
Ver original
  1. <?PHP
  2.  
  3. // Iniciar sesión
  4.  
  5. // Si se ha enviado el formulario
  6.    $usuario = $_REQUEST['usuario'];
  7.    $clave = $_REQUEST['clave'];
  8.    if (isset($usuario) && isset($clave))
  9.    {
  10.  
  11.    // Comprobar que el usuario está autorizado a entrar
  12.       $conexion = mysql_connect ("localhost", "cursophp", "")
  13.          or die ("No se puede conectar con el servidor");
  14.       mysql_select_db ("lindavista")
  15.          or die ("No se puede seleccionar la base de datos");
  16.       $salt = substr ($usuario, 0, 2);
  17.       $clave_crypt = crypt ($clave, $salt);
  18.       $instruccion = "select usuario, clave from usuarios where usuario = '$usuario'" .
  19.          " and clave = '$clave_crypt'";
  20.       $consulta = mysql_query ($instruccion, $conexion)
  21.          or die ("Fallo en la consulta");
  22.       $nfilas = mysql_num_rows ($consulta);
  23.       mysql_close ($conexion);
  24.  
  25.    // Los datos introducidos son correctos
  26.       if ($nfilas > 0)
  27.       {
  28.          $usuario_valido = $usuario;
  29.          // Con register_globals On
  30.          // session_register ("usuario_valido");
  31.          // Con register_globals Off
  32.          $_SESSION["usuario_valido"] = $usuario_valido;
  33.       }
  34.    }
  35. ?>
  36.  
  37. <!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 4.0//EN"
  38.    "http://www.w3.org/TR/html4/strict.dtd">
  39. <HTML LANG="es">
  40. <HEAD>
  41. <TITLE>Gestión de noticias. Página de entrada</TITLE>
  42. <LINK REL="stylesheet" TYPE="text/css" HREF="estilo.css">
  43. </HEAD>
  44.  
  45. <BODY>
  46.  
  47. <?PHP
  48. // Sesión iniciada
  49.    if (isset($_SESSION["usuario_valido"]))
  50.    {
  51. ?>
  52.  
  53. <H1>Gestión de noticias</H1>
  54. <HR>
  55.  
  56. <UL>
  57.    <LI><A HREF="consulta_noticias.php">Consultar noticias</A>
  58.    <LI><A HREF="inserta_noticia.php">Insertar nueva noticia</A>
  59.    <LI><A HREF="elimina_noticia.php">Eliminar noticias</A>
  60. </UL>
  61.  
  62. <HR>
  63.  
  64. <P>[ <A HREF='logout.php'>Desconectar</A> ]</P>
  65.  
  66. <?PHP
  67.    }
  68.  
  69. // Intento de entrada fallido
  70.    else if (isset ($usuario))
  71.    {
  72.       print ("<BR><BR>\n");
  73.       print ("<P ALIGN='CENTER'>Acceso no autorizado</P>\n");
  74.       print ("<P ALIGN='CENTER'>[ <A HREF='login.php'>Conectar</A> ]</P>\n");
  75.    }
  76.  
  77. // Sesión no iniciada
  78.    else
  79.    {
  80.       print("<BR><BR>\n");
  81.       print("<P CLASS='parrafocentrado'>Esta zona tiene el acceso restringido.<BR> " .
  82.          " Para entrar debe identificarse</P>\n");
  83.  
  84.       print("<FORM CLASS='entrada' NAME='login' ACTION='login.php' METHOD='POST'>\n");
  85.  
  86.       print("<P><LABEL CLASS='etiqueta-entrada'>Usuario:</LABEL>\n");
  87.       print("   <INPUT TYPE='TEXT' NAME='usuario' SIZE='15'></P>\n");
  88.       print("<P><LABEL CLASS='etiqueta-entrada'>Clave:</LABEL>\n");
  89.       print("   <INPUT TYPE='PASSWORD' NAME='clave' SIZE='15'></P>\n");
  90.       print("<P><INPUT TYPE='SUBMIT' VALUE='entrar'></P>\n");
  91.  
  92.       print("</FORM>\n");
  93.  
  94.       print("<P CLASS='parrafocentrado'>NOTA: si no dispone de identificación o tiene problemas " .
  95.          "para entrar<BR>póngase en contacto con el " .
  96.          "<A HREF='MAILTO:webmaster@localhost'>administrador</A> del sitio</P>\n");
  97.    }
  98. ?>
  99.  
  100. </BODY>
  101. </HTML>
__________________
www.granideamillonaria.com
  #16 (permalink)  
Antiguo 20/09/2010, 09:03
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: Problema con variables de sesion

El archivo logout.php

Código PHP:
Ver original
  1. <?PHP
  2.    session_start ();
  3. ?>
  4. <HTML LANG="es">
  5. <HEAD>
  6. <TITLE>Desconectar</TITLE>
  7. <LINK REL="stylesheet" TYPE="text/css" HREF="estilo.css">
  8.  
  9. </HEAD>
  10. <BODY>
  11.  
  12. <?PHP
  13.    if (isset($_SESSION["usuario_valido"]))
  14.    {
  15.       session_destroy ();
  16.       print ("<BR><BR><P ALIGN='CENTER'>Conexión finalizada</P>\n");
  17.       print ("<P ALIGN='CENTER'>[ <A HREF='login.php'>Conectar</A> ]</P>\n");
  18.    }
  19.    else
  20.    {
  21.       print ("<BR><BR>\n");
  22.       print ("<P ALIGN='CENTER'>No existe una conexión activa</P>\n");
  23.       print ("<P ALIGN='CENTER'>[ <A HREF='login.php'>Conectar</A> ]</P>\n");
  24.    }
  25. ?>
  26.  
  27. </BODY>
  28. </HTML>

y la tabla:

Código MySQL:
Ver original
  1. CREATE TABLE usuarios (
  2.   usuario varchar(20) NOT NULL default '',
  3.   clave varchar(20) NOT NULL default '',
  4.   PRIMARY KEY  (id)
  5. ) TYPE=MyISAM COMMENT='Usuarios registrados de la Inmobiliaria Lindavista';
  6.  
  7. #
  8. # Volcar la base de datos para la tabla `usuarios`
  9. #
  10.  
  11. INSERT INTO usuarios VALUES (1, 'mariano', 'matOq4wkFsob6');
__________________
www.granideamillonaria.com
  #17 (permalink)  
Antiguo 21/09/2010, 02:43
 
Fecha de Ingreso: enero-2005
Mensajes: 170
Antigüedad: 19 años, 3 meses
Puntos: 0
Respuesta: Problema con variables de sesion

Gracias pero no hay manera. Ahora al menos no se intenta ir a la misma página. Llega a la parte donde se comprueba la clave_idioma (para saber si la pagina se mostrará en castellano o en catalán) y dice que falta idioma. O sea, que no llega a coger bien la clave_idioma.

Código PHP:
Ver original
  1. <?php
  2. //session_start();
  3.  
  4. include("include/cons.php");
  5. include("include/inctexteadmin.php");
  6. include("index.php");
  7. ?>
  8.  
  9. <?php
  10.    
  11.     //var_dump($_POST);
  12.     //unset ($_SESSION);
  13. $user = htmlspecialchars(trim($_POST['login']));
  14. $passwd = trim($_POST['pass']);
  15.  
  16. if (isset($user) && isset($passwd)){
  17.  
  18.     $link=mysql_connect($server,$dbuser,$dbpass) or die ("Impossible connectar amb el servidor");
  19.     $sql = sprintf("SELECT * FROM usuaris WHERE codi ='".$user."' and password='".$passwd."'");
  20.    
  21.     mysql_real_escape_string($passwd);    
  22.    
  23.     $result=mysql_db_query($database,$sql,$link) or die (mysql_error());
  24.     $n = mysql_num_rows($result);
  25.     //echo "$n<br>";   
  26.     if ($n>0){
  27.  
  28.         $array=mysql_fetch_array($result);
  29.         $_SESSION["codi"]=$array["codi"];
  30.         var_dump($_SESSION);       
  31.         $sql2 = sprintf("SELECT clau_idioma FROM usuaris");
  32.         $result2 = mysql_db_query($database,$sql2,$link) or die (mysql_error());
  33.         $n2 = mysql_num_rows($result2);
  34.        
  35.         if ($n2 == 1){
  36.             //echo "$n2<br>";
  37.             $_SESSION['cs'] = $array['clau_idioma'];
  38.         }else{
  39.             $_SESSION['cs'] = $array['clau_idioma'];
  40.         }
  41.        
  42.        
  43.         $deshabilitat = "SELECT deshabilitat FROM usuaris";
  44.         if ($deshabilitat = true){
  45. ?>
  46.             <script language="JavaScript" type="text/JavaScript">
  47.             <!--
  48.  
  49.             alert('<?=texte($_SESSION['cs'],"txtdeshabilitat")?>');
  50.             top.location = "index.php";
  51.  
  52.             -->
  53.             </script>
  54. <?php
  55.         }
  56.         $sql3 = sprintf("SELECT id_usuari FROM usuaris");
  57.         $result3 = mysql_db_query($database,$sql3,$link) or die (mysql_error());
  58.         $n3 = mysql_num_rows($result3);
  59.         //echo "$n3<br>";
  60.         if ($n3>0){
  61.            
  62.             $array3=mysql_fetch_array($result3);
  63.             $_SESSION["id_usuari"] = $array3["id_usuari"];
  64.            
  65.             $sql4 = sprintf("SELECT sam FROM usuaris");
  66.             $result4 = mysql_db_query($database,$sql4,$link) or die (mysql_error());
  67.             $n4 = mysql_num_rows($result3);
  68.             //echo "$n4<br>";
  69.        
  70.        
  71.             if ($n4>0){
  72.                 $array4=mysql_fetch_array($result4);
  73.                 $_SESSION["sam"] = $array4["sam"]; 
  74.            
  75.                 $sql5 = sprintf("SELECT clau_permis FROM usuaris");
  76.                 $result5 = mysql_db_query($database,$sql5,$link) or die (mysql_error());
  77.                 $n5 = mysql_num_rows($result3);
  78.                 //echo "$n5<br>";
  79.            
  80.             /*if ($n5>0){
  81.                 $array5=mysql_fetch_array($result5);
  82.                 $_SESSION["clau_permis"] = $array5["clau_permis"]; 
  83.             }*/
  84.             }
  85.            
  86.         }
  87.         if (isset ($_SESSION["codi"]) && ($_SESSION["cs"]) && ($_SESSION["id_usuari"]) && ($_SESSION["sam"]) && ($_SESSION["clau_permis"])){
  88.             header("Location: main.php");
  89.         }else{
  90.             header("Location: index.php");
  91.         }
  92.            
  93.    
  94.     }
  95.        
  96.     }else{
  97.         header("Location: index.php");
  98.     }  
  99.    
  100. ?>

Etiquetas: variables
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 18:25.