ArtigosNovember 2, 2009 1:40 pm

Parece meio óbvio, mas a verdade é que nem todo mundo sabe a diferença entre Debugar, Compilar e Executar, sendo primordial requisito para iniciar na programação.

Quando estamos iniciando em alguma linguagem temos sempre uma dúvida, quase sempre relacionada a como vamos "rodar" o programa que fizemos, não interessando se a linguagem é mais ou menos complexa, a sintaxe é o mais fácil de aprender.

Primeiramente vamos ver o que é debugar.

Debugar nada mais é do que achar um "bug" de sintaxe no programa. Falando nisso, "bug" traduzindo do inglês significa inseto, nos primórdios da informática os computadores eram formados por milhares de válvulas (hoje são substituidos pelos transistors, pinos dos processadores), e quando um inseto entrava entre estas válvulas era quase certo que uma, pelo menos, iria queimar, então, vários engenheiros na época tinha que descobrir qual válvula queimou, para depois trocar e religar a máquina.

Obs.: Quando se debuga, só se achará erros de SINTAXE, ou seja, Division By Zero ( Divisão por zero ), Loop infinito, ou erros de comandos ( uso errado de algum comando ), isto significa que o programa pode não funcionar como você imagina.

Compilar

Quando você compila algum programa você o transforma em um executável. Usando um exemplo simples: No Pascal, quando você salva o código fonte (’.pas’), apenas numa máquina com Pascal poderá ser executado. Mas quando você compila o programa em Pascal, gerará um executável (’.exe’), que rodará em todas as máquinas Windows. 

A maioria dos compiladores tem debugador junto, para verificar, antes de formar um executável se há algum "bug".

Executar

Executar não gerará nenhum arquivo e nem vai verificar se ocorreu algum "bug", serve apenas para mostrar ao programador como esta ficando o seu programa.

Eu vou indo, Caso surja alguma dúvida é só postar

Até mais!

PhpOctober 11, 2009 12:56 pm

Bom dia!

Hoje vamos aprender a fazer uma galeria usando php e lightbox ( Para saber mais sobre lightbox clique aqui ).

Primeiramente vamos criar as pastas para colocar as imagens: images/galeria

Com as pastas ja criadas vamos começar a criar o código fonte. Vamos dividir este programa que iremos fazer em 2 partes: Exibição ( No qual iremos exibir as imagens da galeria ) e Inclusão ( Onde se pode incluir imagens à galeria );

Então começaremos por exibição. Para isso coloque algumas imagens na pasta galeria, depois crie um arquivo com o nome "exibe.php", com o seguinte conteúdo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
            $not=’images/galeria’; // define o diretório onde estão as imagens
            $a=0; // contador ( a baixo do código fonte tem uma explicação do porquê usar )
            if ($dir = opendir("$not")) { //verifica se o diretorio existe, se existir $dir==true
            while (false !== ($file = readdir($dir))) { // armazenando o nome do arquivo
            $a+=1; // incrementando o contador
            if ($a>2){ //if do contador ( veja a baixo na explicação )
            $c=’<a href="’."$not/$file".’" rel=lightbox[roadtrip]>’; // guardando numa variável o link para lightbox
            $b=’<img src="’."$not/$file".’" width="150">’; // guardando numa variável a tag img
            echo "$c";
            echo "$b";//escrevendo variáveis
            echo "</a>";
        }
    }
closedir($dir); //fechando diretório
}
?>
</body>
</html>
 

Notem que foi utilizado um contador, este contador server para o seguinte: Quando você usa o opendir no php ele mostra tudo o que está na pasta. Observem:

.

..

Arquivo1.jpg

Arquivo2.jpg 

Arquivo3.jpg 

O problema está justamente o "." e no "..", que significam "voltar à raiz" e "voltar para a pasta anterior", respectivamente, quem ja mecheu com o DOS do windows ja conhece, são esses mesmos que você usa no comando "CD ..", quando você quer voltar a um diretório ou "CD ." para voltar á raiz. Por isso coloquei o contador, enquanto ele não for maior do que 2 ele não vai inserir imagens, ou seja, enquanto não passar o "." e "..", não vai inserir imagens. 

Vamos agora para Inclusão, nesta parte vai uma dica, se você quiser use um sistema de autenticação ( usuário e login ) para ter acesso de incluir fotos. Nesta parte vamos criar "addph.php", observem que vamos fazer o formulário e o script para adicionar as fotos num mesmo arquivo!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
        $arquivo=$_FILES[arquivo]; // captura um arquivo na variável $ arquivo, $arquivo eh uma imagem
        $d1=rand(0,2000); // randomiza um número entre 0 e 2000
        $d2=rand(500,1200); // randomiza um número entre 500 e 1200
        $nome=$d1.$d2;// junta as duas variaveis randomizadas, numa variável nome, para servir de nome da imagem
        if ($arquivo==""){ // verifica se a variável arquivo está vazia

        //criando formulário
        echo ‘<form id="form2" name="form2" method="post" action="addph.php" enctype="multipart/form-data">’;
        echo ‘<input type="file" name="arquivo">’;
        echo ‘<br>’;
        echo ‘<br>’;
        echo ‘<input type="submit" name="Submit" value="Upload" />’;
        echo ‘</form>’;
        }
        if ($arquivo!=""){ // verifica se $arquivo não é nulo
        preg_match_all("/\.[JPG|JPEG|GIF|PNG]{3,4}/i",$arquivo[’tmp_name’],$ext); // verifica a extensão da imagem
        $ext = ‘.jpg’; // define a nova extensão da imagem
        if (isset($arquivo)){ // verifica se o arquivo realmente existe
            $diretorio = ‘../images/galeria/’; //diretório onde deseja deixar as imagens
            $salvar = $diretorio.$nome.$ext; // diretorio + nome do arquivo + extensão do arquivo
            move_uploaded_file($arquivo[’tmp_name’], $salvar);//upload propriamente dito
                            }
        echo ‘<h3>Upload de Foto Completo, <a href="addph.php">Fazer mais Uploads </a></h3>’;
        echo ‘<br><a href="index.php"> Página Inicial de Administrador </a>’; // mensagem final
        }
        ?>
</body>
</html>
 Conseguimos então fazer um formulário e um script na mesma página. E para quem quiser encrementar mais ainda sua galeria Login com Session

Abraços, Até A próxima

Php, MySQLAugust 23, 2009 4:50 pm

Hoje eu nem ia escrever no blog, estava meio sem inspiração, mas achei uma coisa muito legal e interessante.

Existem falhas que seguranças que as vezes nós programadores cometemos, mas temos que tomar muito cuidado com isso. Uma grande falha que cometemos é nos sistemas de login. Normalmente não fazemos algum esquema de segurança pra pelo menos dificultar o trabalho de alguns hakers que querem estragar o nosso site. Observe um código simples de autenticação de login:

$usuario = $_POST[‘usuario’]; 

$senha = $_POST[’senha’];  

$query_string = "SELECT * FROM usuarios WHERE codigo = ’$usuario’ AND senha = ’$senha’";

Só que tem um problema, caso alguém deixe em branco o usuário e coloque na senha o seguinte script:

 Usuário:

 Senha: ‘ or 1=’1

O servidor receberá os seguintes dados para o login:

$query_string = "SELECT * FROM usuarios WHERE codigo = ’ ‘ AND senha = ’ ‘ or 1=’1‘ ";

ou seja, esse comando vai voltar como TRUE ( VERDADEIRO ) e quem colocou o script poderá entrar autenticado com o login, pois 1 é igual a 1.

Para evitar isso temos diversas soluções:

Podemos eliminas espaços em branco das senhas com o comando ltrim. Exemplo:

$senha=ltrim($senha);

Outra solução é colocar barras sempre após as aspas simples com o comando addslashes().

Então até a proxima!

OutrosAugust 14, 2009 4:44 pm

 

Instruções Condicionais

O termo parece complicado mas na realidade não é. Instruções condicionais são usadas a todo o momento em programação. Basicamente, elas são usadas quando você checa se uma ou mais condições são verdadeiras.
se a senha estiver corréta então
permite que o usuário entre senão
diga ao usuário para ir embora
O uso das condicionais é similar ao que foi escrito anteriormente: checa se algo é verdadeiro ou falso através de testes com variáveis.

Dark BASIC Professional
SenhaReal$="entrar"
"note que a senha é case sensitive
input "Entre com a senha - ";Senhausuario$
if SenhaReal$=Senhausuario$
  print "Por favor, entre!"
else
  print "Senha incorreta. Saia!"
endif
wait key 

Se traduzir-mos "If" para língua portuguesa(Br) significa "Se" ( Condicional ), vamos traduzir o código á cima para brasileiro:

SenhaReal$="entrar"
"note que a senha é case sensitive
entrada "Entre com a senha - ";Senhausuario$
Se SenhaReal$=Senhausuario$
  Imprima "Por favor, entre!"
Se não
  Imprima "Senha incorreta. Saia!"
FimSe

Se você está mexendo com números e quiser saber se um é maior, menos ou diferente use > , <, , respectivamente.

Para Usar mais de uma condição utilize o operador AND, que quer dizer "e" em Brasileiro:

If a<b AND c<r
  h=1.6

Ainda, para economizar if’s, você pode usar o OR, que em brasileiro significa "ou". Exemplo, Se a=b ou c=d….

If a<b OR c<r
  h=1.6

 

OutrosAugust 10, 2009 3:56 pm


A linguagem escolhida para desenvolver-mos nosso jogo foi o DarkBasic PRO, infelizmente o programa utilizado para desenvolvimento é pago, mas no site do Desenvolvedor é oferecido um “Demo” para testes. O DarkBasic PRO é uma linguagem relativamente fácil, leve, mas muito poderosa, feita especialmente para desenvolvimento de jogos.

O primeiro jogo que iremos fazer será em 2D. Se você está se perguntando “O que é isso?” lá vem as definições:

2D – Duas dimensões, apenas as dimensões X e Y, ou seja você apenas controlará se o seu personagem vai pra frente ou pra traz, se vai pra cima ou pra baixo.

3D- Três dimensões, X, Y e Z, as quais exigem um conhecimento matemático maior com um domínio de modelagem grande.

 

Introduzindo o DarkBasic PRO:

 

Agora vamos aprender os primeiros comandos em DarkBasic, abra o programa e digite:

 

Print “Olá Mundo”

Wait key

 

Depois de Digitado isso pressione o botão F5 ou clique no botão executar e está ai. Vamos analisar o nosso programa:

 

Print “Olá Mundo” – O Print é um comando para escrever dados ou variáveis na tela

Wait key – Sem este comando você não iria conseguir ver a mensagem, pois o programa iria fechar automaticamente. Este serve para esperar que o usuário tecle alguma tecla para continuar o programa, não tendo nenhum código depois conseqüentemente ele encerrará o programa.

 

Vamos para a próxima parte, vamos começar a interagir um pouco mais com o usuário. Aprenderemos a como receber informações do usuário:

 

Input “Digite seu nome – ”; nome$

Print “Olá Sr(a)”

Print nome$

Wait key

 

Input “Digite seu nome – ”; nome$ - O input serve para fazer uma “pergunta” para o usuário, cuja a sintaxe é Input “Pergunta”; variável que será guardada a resposta lembrando que o DarkBasic PRO é Case Sensitive, ou seja diferencia maiúsculo de minúsculo.

 

Por Hoje é só,

Amanha postarei Algumas instruções condicionais e Loops

Até Mais

Imagens de Jogos Feitos em DarkBasic

 

 

 

OutrosAugust 9, 2009 2:38 pm

Estarei iniciando hoje uma série de posts relacionados a como criar jogos. Antes de começar já vou dizendo que não há número previsivel de posts para essa série.

emoticon

Na primeira parte vamos começar com a lógica de programação em jogos.

Primeira coisa que vocês devem saber: os jogos não são fáceis de fazer pois exigem uma enorme interatividade com o jogador, por isso não esperem fazer jogos parecidos com os dos gênios da EA games pois vão se desiludir, só por curiosidade, nesses jogos são envolvidos milhares de pessoas, desde desenvolvedores ( programadores ), modeladores ( game designer ), etc…

Softwares a serem utilizados:

Os softwares a baixo serão utilizados por programadores, ou seja aqueles que irão desenvolver a parte lógica dos jogos:

-DarkBasic

-C++

-Java

-C#

-Torque Script

-Unreal Script

-LUA

-Python

-RUBY

Estas são Algumas das linguagens mais comuns para jogos, agora veremos alguns modeladores, ilustradores, para fazer os gráficos do jogo:

-Photoshop

-Fireworks

-Flash

-Maya

-Blender

-3D Studio Max

-AutoCad

Essa é a primeira parte da nossa série, amanha tem outro, não deixem de conferir!!!

Até Amanha!

BlogBlogs.Com.Br