1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Login e redireccionamento para pagina PHP + MySql

Discussão em 'Web Development' iniciada por tubarao21, 24 de Abril de 2008. (Respostas: 2; Visualizações: 991)

  1. Ola ppl.

    Eu estive a ler um tópico aqui mesmo no fórum, mas achei por bem fazer um novo post, até porque o outro já estava resolvido e também não me respondeu bem ao que quero.
    A questão é antiga mas tenho pouco conhecimentos de PHP.

    Tenho um site feito em PHP+MySql. Construi um sistema de Login com ajuda de DreamWeaver. Este funciona bem, e atraves do nível do utilizador que faz o Login consigo definir que paginas pode consultar.
    Tenho uma tabela de 'acessos' que guarda o 'user', a 'password' e o 'nivel'.

    Eu só queria mesmo era consoante o nível do utilizador que faz o Login, redireccionar para uma página específica.

    Sim, eu sei que existe muito tópico sobre isto e muita informação, mas não fui capaz de pôr isto a bombar como deve ser.

    Eu sei que estou lá perto, mas mais depressa dou cabo do código que o dreamweaver fez do que resolvo isto:D

    Este é o código que o DreamWeaver originou, se me pudessem indicar o que falta agradecia milhões.
    Código:
    <?php require_once('Connections/Conn_viaturas.php'); ?>
    <?php
    mysql_select_db($database_Conn_viaturas, $Conn_viaturas);
    $query_Rset_user = "SELECT * FROM t_acessos";
    $Rset_user = mysql_query($query_Rset_user, $Conn_viaturas) or die(mysql_error());
    $row_Rset_user = mysql_fetch_assoc($Rset_user);
    $totalRows_Rset_user = mysql_num_rows($Rset_user);
    ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
      session_start();
    }
    
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_GET['accesscheck'])) {
      $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }
    
    if (isset($_POST['user'])) {
      $loginUsername=$_POST['user'];
      $password=$_POST['pass'];
      $nivel=$_POST['nivel'];  
      $MM_fldUserAuthorization = "nivel";
      $MM_redirectLoginSuccess = "menu.php";
      $MM_redirectLoginFailed = "vib_2.php";
      $MM_redirecttoReferrer = false;
      mysql_select_db($database_Conn_viaturas, $Conn_viaturas);
          
      $LoginRS__query=sprintf("SELECT user, password, nivel FROM t_acessos WHERE user='%s' AND password='%s'",
      get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
       
      $LoginRS = mysql_query($LoginRS__query, $Conn_viaturas) or die(mysql_error());
      $loginFoundUser = mysql_num_rows($LoginRS);
    
      
      if ($loginFoundUser) {
        
        $loginStrGroup  = mysql_result($LoginRS,0,'nivel');
        
        //declare two session variables and assign them
        $_SESSION['MM_Username'] = $loginUsername;
        $_SESSION['MM_UserGroup'] = $loginStrGroup;          
    
        if (isset($_SESSION['PrevUrl']) && false) {
          $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];    
        }
        header("Location: " . $MM_redirectLoginSuccess );
      }
      else {
        header("Location: ". $MM_redirectLoginFailed );
      }
    }
    ?>
    
    Muito obrigado pela vossa atenção ;)
     
  2. walterwolf

    walterwolf Power Member

    ola, eu só li a tua questão, não olhei pro código, pelo que eu li o que eu posso te dizer é o seguinte:
    - Se ja consegues obter o nível de cada utilizador então agora é com uns "ifs" e "elses" mandar redimensionar para pagina X
    exemplo:
    <?
    if ($nivel =="administrador")
    {
    ?> <script> self.location='pagina_administrador.php'; </script> <? //javascript
    }elseif($nivel =="cliente"){

    ?> <script> self.location='pagina_cliente.php'; </script> <? //javascript

    }else{

    ..........

    }

    ?>

    Isto se tiveres um ficheiro.php para cada nível.
    Se tiveres tudo num só ficheiro é só chamar as funções pra cada um do níveis em vez do self.location.

    E depois tens de trabalhar com a session e/ou cookies pra saberes quem fez o login

    Espero ter ajudado, qualquer coisa tamos cá.
     
    Última edição: 25 de Abril de 2008
  3. Boas, desculpem a resposta tardia mas só agora pude retornar a este assunto.
    Ora bem, eu compreendo a filosofia da coisa, mas a questão é que eu não percebo muito de PHP, e não consigo integrar o código que o walterwolf me deu com o que o Dreamweaver me gerou automaticamente. Dá-me sempre erro no PHP :)
    Visto que o codigo gerado por DW me controla as sessões e isso tudo, só me faltava mesmo era colocar o codigo do walterwolf para funcionar.

    Como ficaria o codigo?


    Obrigado;)
     

Partilhar esta Página