Ir para conteúdo

Nostradamus

Visconde
  • Total de itens

    338
  • Registro em

  • Última visita

Tudo que Nostradamus postou

  1. @Language Muito obrigado. E bom tutorial, vejo que está ajudando mesmo. Gostaria que respondesse minha MP e meu convite.
  2. @Language Quando eu fui atualizar, eu errei. Irei consertar e editar o post. Obrigado pela atenção.
  3. Bem útil o código e apesar de ser bem simples ajuda muitos. Quero só dar uma observação pelo código de habilitar e desabilitar que eu faço os mesmos no meu script. Seja bem vindo a XTibia.
  4. Na verdade o título do tutorial deveria ser configurando um site para accounts. Pois não ensina a criar um site mesmo.
  5. Editei o post explicando. Obrigado pela crítica construtiva.
  6. Esse código é bem simples e talvez pode ser útil. Primeiramente gostaria de agradeçer o VaL por dar uma ajudinha e me incentivar a criar algo do tipo. Vou logo avisando, esse code acessa todas as contas em sql para pegar o resultado, por isso, coloque no seu site se quiser. Primeiramente para você poder escolher habilitar ou não o code, adicione isso no seu config.php: <?php $censo = 1; //Caso queira desabilitar, apenas delete essa variável ?> Em seguida você caso não tenha crie um "conector" com sua database. No meu caso é o db.php: <?php$user="root"; //Usuario da db$pass=""; //Sua senha$db="otserv"; //Database$host="localhost"; //ip do server - caso voce seja o host deixe como está?> Agora vamos ao código. Crie um arquivo chamado censo.php, em seguida ponha: <?phprequire_once('config.php');if ($censo) { require('db.php'); mysql_connect($host, $user, $pass); mysql_select_db($db); // Consultas necessárias $cn['accounts'] = mysql_query("SELECT id FROM accounts"); $cn['players'] = mysql_query("SELECT id FROM players"); $tt['accounts'] = mysql_num_rows($cn['accounts']); $tt['players'] = mysql_num_rows($cn['players']); $total['accounts'] += $tt['accounts']; $total['players'] += $tt['players']; while ($row = mysql_fetch_assoc($cn['players'])) { @$voc[$row['vocation']] += 1; @$access[$row['group_id']] += 1; @$sex[$row['sex']] += 1; } for ($x = 1; $x < 10; $x++) { if(!isset($voc[$x])) $voc[$x] = 0; } for ($y = 1; $y < 5; $y++) { if (!isset($access[$y])) $access[$y] = 0; } for ($z = 1; $z < 3; $z++) { if (!isset($sex[$z])) $sex[$x] = 0; } echo 'Sorcerer: '.$voc[1].'<br>'; echo 'Druid: '.$voc[2].'<br>'; echo 'Paladin: '.$voc[3].'<br>'; echo 'Knight: '.$voc[4].'<br>'; echo "<br>"; echo 'Players: '.$player[0].'<br>'; echo 'Tutors: '.$player[1].'<br>'; echo 'Conseyllors: '.$player[2].'<br>'; echo 'Gamemasters: '.$player[3].'<br>'; echo 'Gods: '.$player[4].'<br>'; echo 'Admins: '.$player[5].'<br>'; echo "<br><br>"; echo 'Feminino: '.$sexo[0].'<br>'; echo 'Masculino: '.$sexo[1].'<br>'; echo "<br>";}else echo "Estatísticas desabilitadas";?> Bom agora para adicionar em uma página específica use o comando require_once Sintaxe: require_once('censo.php'); O resultado do código será: Players/Accounts: <Número de players/accounts do server> Sorcerer: <Número de sorcereres> Druid: <Número de druids> Paladin: <Número de paladins> Knight: <Número de knights> Players: <Número de players normais> Tutors: <Número de tutores> Conseyllors: <Número de conseyllors> Gamemasters: <Número de gamemasters> Gods: <Número de gods> Admins: <Número de admins> Femino: <Número de players femininos> Masculino: <Número de players masculinos> Caso o código esteja desabilitado, mostrará Estatísticas desabilitadas. O script estava muito mal feito, reescrevi todo o código.
  7. Achei que dará uma boa base apesar de estar meio vago. Quem realmente ler todos os tópicos dessa seção, com certeza aprenderá.
  8. @Caidera Você poderia nos mostrar como é em mirc scripting para mim editar o post.
  9. @Lydecker~ Depende do tipo de projeto que é. Leia minhas aulas, antes de aprender qualquer linguagem.
  10. @Eigenlieb Muito bom, vamos ver se os users se interessam.
  11. Muito bem, hoje vamos falar um pouco dessa ciência que vem ganhando espaço cada vez mais e se tornando totalmente indispensável para o mundo dos negócios. Antigamente as coisas eram tudo feitas em papel, passada em mãos e demoravam muito tempo para se concretizar, hoje em dia, com apenas alguns cliques você consegue poupar todo esse tempo que teria perdido assinando papéis e tudo mais. Mas como isso é possível? Resposta: PROGRAMAÇÃO Vivemos numa era onde o princípio dos negócios é a informação rápida e segura. Você já deve ter ouvido falar que se uma empresa de porte internacional desliga os computadores por algum tempo, perde milhões em dinheiro. Isso é verdade, as informações que essas empresas recebem são constantes e não podem de jeito nenhum serem interrompidas pois senão os prejuízos são incalculáveis. Imagine a seguinte situação: - Uma empresa de telefonia celular trabalha com um sistema que recebe automaticamente todos os dados de cada ligação feita, portanto quando você faz um telefonema pelo seu celular, o seu número, conta e tempo de ligação estão sendo guardados para poder ser feita a cobrança posteriormente. - Mas imagine se o sistema dessa empresa pára e todos começam e telefonar sem serem registrados? Todos estarão telefonando de graça e a empresa está perdendo o dinheiro de cada ligação que somadas geram muitos digitos. Esse é apenas um exemplo aonde a programação é utilizada para que os negócios sejam mais eficientes, rápidos e com muito mais lucro em menos tempo. Com isso podemos ver que as empresas estão cada vez mais trabalhando em cima da informática e precisando de profissionais para montar seus sistemas. Isso faz com que o mercado cresça ainda mais e facilita a concretização do tão sonhado emprego que todos queremos, e por se tratar de uma ciência complexa de alto nível, os profissinais nessa área recebem um belo salário que varia pela área específica dentro da informática. Vejamos alguns exemplos de profissionais em informática (resultado de pesquisa salarial da Catho): - Processamento de dados - de R$ 698,65 (operador) a R$ 5.252,50 (gerente) - Informática - de R$ 653,34 (operador) a R$ 12.961,32 (diretor) - Microinformática - de R$ 672,41 (operador) a R$ 5.257,01 (gerente) - Sistemas (projeto, desenvolvimento) - de R$ 965,75 (projetista) a R$ 9.977,95 (diretor) - Suporte técnico - de R$ 693,34 (operador) a R$ 6.337,61 (gerente) - Programação - de R$ 1.142,26 (técnico) a R$ 2.881,89 (supervisor) - Administração de Redes - de R$ 812,85 (operador) a R$ 4.444,18 (gerente) - Administração de Banco de Dados - de R$ 2020,15 (técnico) a R$ 7.093,01 (gerente) - Webdesign - de R$ 515,02 (estagiário) a R$ 1.526,09 (webdesigner) - Tecnologia da Informação - de R$ 1.082,44 (técnico) a R$ 12.508,89 (diretor) - e-commerce / e-business - de R$ 660,82 (estagiário) a R$ 8.337,89 (gerente) - Web development - de R$ 1.428,02 (assistente) a R$ 4.409,59 (supervisor) Conclusão O mundo da informática é imenso e cresce cada vez mais, o mercado de trabalho é muito amplo e com diversas subcategorias. Por que estudar isto? Porque "isto" é o futuro, "isto" é o presente e "isto" está em toda parte. Você domina a máquina e faz ela gerar lucros para você, o mundo é informatizado e você vai ficar de fora dessa? Obrigado pela atenção e fiquem de olho nas aulas.
  12. A matéria desse módulo é o Português Estruturado, que nada mais é do que uma tradução literal de linguagem de programação (normalmente baseada em Pascal). Visão Geral O português estruturado usa uma linguagem parecida com a dos índios "mim fazer isso, mim fazer aquilo" porém, voltada para a informática e é assim que iremos programar durante toda nossa vida ou até alguém criar uma maneira diferente de se escrever os nossos códigos. Ex: - Pegar primeiro número - Pegar segundo número - Resultado recebe primeiro número + segundo número - Mostrar resultado na tela Primeiros passos Assim como vimos nos tópicos anteriores, um código é chamado de Algoritmo, que seria a estrutura do nosso programa e é com ela que vamos trabalhar. No nosso primeiro algoritmo em português estruturado, vamos fazer uma calculadora simples com dois números e duas operações matemáticas (soma e subtração), após analisaremos o algoritmo: 01 | algoritmo calculadora 02 | variaveis 03 | num1: inteiro 04 | num2, operacao: inteiro 05 | resultado: real 06 | inicio 07 | escrever ( 'Digite o primeiro numero: ' ) 08 | ler ( num1 ) 09 | escrever ( 'Digite o segundo numero: ' ) 10 | ler ( num2 ) 11 | escrever ( 'Digite 1 para soma ou 2 para subtracao' ) 12 | ler ( operacao ) 13 | se operacao = 1 14 | entao resultado <- num1 + num2 15 | senao se operacao = 2 16 | entao resultado <- num1 - num2 17 | senao 18 | inicio 19 | escrever ( 'Voce escolheu uma operacao invalida.' ) 20 | sair_do_programa ( verdadeiro ) 21 | fim 22 | escrever ( 'O resultado da conta eh: ', resultado ) 23 | fim Analisando o algoritmo - Vamos começar observando a linguagem. É uma linguagem bastante simples e legível, qualquer um pode entendê-la se prestar um pouco de atenção aos detalhes. É escrita de cima para baixo ( algoritmo sequêncial ) e possui algumas palavras-chave ( em negrito ) que não podem ser usadas para declaração de variáveis, por exemplo. - Agora vamos analisar o espaçamento. Vocês todos devem estar acostumados com ferramentas como o Windows Explorer aonde você escolhe a pasta e quando acessa alguma subpasta, ela aparece logo abaixo e um pouco para a direita dando a impressão de que ela realmente está dentro da pasta mãe. Em algoritmos funciona exatamente da mesma maneira, você pode notar que algumas linhas estão mais a direita pois é uma estruturação feita para ser mais legível e para rápido entendimento de que um comando só funciona se seu "pai" for verdadeiro. Importante: não é necessário fazer dessa maneira mas para a boa prática e melhor organização do seu código, é recomendada essa estrutura de código. - Linhas. Como podem ver, eu coloquei linhas no código não só para explicar aqui mas porque elas são muito importantes na hora de verificar erros uma vez que o compilador poderá dizer muitas vezes um erro do tipo "Comando não finalizado adequadamente na linha 32" e isso nos quebra quando não temos uma contagem de linhas. Para que esse tipo de situação não aconteça, é sempre bom usar um editor que mostre as linhas do código ao lado. - Analisando linha a linha. Vamos ver agora como funciona nosso algoritmo começando pela linha 01, que é nada mais, nada menos do que a declaração do nome do nosso programa. Em seguida, na linha 02, usamos o comando para dizer pro compilador que começou a declaração de variáveis e ele entenderá que tudo embaixo desse comando até o início do programa são variáveis que serão usadas no programa. Na declaração de variáveis, você pode notar que estamos usando 4 variáveis sendo 3 do mesmo tipo e 1 de outro tipo, mas porque eu declarei a "num1" antes da "num2" e "operacao"? Porque foi minha vontade. Poderia ser uma de cada vez, todas juntas ou como eu bem entender, desde que sejam do mesmo tipo. Logo após declarar minha variáveis, eu usei o comando "inicio" que diz ao meu compilador que ali começa o corpo do meu programa (o que o computador deve fazer), tudo o que estiver abaixo deste comando e antes do último comando "fim" que se encontra na linha 23, será usado como comando no desenrolar do nosso programa. Nas linhas 07 até 22 estão meus comandos. Começo enviando mensagens ao usuário para que ele nos informe valores que serão armazenados nas variáveis usando os comandos "escrever" e "ler" (que fazem exatamente o que dizem). Para sabermos que tipo de operação matemática devemos fazer, pedimos para que o usuário digite 1 se quiser somar ou 2 se quiser subtrair e se for informado um valor diferente, o programa envia um erro e termina a execução (linhas 18 até 21 - será melhor explicado depois). Para que possamos obter um resultado, temos um teste que atribui a variável "resultado" a soma OU a subtração dos números e para isso usamos o símbolo "<-" que diz que tudo o que estiver a direita dele será executado e logo após será jogado na variável que está no lado esquerdo, portanto só é possível ter UMA variável no lado esquerdo enquanto no lado direito pode se ter um programa inteiro (desde que o valor final seja do tipo da variável da esquerda). Por fim mostramos ao usuário o resultado final. Algumas observações - Uma variável sempre terá um espaço na memória para seu valor mas se você atribuir mais de um valor, este será substituirá o antigo, então este será perdido. - Podemos escrever um programa inteiro sem enviar nenhuma mensagem para o usuário e na execução nada será visto. Isso é muito usado em rotinas que o usuário não precisa saber, coisas como uma manutensão de arquivos temporários. Exercícios Deixei para o final uma pequena lista de exercícios para quem quiser exercitar seus conhecimentos adquiridos até aqui. Devo lembrar que não existe nada melhor para um programador do que praticar a programação então aconselho tentar resolver os exercícios e por si próprios criar novos e resolver. Qualquer dúvida, de qualquer tipo, deve ser solicitada uma ajuda pois informática é uma ciência exata então dúvidas não podemos ter. 1) Acrescentar no algoritmo do tópico as operações de divisão e multiplicação. 2) Criar um algoritmo que leia a idade de 5 pessoas e diga quem é a mais velha e quem é a mais nova. 3) Criar um algoritmo que faça a fórmula de Baskara ao ser informada a fórmula x² - 2x - 8 = 0 Fórmula de Baskara: -b +- raiz(b² - 4ac) ---------------------------- 2a É isso ai galera, espero que apoveitem e desenvolvam seu raciocínio e aprimore seus conhecimentos na arte da programação.
  13. Olá a todos! Vamos continuar com o nosso estudo de lógica e começar a entrar no mundo da informática! Neste tópico vamos estudar um pouco sobre o que são variáveis e como usá-las, peças indispensáveis na programação.Você deve ter percebido na Aula 1 que eu destaquei certos textos em vermelho em informações adicionais, vou explicar o que são. Descrição técnica de Variáveis Variáveis e constantes, são espaços reservados na memória ram do computador para guardar informações que serão utilizadas durante o código do programa. Podem ter valores de diversos tamanhos e tipos, tais como números inteiros, números reais, caracteres, frases, enfim, diversas coisas. Descrição simples Imagine que você tem uma estante para guardar diversos livros, quando você compra os livros, os coloca na estante e quando quer ler um dele, o pega na estante... com o computador é a mesma coisa, a memória RAM é a estante e as variáveis e constantes são os livros, você cria elas (compra) e as joga na memória. Claro que o computador faz isso sozinho, você só precisa dizer o nome da variável e o tipo dela. Tipos de variáveis e contantes Existem alguns tipos básicos em todas as linguagens (com algumas exceções) e tipos que você mesmo pode criar, então os tipos de variáveis são infinitos mas vamos ver aqui os tipos básicos: - Inteiro: números que não possuem casas decimais, apenas a parte inteira e podem ser positivos ou negativos (ex: 1, 2, 67, 999) - Real: números que possuem casas decimais e também podem ser positivos, negativos e inteiros (ex: 1, 2.3, 5.7, 78) - para usar casas decimais é necessário usar PONTO ao invés de VÍRGULA - Caracter: nesse tipo, apenas um caracter pode ser armazenado que pode ser letra, número e até símbolos (dependendo da linguagem), de acordo com o padrão ASCII (ex: A, B, 7, J) os números serão interpretados como caracter então não terão compatibilidade com inteiros e reais. - String: esse é um tipo que existe em algumas lingagens e em outras existem algo parecido. Strings são espaços para você guardar palavras, frases e qualquer coisa que use vários caracteres (ex: isso é legal, palavra) Diferença entre variáveis e constantes São basicamente a mesma coisa mas um detalhe as faz serem totalmente diferentes. - Uma variável, como diz o nome, pode ter seu valor alterado, sendo assim, uma variável do tipo inteiro pode ter o valor 1 em determinada parte do programa e mais tarde pode receber o valor 7, por exemplo. - Uma constante, como diz o nome, recebe um valor no início do código e não poderá ser modificado posteriormente, se receber, por exemplo, o valor 3 no início então terá que ficar com esse valor até o final do programa. Exemplo prático usando 3 variáveis 1 - Declaração de variáveis 2 - a: inteiro 3 - b: inteiro 4 - c: real 5 - Início do programa 6 - a <- 13 7 - b <- 2 8 - c <- a / b 9 - mostra ( c ) 10 - Fim do programa Explicação do código linha 1: comando que determina aonde começa a declaração das variáveis linha 2: a variável 'a' está sendo declarada do tipo INTEIRO linha 3: a variável 'b' está sendo declarada do tipo INTEIRO linha 4: a variável 'c' está sendo declarada do tipo REAL linha 5: comando que determina aonde termina a declaração das variáveis e começa o corpo do programa linha 6: a variável 'a' recebe o valor 13 linha 7: a variável 'b' recebe o valor 2 linha 8: a variável 'c' recebe o valor da divisão de 'a' por 'b' (13 div 2) linha 9: comando que coloca na tela o valor da variável 'c' (6.5) linha 10: comando que determina o fim do programa - como podemos ver, existe uma área aonde você declara as suas variáveis para serem usadas durante o programa e por serem variáveis, podem ter seu valor modificado. - logo no início do programa atribuímos valores para as variáveis 'a' e 'b' e para a variável 'c' atribuímos o resultado de uma divisão de dois números inteiros mas que resulta em número decimal e por isso a variável 'c' foi declarada do tipo REAL - ao fim do programa é mostrado o resultado ao usuário, no caso 6.5 que é o valor da divisão de 13 por 2 Conclusão Este foi um exemplo simples mas eficaz para se entender o funcionamento de variáveis, que podem ser milhares (de acordo com a memória RAM disponível) e espero que todos tenham aproveitado e façam exercícios parecidos com esse, a partir do próximo passo do curso, teremos muita coisa para fazer.
  14. Bom o tópico é Programação Non-Open Tibia. Mas atualizei o post.
  15. Para o primeiro algoritmo, é desejável que o iniciante tenha lido o tópico deste fórum explicando como funciona um algoritmo e só então voltar aqui e fazer junto com a gente esse algoritmo. Descrição: Precisamos orientar um robô para trocar verificar a lâmpada da sala e se tiver queimada, a lâmpada deve ser trocada. Solução: - Início - Vá até a sala - Se a luz estiver desligada * Então: | - Vá até a chave | - Ligue a luz | - Se a luz não ascender | * Então: | | - Desligue a chave | | - Vá até a garagem | | - Pegue a escada | | - Volte para a sala | | - Abra a escada | | - Coloque a escada abaixo da lâmpada | | - Suba a escada | | - Retire a lâmpada | | - Desça a escada | | - Leve a lâmpada até o lixo | | - Coloque a lâmpada no lixo | | - Volte para a sala | | - Vá até o armário | | - Abra o armário | | - Pegue uma lâmpada nova | | - Feche o armário | | - Vá até a escada | | - Suba a escada | | - Coloque a lâmpada nova | | - Desça a escada | | - Vá até a chave | | - Ligue a luz | | - Se a luz ligou | | * Então: | | | - Está tudo ok | | * Senão: | | | - Procure o responsável | | | - Avise sobre o ocorrido | | - Vá até a escada | | - Feche a escada | | - Leve a escada até a garagem | | - Guarde a escada | | - Volte para a sala | * Senão: | | - Está tudo ok | - Vá até a chave | - Desligue a luz * Senão: | - Está tudo ok - Volte para o seu lugar - Fim Explicação do algoritmo: Vamos analisar agora o código. - Perceba primeiro que ele está como descrito no tópico falando o que são algoritmos, é uma sequência de comandos lidos de cima para baixo que devem ser obedecidos rigorosamente. - O algoritmo tem um Início e um Fim porque é uma lista de comandos FINITA - Veja que os comandos são bem detalhados, para ter certeza de que o robô vai fazer exatamente o que pedimos para ele fazer. - Algumas palavras estão em negrito porque são palavras-chave que marcam pontos estratégicos no nosso algoritmo para que o robô siga as instruções de acordo com o que estiver acontecendo, nesse algoritmo estamos usando uma estrutura de decisão com duas possíveis ocorrências (Se acontecer isso, faz aquilo, senão faz esse outro) - Por fim, veja que alguns comandos estão mais distantes dos outros (mais para a direita). Estes comandos estão dentro do bloco de ações que a decisão teve que tomar e só serão executados caso aconteça o que foi testado no SE, ou seja, se for verdadeiro. Para quem usa o Windows Explorer ou qualquer programa que demonstre uma árvore de diretórios parecido com o WE, já deve estar acostumado com uma estrutura parecida onde os diretórios mais a direita estão dentro dos outros diretórios. Exercício Escolha um dos exercícios abaixo(caso não saiba como fazer um ou outro) ou faça os dois(recomendado): - Faça um algoritmo que oriente um robô a fazer arroz tradicional. - Faça um algoritmo que oriente um robô a trocar o pneu de um carro. Boa prática. ________________________________________ Informação adicional Essas condições podem variar de linguagem para linguagem, veja aqui alguns exemplos: PHP Se = if Então = { Senão = else Final da condição = } Sintaxe: <? if ($variavel == "Alguma coisa") { $outravariavel = "Alguma coisa diferente"; } else { $outravariavel = "Alguma coisa diferente ainda"; } ?> ________________________________________ Visual Basic Se = if Então = then Senão = else Final da condição = end if Sintaxe: if text1.text = "Alguma coisa" then text2.text = "Alguma coisa diferente" else text2.text = "Alguma coisa diferente ainda" end if ________________________________________ C/C++ Se = if Então = { Senão = else Final de condição = } Sintaxe: if ( text == "Alguma coisa" ) { answer = "Alguma coisa diferente"; } else { answer = "Alguma coisa diferente ainda"; } ________________________________________ LUA Se = if Então = then Senão = else Final de condição = end Sintaxe: if text == "Alguma coisa" then answer = "Alguma coisa diferente" else answer = "Alguma coisa diferente ainda" end Bom, essas são as linguagens de que tenho conheçimento. Compare e veja a semelhança entre elas.
  16. Pelo que tenho notado, poucos são os desenvolvedores que utilizam frameworks de desenvolvimento e também não utilizam padrões de projeto para criar suas aplicações, não sei se é por falta de conhecimento ou vontade. O que é? Model View Controller,Modelo-Visão-Controlador ou mesmo MVC, é um padrão de arquitetura de aplicações que visa separar a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller). Permite que a mesma lógica de negócios possa ser acessada e visualizada por várias interfaces. MVC também é utilizado em padrões de projetos de software, entretanto, MVC abrange mais da arquitetura de uma aplicação do que é típico para um padrão de projeto. Pra que serve? Defender a separação dos tipos de dados para facilitar vários problemas que acontecem quando um programa é mal estruturado. Melhor padrão de desenvolvidmento para Web Pode se usar em qualquer lugar: Web, Desktop Porque usar? Reusabilidade de código Diminuição do tempo de desenvolvimento Fácil manutenção Alguns frameworks que trabalham com o padrão MVC: Django - Python Turbo Gears - Python Jakarta Struts - Java Zend Framework - PHP Symfony - PHP CakePHP - PHP Download de um exemplo Model View Controller Pattern 2.0
  17. Essa seção fora criada para uma integração geral de todas as linguagens, como funções em comuns e formas bem pareçidas de programar de uma linguagem para outra. Em geral, todas as linguagens possuem certas bases uma a outra, pois afinal tudo partiu de uma só. Você poderá postar aqui tutoriais, dar dicas a respeito de como fazer certos softwares, scripts, ou seja lá o que for. Como há uma interação global, você poderá pensar como fazer de acordo com as dicas dadas.É uma forma mais aproveitativa de se aprender, do que pegar códigos prontos.Além disso, com o conheçimento médio de uma linguagem, dá para se entender certas coisas em outras linguagens. Por exemplo, temos linguagens bem pareçidas como o C/C++ que se assemelha bastante do PHP e o Visual Basic que é bem pareçido com o ASP. Com isso, a lógica de programação seria uma forma inusitada de se aprender programação.
  18. Bem elaborado. Servirá de exemplos para futuros NPCS.
  19. @Claverockz O XML tem como função principal servir como uma espécie de banco de dados, assim como o access, o dbase, o Oracle, e o MySQL.
  20. Irei mostrar exemplos como essa poderosa ferramenta que é a Biblioteca GD pode fazer. Folha <?php$width = 1600;$height = 1200;$canvas = imagecreatetruecolor($width,$height);$white = imagecolorallocate($canvas,255,255,255);imagefill($canvas,0,0,$white);for ($n=1;$n<255;$n++) { $green[$n] = imagecolorallocatealpha($canvas,0,$n,0,105);}$max = 80000;$p1 = 79;$p2 = 89;$p3 = 98;$x = 0;$y = 0;for ($n=0;$n<$max;$n++) { $p = rand(0,100); $xt = $x; if ($p < $p1) { $x = (0.85*$x)+(0.04*$y)+0.075; $y = (-0.04*$xt)+(0.85*$y)+0.18; } elseif($p < $p2) { $x = (0.20*$x)-(0.26*$y)+0.4; $y = (0.23*$xt)+(0.22*$y)+0.045; } elseif($p < $p3) { $x = (-0.15*$x)+(0.28*$y)+0.575; $y = (0.26*$xt)+(0.24*$y)-0.086; } else { $x = 0.5; $y = 0.16*$y; } $diameter = rand(1,15); imagefilledellipse($canvas, $width-($width*$x), $height-($height*$y), $diameter, $diameter, $green[(100*$y)+(155*$x)]);}$i = imagecreatetruecolor($width/2, $height/2);imagecopyresampled($i, $canvas, 0, 0, 0, 0, ($width/2), ($height/2), $width, $height);header("Content-type: image/png");imagepng($i);?> Copie o código e veja o resultado. Preview: Texto com sombra <?php $title = "XTibia"; //Texto a ser colocado $source = imagecreatetruecolor(600,36); $white = imagecolorallocate($source,255,255,255); imagefill($source,0,0,$white); $black = imagecolorallocate($source,0,0,0); imagettftext($source,20,0,2,24,$black,"fontes/BAUHS93.TTF",$title); $image = gaussian_dropshadow($source); $black = imagecolorallocate($source,0,0,0); imagettftext($image,20,0,2,24,$red,"fontes/BAUHS93.TTF",$title); header("Content-type: image/png"); imagepng($image); function gaussian_dropshadow($original,$x_offset=4,$y_offset=4,$alpha=80) { $gauss_fact = array(1,2,4,8,16,24,16,8,4,2,1); $gauss_width = count($gauss_fact); $gauss_sum = array_sum($gauss_fact); $c = 0; $m_offset = floor($gauss_width/2); $temp1 = imagecreatetruecolor(imagesx($original)+($m_offset*2),imagesy($original)+($m_offset*2)); $white = imagecolorallocate($temp1,255,255,255); imagefill($temp1,0,0,$white); imagecopy($temp1, $original, $m_offset, $m_offset, 0, 0, imagesx($original),imagesy($original)); for ($y=0;$y<imagesy($temp1);$y++) { for ($x=0;$x<imagesx($temp1);$x++) { $t1 = imagecolorat($temp1,$x,$y); $p[$x][$y]['r'] = ($t1 >> 16) & 0xFF; $p[$x][$y]['g'] = ($t1 >> 8) & 0xFF; $p[$x][$y]['b'] = $t1 & 0xFF; $p1[$x][$y]['r'] = 255; $p1[$x][$y]['g'] = 255; $p1[$x][$y]['b'] = 255; } } $sumr=0; $sumg=0; $sumb=0; $w = imagesx($original); $h = imagesy($original); for($i=$m_offset;$i<$w+$m_offset;$i++){ for($j=$m_offset;$j<$h+$m_offset;$j++){ $sumr=0; $sumg=0; $sumb=0; for($k=0;$k<$gauss_width;$k++){ $xt = $i-(($gauss_width-1)>>1)+$k; $r=$p[$xt][$j]['r']; $g=$p[$xt][$j]['g']; $b=$p[$xt][$j]['b']; $sumr+=$r*$gauss_fact[$k]; $sumg+=$g*$gauss_fact[$k]; $sumb+=$b*$gauss_fact[$k]; } $p1[$i][$j]['r'] = $sumr/$gauss_sum; $p1[$i][$j]['g'] = $sumg/$gauss_sum; $p1[$i][$j]['b'] = $sumb/$gauss_sum; } } $temp2 = imagecreatetruecolor(imagesx($original),imagesy($original)); $white = imagecolorallocate($temp2,255,255,255); imagefill($temp2,0,0,$white); $w = imagesx($temp2); $h = imagesy($temp2); for($i=$m_offset;$i<$w+$m_offset;$i++){ for($j=$m_offset;$j<$h+$m_offset;$j++){ $sumr=0; $sumg=0; $sumb=0; for($k=0;$k<$gauss_width;$k++){ $xy = $j-(($gauss_width-1)>>1)+$k; $r=$p1[$i][$xy]['r']; $g=$p1[$i][$xy]['g']; $b=$p1[$i][$xy]['b']; $sumr+=$r*$gauss_fact[$k]; $sumg+=$g*$gauss_fact[$k]; $sumb+=$b*$gauss_fact[$k]; } $col = imagecolorallocatealpha($temp2,$sumr/$gauss_sum,$sumg/$gauss_sum,$sumb/$gauss_sum,$alpha); imagesetpixel($temp2,$i-$m_offset+$x_offset,$j-$m_offset+$y_offset,$col); } } return $temp2; }?> No caso eu usei a fonte BAUHS93.TFF encontrada na pasta fontes. Baixe ela clicando aqui. Preview Atualizarei assim que fazer mais.
  21. Vale ressaltar a presença de Héliton também.
  22. Este tutorial ensina a fazer um newsletter que, pra quem não sabe é um sistema ao qual o user cadastra seu e-mail e periódicamente recebe notícias do site pelo e-mail. Esse sistema pode ser usado em OTServers por exemplo. Primeiramente vamos fazer um form para o newslatter: <form action="<?php echo"$PHP_SELP";?>"method="POST"><table border="1" width="100%"><tr> <td>nome:</td> <td><input type="text" name="nome" size="20"></td></tr><tr> <td> </td> <td><input type="text" name="e-mail" size="20"></td></tr></table><p align="center"><input name="funcao" type="radio" vallue="1">Adicionar <input name="funcao" type="radio"vallue="e">Remover</p><p align="center"><input type="submit" value="Enviar"></p></form>// $PHP_SELF , o mesmo que a pagina atual Agora vamos criar uma tabela no banco de dados MySQL para o newslatter: CREATE TABLE news ( id bigint(20) unsigned NOT NULL auto_increment, nome varchar(60) NOT NULL default 'sem nome', email varchar(150) NOT NULL default 'sem e-mail', PRIMARY KEY (id), UNIQUE KEY id (id,email)) TYPE=MyISAM; Agora vamos trabalhar com o formulário enviando dados para a tabela certa: <? // conecta ao banco de dados$conexao=$mysql_connect("server","user","password");// seleciona o base de dados$db=mysql_select_db("banco",$conexao);// coleta as informações do formulário$nome=$_POST['nome'];$email=$_POST['email'];$fu=$_POST['func'];// verifica se a fução é 1, se for adiciona n bancoif($fu==1){// verifica o tamanho do e-mail para ver se é valido if(strlen($email)>=8 &&strlen($email) <=150){ $email_tam_valido=true; //conecta a base de dados $ss=mysql_query("SELECT * FROM new WHERE email='$email'"); $ma=mysql_fetch_row($ss); // verificar se o e-mail já existe if($email!==$ma[2]){ $mail_certo=true; }else{ $mail_certo=false; $erros[]="E-mail ja existe!!!"; } //verifica se o e-mail é válido if (eregi("^[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+.@.[-!#$%&\*+\\/0-9=?A-Z^_`a-z{|}~]+\..[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+$", $email)) { $mail=true; }else{ $mail=false; $erros[]="Email Inválido"; } }else{ $email_tam_valido=false; $erros[]="Email deve ser de 8 a 150 caracteres"; } // virifica se todos acima esta ok if($email_tam_valido&&$mail_certo&&$mail){ // verifica de os campos não estão em brancoif(!empty($nome)||!empty($email)){// faz a query com o banco para insersão de dados$sql=mysql_query("INSERT INTO new (nome,email) VALUES ('$nome','$email')");// retorna a mensagem de sucesso se deu tudo certo($sql)? print("<div align=\"center\">sucesso ao inserir $nome</div>") : print("Erro ao inserir $nome ");}}else{// cria uma array com as mensagens de erro e exibindo no navegador caso não passe pela checagemforeach($erros as $msg){echo"<div align=\"center\">$msg</div>";}}// verifica se a função é 2 para deletar o registro especificado}elseif($fu==2){// faz a query para deletar o registro do banco$sql=mysql_query("DELETE FROM new WHERE email='$email'");// retorna a mensagem de erro ou sucesso($sql)? print("<div align=\"center\">Deletado com Sucesso!!</div>") : print("E-mail não Existe");}?> Bom, deu para ter uma base. Espero ter ajudado.
  23. @Caidera E aí quanto tempo em? Aqui é Nostradamus. @Topico É bom lembrar que o Caideira tinha saído e voltou. Tinha um também que tinha slipknot no nick que foi moderador, só não lembro o nome.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...