Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
leticia.muto

redirecinar apartir da valição de uma grupo

Recommended Posts

leticia.muto

Olá..pessoal.. estou começando a programar em php agora.. Preciso de ajuda no seguinte caso... Tenho um login, senha e codigo de segurança.. Tenho uma tabela no mysql de grupo que tem admistrador.. programador.. ect. de acordo com o grupo que o usuario estiver preciso redirecionar ele para pagina que cabe a autoridade do seu grupo..

Não sei como faço isso !!!!!!!! Alguem pode me ajudar..

      Agradeço antecipadamente.... :P

Share this post


Link to post
Share on other sites
elcsat

switch($grupo){

case 'a':

            header('location: grupoa.php');

          break;

case 'b':

            header('location: grupob.php');

          break;

.

.

.

case 'z':

            header('location: grupoz.php');

          break;

default:

    header('location: index.php');

break;

}

fazes um switch e usas o header pra mudares pra a pagina que pretendes, atençao que este header para redecionar para a pagina que  pretendes deve estar antes da pagina.

Share this post


Link to post
Share on other sites
scorch

Está correcto, elcsat, mas também há outra maneira.

if ($grupo == "admin"){
//mostra o que é dos admins
} elseif ($grupo == moderador){
//mostra o que é dos moderadores
} else {
//mostra o que é de todos.
}

A vantagem da utilização deste método é poder ser tudo na mesma página. Embora com switchs também desse, acho que ficava mais confuso e não dava para fazer mais do que uma verificação ao mesmo tempo (and).


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
elcsat

os if susbtituir o switch, mas o switch tambem substituir o if, neste caso

eu preferia switch, porque se for mts opçoes torna-se chato ta a escrever isso tdo a comparar... e em menos codigo e mais legivel é um switch

Share this post


Link to post
Share on other sites
scorch

Depende do uso que lhes dás. Se queres algo mais complexo, usas os if, se queres algo mais simples, usas os switchs. :P


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
elcsat

desculpa o if nao e sinal de complexidade, neste caso e sinal de confusao

se tiveres mts opçoes

e um bom programador neste caso usa um switch nao faz if's penso eu, so se nao tiver nada pra fazer

Share this post


Link to post
Share on other sites
scorch

Depende, e se tu quiseres verificar mais do que um argumento, por exemplo, o grupo e se o user está banido, com um if é mais simples, na minha opinião.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
elcsat

tas enganado

imagina $a pode ir de 1 a 100

o if por exemplo compara $a==1, senao se $a==2, senao se $a==3

num simples switch fazes

switch($a){

case 1:

faze isto

case 2:

faz isto

default:

se nao for nenhuma das opçoes apresentadas faz isto

}

mas se fosse 100 opçoes, eu certamente nao ia usar if nem switch, ia tentar fazer um codigo mais inteligente que me poupasse o trabalho de escrever isso tdo

Share this post


Link to post
Share on other sites
The Loser

Leiam sobre jump tables, façam testes, e no fim vão chegar à conclusão que um switch é cerca de 2x mais rápido que um conjunto de ifs/if-elses.

Um switch é melhor que um conjunto de ifs para avaliar valores definidos e previsíveis, já os ifs/if-elses são melhores para operações mais complexas não suportadas por um switch.

(Though, jump tables não se aplicam a PHP, nem à maior parte dos compiladores de hoje em dia, it's a good read. :P )


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites
djthyrax

Ou então simplesmente:

$pages = array('a' => 'a.php',
                      'b' => 'b.php');

if(array_key_exists($pagina, $pages)) header("Location: ".$pages[$pagina]);
else header("Location: default.php");


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
scorch

Um switch é melhor que um conjunto de ifs para avaliar valores definidos e previsíveis, já os ifs/if-elses são melhores para operações mais complexas não suportadas por um switch.

Foi o que eu disse, que os ifs eram para operações mais complexas, embora eles sejam simples de usar.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
leticia.muto

Olá..a todos.. obrigada pela ajuda...

Ma agora mudou a situação so que a duvida é a mesma

bom.. tenho tabela grupo com os grupos criados..

tabela permissão com per_cod, per_descricao e per_grupo

e tabela usuario com seus dados...

preciso validar de acordo com o grupo de cada usuario

quais partes do meu site o usuario vai ter acesso..

pensei em pegar a url e validar pois na tabela permissao no

campo per_decricao tem a pagina permitida..

apartir dai começa meu problema.. com ofazer isso?

Share this post


Link to post
Share on other sites
scorch

Para que serve a per_cod? :P


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
elcsat

nao era melhor estruturares a tua ideia e ganhares um pouco de conhecimento acerca de cada assunto para te facilitar as coisas

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.