Foros del Web » Programando para Internet » PHP »

Mala comparacion o sesion?

Estas en el tema de Mala comparacion o sesion? en el foro de PHP en Foros del Web. Hola a todos, os pongo mi fichero entero de autentificacion.php: Código PHP: <? session_start (); @  $db  =  mysql_pconnect ( "localhost" ,  "root" ); mysql_select_db ...
  #1 (permalink)  
Antiguo 03/07/2005, 08:45
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
Mala comparacion o sesion?

Hola a todos, os pongo mi fichero entero de autentificacion.php:

Código PHP:
<?
session_start
();

$db mysql_pconnect("localhost""root");

mysql_select_db("digitalbook");
    
 function 
quitar($mensaje
    { 
        
$mensaje str_replace("<","&lt;",$mensaje); 
        
$mensaje str_replace(">","&gt;",$mensaje); 
        
$mensaje str_replace("\'","'",$mensaje); 
        
$mensaje str_replace('\"',"&quot;",$mensaje); 
        
$mensaje str_replace("\\\\","&#92",$mensaje); 
        return 
$mensaje
    } 
 
if(
$_POST["login"] != "" && $_POST["password"] != "")
{  
    
$loginN quitar($_POST["login"]); 
    
$passN quitar($_POST["password"]); 
 
    
$result mysql_query("SELECT pass FROM usuario_registrado WHERE login='".$loginN."'"); 
    if(
$row mysql_fetch_array($result)) 
    { 
        if(
$row["pass"] == $passN
        { 
            
$valid_user $_POST["login"];
            
session_register"valid_user" );            
        } 
      } 
}
 
if ( 
session_is_registered"valid_user" ) )

  
//echo "Estás registrado, y tu login es: $valid_user";
  // SE REDIRECCIONA A WEB DE SOCIO    

    
if ($_SESSION['valid_user'] == "admin")  
    { 
?> 
        <SCRIPT LANGUAGE="javascript"> 
        target = "_top";    
        window.open('../admin/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');                
        </SCRIPT> 
    <? }
    else  { 
?>
        <SCRIPT LANGUAGE="javascript"> 
        target = "_top";    
        window.open('../socio/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');                
        </SCRIPT> 
    <? 
}
else if ( isset( 
$_POST["password"]) )
{
  
//echo "No te has registrado correctamente";
  
?>
    <script LANGUAGE="javascript">                
    target = "_top";
    window.open('../usuario/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');
    //window.open('./usuario/index.htm',target,defaultStatus,'fullscreen=1','width=768','height=1024');
    window.alert("No te has registrado correctamente");
    </script>
                
  <?
}
 
else 
{
 
//echo "No estás registrado.";
 
?>
    <script LANGUAGE="javascript">
    target = "_top";
    window.open('../usuario/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');
    //window.open('./usuario/index.htm',target,defaultStatus,'fullscreen=1','width=768','height=1024');                        
    window.alert("No estás registrado");
    </script>
  <?
}
 
?>
El principal problema debe estar aqui, no se si esta bien hecha esta comparacion:
Código PHP:
if ($_SESSION['valid_user'] == "admin")  
    { ?> 
        <SCRIPT LANGUAGE="javascript"> 
        target = "_top";    
        window.open('../admin/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');                
        </SCRIPT> 
    <? }
    else  { 
?>
        <SCRIPT LANGUAGE="javascript"> 
        target = "_top";    
        window.open('../socio/index.php',target,defaultStatus,'fullscreen=1','width=768','height=1024');                
        </SCRIPT> 
    <? }
Siempre me entra en el else y no se porque, a ver si alguien me puede ayudar, seguramente sea por la forma de comparar...

Gracias!!!
  #2 (permalink)  
Antiguo 03/07/2005, 10:43
 
Fecha de Ingreso: junio-2005
Mensajes: 4
Antigüedad: 12 años, 5 meses
Puntos: 0
Hola Capi,

A mi me pasa algo parecido, he probado alguna otra manera diferente de comparar los strings pero de momento no me ha funcionado. voy a probar alguna otra cosa diferente.

A ver si alguien nos puede aconsejar.

Gracias
  #3 (permalink)  
Antiguo 03/07/2005, 13:18
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Hola, estube viendo y creo que el error esta porque no le asignas ningun valor a valid_user de la session. Tendrias que modificar cuando registras la variable de session y asignarle un valor. Aqui te lo pongo como creo que tendria que quedar.

Código PHP:
if($_POST["login"] != "" && $_POST["password"] != ""
{   
    
$loginN quitar($_POST["login"]); 
    
$passN quitar($_POST["password"]); 

    
$result mysql_query("SELECT pass FROM usuario_registrado WHERE login='".$loginN."'"); 
    if(
$row mysql_fetch_array($result)) 
    { 
        if(
$row["pass"] == $passN
        { 
            
$valid_user $_POST["login"]; 
            
// Esto no iria      session_register( "valid_user" );
            
$_SESSION['valid_user'] = $valid_user;
        } 
      } 

No lo pude probar, puede ser que no ande. Ahora me quedo una duda, cuando comparas el valor de valid_user de session, siempre se compara con admin, estas seguro que siempre sera asi?. Espero que te alla ayudado en algo, saludos.
  #4 (permalink)  
Antiguo 04/07/2005, 13:06
 
Fecha de Ingreso: mayo-2005
Mensajes: 78
Antigüedad: 12 años, 7 meses
Puntos: 0
Muchas gracias DarioDario, ya me funciona, era eso ;););)
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 07:08.