sessions e permissoes

damaged

Power Member
boas pessoal tenho um novo grande problema

a minha pagina tem varios tipos de registo.
ou seja tem 3 tipos de permissoes.. users com permissao tipo 0, 1 e 2

e tenho a parte do php do post separado da pagina html.. ou seja.. tenho forms com action para uma pagina de post...

so que agora certas variaveis nao consigo ir busca las... por exemplo

tenho os sessions a bombar... do tipo:

if (isset($_SESSION("log")) { mostra a pagina }
else { pede para fazer o login }

no post do login tenho quando o login é correcto executa isto:
$_SESSION['log'] = 1;
session_register("log");

ate aki tudo bem... so que certas paginas so podem ser acedidas por certos users...

como é que faço para conseguir saber que tipo de user é (na pagina html, para depois poder mostrar o "echo" a dizer que nao tem permissoes para acede la???

espero ter me explicado bem...
 
Que acçao estas a desencadear quando o processo de login é validado ?

Se login_valido() entao
log = 1
tipo_user = ....
....
Senao
log = 0

algo do genero
 
include("conectar.php");

$user = $_POST['username'];
$pass = $_POST['password'];

$sql="SELECT * FROM login WHERE username = '$user' and password = '$pass'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

$user = $rows['username'];
$pass = $rows['password'];
$tipo = $rows['tipo'];

//check if query successful
if(!empty($rows)){

if($rows['tipo'] == 0){
$_SESSION['log'] = 1;
session_register("log");

aki no post do login ja ta tudo resolvido...

agora o meu problema está a ser na pagina onde tem de verificar qual o log dele e n ta a fazer bem a condiçao que é a seguinte:

if (isset($_SESSION['log']) == 3) { mostra a pagina }

else { nao tem permissoes }

eu ja meti um echo disso a ver se ele ta a devolver bem o valor do $_SESSION['log'], e está... so que ele nesse IF... n tá a perguntar se é = a 3... entra sempre la pra dentro..


e se meto assim:

if (isset($_SESSION['log'] == 3)) {

ele dá me ...expecting "," or ")"
 
como é que faço para conseguir saber que tipo de user é (na pagina html, para depois poder mostrar o "echo" a dizer que nao tem permissoes para acede la???

espero ter me explicado bem...

o que deves fazer é passar a página de .html para .php e aí já podes usar o php para fazeres esse echo
 
aki no post do login ja ta tudo resolvido...

agora o meu problema está a ser na pagina onde tem de verificar qual o log dele e n ta a fazer bem a condiçao que é a seguinte:



eu ja meti um echo disso a ver se ele ta a devolver bem o valor do $_SESSION['log'], e está... so que ele nesse IF... n tá a perguntar se é = a 3... entra sempre la pra dentro..


e se meto assim:



ele dá me ...expecting "," or ")"

a funçao isset devolve um booleano (true or false) caso exista um valor atribuido a uma variavel.
o que devias fazer era algo do tipo:

PHP:
if( isset($_SESSION['log']) && $_SESSION['log'] == 3)
 
Deixa-me dizer-te que tens uma pequena falha de segurança amigo...
Tem cuidado com as variáveis que envias para a tua query. Aconselho-te a usar algo do género:

$user = mysql_escape_string(trim($_POST['username']));
$pass = mysql_escape_string(trim($_POST['password']));

Boa programação! ;)
 
Back
Topo