sábado, março 14, 2015

Exemplo clássico de sessões :


session_start();

//tem ou não tem visitas ?
if (!isset($_SESSION['visits']))
{
   //certo nao tem entao vamos passar o valor 1 para a variavel de sessão
   $_SESSION['visits'] = 1;
}
else
{
   //já tem então vamos incrementar em um o número de visitas
   $_SESSION['visits']++;
}

//escrevendo ...
echo $_SESSION['visits'];

?>
Sessões

Sessões permitem armazenar informações entre diferentes páginas.

Abaixo exemplo onde basicamente iniciamos, armazenamos e exibimos  dados de uma sessão.


// inicia uma sessão
session_start();

// armazena dados
$_SESSION["username"] = "angelo";
$_SESSION["email"] = "a@gmail.com";

///Exibe dados
echo $_SESSION["username"].' '.$_SESSION["email"];
echo ' '.session_name();

Abaixo deletamos o valor de uma variável de sessão:
session_start();

$_SESSION["usuario"] = "angelo";

echo ' 1 '.$_SESSION["usuario"];

// deleta o valor indexado com o nome usuário
unset($_SESSION["usuario"]);

echo '
2 '.$_SESSION["usuario"];

Abaixo deletamos toda a sessão, bom para scripts de logout :
session_start();

// finaliza a sessão
session_destroy();

Verifica o tempo de sessão e finaliza apos o limite configurado:
session_start();

// configure tempo de expiração (em segundos)
$inativo = 600;

// verifique se $_SESSION["timeout"] esta configurado
if (isset($_SESSION["timeout"])) {

    // calcule o tempo de vida da sessão
    $sessionTTL = time() - $_SESSION["timeout"];
    if ( $sessionTTL > $inativo ) {
        session_destroy();
        header("Location: /logout.php");
    }
}

$_SESSION["timeout"] = time();

Gerando um identificador único ajuda a prevenir ataques pelo número da sessão, session_regenerate_id gera um novo número de sessão único para cada usuário qeu acessa o sistema por exemplo:
session_start();

if ($_POST["username"] == "admin" && $_POST["password"] == sha1("password")) {
    $_SESSION["authorized"] = true;
    session_regenerate_id();
}

Referência do link : http://www.sitepoint.com/php-sessions/

sexta-feira, fevereiro 06, 2015

Lacacasts favorites

Este ´um dos laracasts favoritos

https://laracasts.com/lessons/how-to-use-eloquent-outside-of-laravel

quinta-feira, agosto 15, 2013

Temas no Moodle

As versões atuais do Moodle a partir da 2.0 trouxeram novos temas muito interessantes, podemos listar alguns que apresentam boa qualidade.

Sem falar que na versão 2.6 para cima todos terão como base o tema Bootstrap projeto do Twitter e terão compatibilidade total com smartphones e tablets.

Archaius - Bonito, é possivel recolher as colunas laterais.
Clean - Simples mas bonito.
Essential - Novo tema ícones bonitos fontes e cores bonitas.
Liven - Ótimo aproveitamento do espaço.
CloudyDay - Ótimo contraste e escolha de fontes.
Newsie - Ótima formatação e distribuição do espaço.
Magazine - Ótima distribuição do espaço.
Aardvark - Remodelado com base no bootstrap
Decaf - Aproveita totalmente o espaço da tela e mantem os menus de administração no topo ocupando o mínimo possível de espaço.
Moodle2mobile - Funciona bem em smartphones e tablets.
Nimble - Aproveitamento do espaço

Também gosto do Arialist, Boxxie, Brick, Formfactor, Fusion, Leatherbound, Serenity, Nonzero, Overlay mas não são meus preferidos.

Existem diversos temas mas, IMHO se ficarmos com estes já estamos bem servidos. Não querendo ser injusto com nenhum outro tema.

Caso seja desenvolvedor e desejar utilizar um tema existente para montar outro, eu apostaria nesta lista acima.

Até a próxima.



terça-feira, fevereiro 26, 2013


Algoritmo "Matriz"
VAR
VALORES : VETOR [1..2, 1..2] DE REAL
somaLinha3, somaColuna2, somaDiagPrinc, somaDiagsecu, somaTudo: REAL
i, j: INTEIRO //os índice sempre inteiro

inicio

somaLinha3 <- 0="" p="">somaColuna2 <- 0="" p="">somaTudo <- 0="" p="">
Para i de 1 ate 2 faca
     Para j de 1 ate 2 faca
          Escreva("Digite um valor para a matriz: ")
          Leia (VALORES[i,j])
          somaTudo <- i="" j="" p="" somatudo="" valores="">     fimpara
fimpara

Para i de 1 ate 2 faca
     para j de 1 ate 2 faca
          escreval (VALORES[i,j])
     fimpara
fimpara

escreval ("Soma de todos os elementos é ", somaTudo)

fimalgoritmo

Bidimensionais

Algoritmo "Matriz"
var
valores  : VETOR [1..3,1..3] DE REAL
somaLinha3, somaColuna2, somaDiagPrinc, somaDiagsecu, somaTudo: REAL
i, j: INTEIRO //os índice sempre inteiro

inicio
somaLinha3 <- 0="" p="">somaColuna2 <- 0="" p="">somaDiagPrinc <- 0="" p="">somaDiagsecu <- 0="" p="">somaTudo <- 0="" p="">Para i de 1 ate 3 faca
Para j de 1 ate 3 faca
Escreva("Digite um valor para a matriz")
Leia (VALORES[i,j])
somaTudo <- i="" j="" p="" somatudo="" valores="">se i=3 entao
somaLinha3 <- i="" j="" p="" somalinha3="" valores="">fimse
se j=2 entao
somaColuna2 <- i="" j="" p="" somacoluna2="" valores="">fimse
se i=j entao
somaDiagPrinc <- i="" j="" p="" somadiagprinc="" valores="">fimse
se j=4-i entao
somaDiagsecu <- i="" j="" p="" somadiagsecu="" valores="">fimse
fimpara
fimpara
Para i de 1 ate 3 faca
para j de 1 ate 3 faca
escreval (VALORES[i,j])
fimpara
fimpara
escreval ("Soma de todos os elementos é ", somaTudo)
escreval ("Soma dos elementos da linha 3 é ", somaLinha3)
escreval ("Soma dos elementos da coluna 2 é ", somaColuna2)
escreval ("Soma dos elementos da diagonal principal é ",somaDiagPrinc)
escreval ("Soma dos elementos da diagonal secundária é ",somaDiagsecu)
fimalgoritmo
algoritmo "semnome"
var
j.k.vb:inteiro
v: vetor[1..10] de inteiro
achou : logico

procedimento preenchevetor
var j : inteiro
inicio
para j de 1 ate 10 faca
v[j] <- p="" randi="">escreva(j:5, v[j]:5)
fimpara
fimprocedimento

inicio
preenchevetor
escreva("Entre com o valor da busca (esc termina):")
leia(vb)
j<-1 p="">repita
se v[j] = vb entao
achou <- p="" verdadeiro="">senao
J<-j p="">fimse
ate (achou = verdadeiro) ou (j<10 p="">se achou entao
escreval("Achei",vb,"na posicao ",j)
seano
escreval("nao achei")
fimse
fimalgoritmo


Imprimir os numeros de 1 até 10 usando o while

/* example 1 */

$i = 1;
while ($i <= 10) {
echo $i++;  /* the printed value would be
  $i before the increment
  (post-increment) */
}

?>


Escrever numeros de 1 até 10 usando do while

$i = 1;
do {
echo $i;
$i++;
} while ($i < 10);

?>

segunda-feira, fevereiro 25, 2013


Exemplo de leitura do teclado em java

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Teclado {
 
Integer id;
String nome;
Integer idade;

    public static void main(String[] args) {
        leituraTeclado();
    }
   
    @Override
    public String toString() {
        return "Você digitou : " +
                "id = " + id +
                ", Nome = '" + nome + '\'';
    }
   
    private static void leituraTeclado() {
        Scanner scanner = new Scanner(System.in);

        Teclado t = new Teclado();
       
        System.out.print("Digite sua identificação: ");
        t.id = scanner.nextInt();
       
        System.out.print("Nome: ");
        t.nome = scanner.next();
       
        //System.out.print("Idade: ");
        //t.idade = Integer.parseInt(scanner.nextLine());

        System.out.println(t.toString());
    }
}

domingo, fevereiro 24, 2013

Aula 25/02/2013


Exemplo vetores e utilização do for


$nome = array('Orlando','Heitor','Paulo','Jandir');

for($i=0;$i<4 i="" p=""> echo $i;
echo " nome  : ".$nome[$i]
}