Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2009, 18:44
Avatar de kurokishi
kurokishi
 
Fecha de Ingreso: enero-2009
Ubicación: Tenochtitlán
Mensajes: 109
Antigüedad: 15 años, 3 meses
Puntos: 1
Como solucionar este problema?

Hola pues como ya habia posteado antes acerca de un script en el cual me comparaba un login, y dependiendo de esto hacer mis variables de sesion conforme al usuario.
Pues bien quise poner otra variable de sesion y no me lo hace, este es mi codigo:
Código PHP:
<?php
session_start
();
$_SESSION["existe"]='si';
If(isset(
$_POST["usuario"]) and isset($_POST["password"]))
{
$usuario=$_POST["usuario"]; 
$pass=$_POST["password"];

$con=pg_connect("host=127.0.0.1 port=5432 user=postgres password=lufy dbname=Curso");
if (!
$con
    {
        echo 
"Error al conectarse, verifique sus datos.";
    }
 else     
    {
    
$sql="SELECT usuario, nivel FROM comparacion WHERE usuario='$usuario' and contrasena='$pass'";
$query=pg_query($sql);
$nick="SELECT nickname FROM id WHERE usuario='$usuario'";
    
$kuery=pg_query($sql);
    If(
pg_num_rows($query)==1)
    {
        if (
pg_num_rows($kuery)==1)
        {
        
$row=pg_fetch_array($query);
        
$_SESSION["usuario"]=$row[0];
        
$_SESSION["usuario"]=$row[1];
        
$_SESSION["usuario"]=$usuario;
        
$_SESSION["nivel"]=$row[1];
        
$col=pg_fetch_array($kuery);
        
$_SESSION['nickname']=$col[1];
                        
        if (
$_SESSION["nivel"]=='f')
        {
            
header ('Location: curso/nihongo_aragon.php?modulo=inicio');
            exit;
        }
        elseif (
$_SESSION["nivel"]=='t')
        {
            
header ('Location: curso/sensei_aragon.php?modulo=inicio');
            exit;
        }
        }
    }
    else
    {
        
header ('Location: logerror.php');
        exit;
    }
    }
}
?>
El script me respeta las variables de sesoin de 'usuario' y de 'nivel' pero NO el de nickname!!
Por probar hice un script de prueba con el cual checa solo la variable de 'nickname', y este es el script:
Código PHP:
<?php
session_start
();
$_SESSION['usuario'];
$_SESSION['nivel'];
$_SESSION['nickname'];

    echo 
"".$_SESSION['usuario']." es la variable de sesion;<br>";
    echo 
"".$_SESSION['nivel']." es el nivel del usuario;<br>";
    echo 
"".$_SESSION['nickname']." es el apodo elegido por el usuario";
    
    
$con=pg_connect("host=127.0.0.1 port=5432 user=postgres password=lufy dbname=Curso");
if (!
$con
    {
        echo 
"Error al conectarse, verifique sus datos.";
    }
 else     
    {
    
$sql="SELECT nickname  FROM id WHERE usuario='".$_SESSION['usuario']."'";
    
$kuery=pg_query($sql);
    if (
pg_num_rows($kuery)==1)
    {
        
$row=pg_fetch_array($kuery);
        
$col=$row[1];
        echo 
".$col";
    }
    }
    
?>
Cuando imprimo las variables de 'usuario' y 'nivel' me los muestra sin problemas, pero el de 'nickname' no, y creando nuevamente el query me lo muestra solamente cuando el query manda a llamar a mas de 1 campo!
Código PHP:
$sql="SELECT  *  FROM id WHERE usuario='".$_SESSION['usuario']."'"
De lo contrario me aparece el error de udefined offset 1
A que se debera el problema?