Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/01/2011, 02:17
Avatar de repara2
repara2
 
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Ayuda a redireccionar

Efectivamente la solución es un único archivo de login donde se haga un switch del perfil de usuario. La session no debería abrirse hasta haber comprobado todo. Tampoco necesitas anidas las selects, una solución sería:

Código PHP:
<?php

$con 
mysql_connect("server","user","pass") or die('Could not connect: ' mysql_error());
$db mysql_select_db("db_name"$con) or die('Could not select db: ' mysql_error());


$result mysql_query("SELECT count(*) AS cuenta, usr_id, username, nombre, apellido1, apellido2, tipo_perfil_id FROM usuario 
                        WHERE username='$_POST[usuario]'
                        and password = '"
.md5($_POST["clv"]."';") or die('Could not query: ' mysql_error());

while(
$row mysql_fetch_assoc($result))
  {
       
    if (
$row['cuenta']==1){//Si sólo ha encontrado una cuenta
        
        
        
switch($row['tipo_perfil_id']){
            case 
1:
                
$redir "../index1.html?usr=" $row['usr_id'] . "&tp=" $row['tipo_perfil_id'];
                break;
            case 
2:
                
$redir "../index2.html?usr=" $row['usr_id'] . "&tp=" $row['tipo_perfil_id'];
                break;
            default:
                echo 
"Perfil incorrecto";
                break;
        }

        
session_start("autentificado""usuario""nombre""apellido1"); 
        
$_SESSION["autentificado"]= "SI"
        
$_SESSION["usuario"] = $_POST["usuario"];
        
header("Location: $redir");
    } else {
        echo 
"<br><br><br><br><br><br><br><br><br><br><br>";
        echo 
"<table border='0'  align='center'>
        <tr>
            <th><h1> Su usuario no ha sido aceptado*" 
$_POST["usuario"] . "*</h1></th>
        </tr>
        <tr>
            <th> <A href='aviso.html'> Intentar nuevamente </A> 
        </tr></table>"
;
    }
}
  
mysql_close($con);
?>