Mostrando postagens com marcador variáveis. Mostrar todas as postagens
Mostrando postagens com marcador variáveis. Mostrar todas as postagens

quinta-feira, 25 de novembro de 2010

Utilização de Sessão em PHP

Utilização de Sessão em PHP



Uma coisa que tenho utilizado nas minhas programações em PHP é o acesso restrito a certas páginas. Como mencionei no meu tutorial sobre Campos interessantes em um banco de dados MySQL, eu gosto de colocar um campo de "level" (nível) de usuário no banco de dados de membros. Assim fica fácil liberar ou restringir de acordo com o nível do usuário.

Na programação em PHP eu utilizo a variável $_SESSION para salvar informações sobre a pessoa que está visitando o site. Se o usuário não efetuou o login, não tem informações na variável $_SESSION. Se fez o login, eu salvo informações do usuário, tipo nome completo, nível e data da última visita.

No início de cada página PHP, é colocado o seguinte código:
if(session_id() == "") session_start(); # Isto garante que a sessão seja inicializada
if(!isset($_SESSION['user']) ) {
    if(isset($_POST['user']) && isset($_POST['password'])) {
        $row['user'] = $_POST['user'];
        $password = $_POST['password'];
        $crypt_password = crypt($password, $row['user']);
        $read = user_read($row);
        if(($read == 1) && ($row['password'] == $crypt_password)) {
            $_SESSION['user_level'] = $row['user_level'];
            if($row['user_level'] > 0) {
                $_SESSION['user_is_logged_in'] = true;
                $_SESSION['user'] = $row['user'];
                $_SESSION['full_name'] = $row['full_name'];
                $_SESSION['last_date'] = $row['last_date'];
            }
            $row[last_date] = date("Y/m/d");
            user_write($row);
        }
    }
}

Todo código após a primeira linha pode ser colocado em uma rotina, inclusive em um outro arquivo para ser acessado por todas as páginas do site.

Note que após a identificação do usuário, são salvos vários dados do usuário na variável $_SESSION. Também é importante observar que primeiro é salvo na variável $_SESSION o valor da última visita, depois é atualizado para o dia de hoje, no banco de dados.

Veja também que a função user_read($row) lê os dados do usuário do banco de dados, e a função user_write($row) escreve os dados do usuário no banco de dados.

Após a execução dos códigos acima, podemos executar códigos condicionais dependendo do nível do usuário, da seguinte maneira:
if($_SESSION['user_level'] >= 1) {
   echo("Usuário autenticado!");
}

quinta-feira, 15 de julho de 2010

Variáveis em PHP

Este post faz parte da série de programação em PHP.

PHP é bastante flexível quanto às variáveis. Ao contrário da linguagem C, as variáveis em PHP não precisam ser definidas formalmente. Podem apenas ser inicializadas e usadas. Toda variável em PHP começa com o cifrão ($).

Veja o seguinte código:
$tmp[0] = "domingo";
$tmp[1] = "segunda";
$tmp[2] = "terça";
$tmp[3] = "quarta";
$tmp[4] = "quinta";
$tmp[5] = "sexta";
$tmp[6] = "sábado";
$tmp[7] = 2010;

Acabamos de definir um arranjo (array) de 8 elementos, onde os primeiros 7 são os dias da semana e o oitavo valor é um número;

Então podemos fazer:
$tmp1 = 3;
echo("Hoje é $tmp[$tmp1]\n");
e vamos ter na tela:
Hoje é quarta

E podemos notar que foi definido uma variável chamada $tmp1 (cujo valor é 3) e um arranjo chamado $tmp[] que contém os dias da semana e mais um número.

Esses arranjos múltiplos são utilizados bastante na consulta a bancos de dados, onde a ficha inteira pode ser transferida para um arranjo, na volta da rotina de consulta. Cada elemento no seu respectivo campo, conforme definido no banco de dados.

Veja agora um programa exemplo, para contar cada vez que envia o formulário.