Ir para conteúdo
Fórum Script Brasil

Beraldo

Veteranos
  • Total de itens

    4.466
  • Registro em

  • Última visita

Tudo que Beraldo postou

  1. Beraldo

    Data E Hora

    Você pode criar uma função e chamá-la onde você quiser: setlocale(LC_ALL, "potuguese-brazil", "ptb", "pt", "pt-br", "brazilian-portuguese"); function Agora() { return strftime("%A, %d de %B de %Y, %H:%M"); } echo Agora();
  2. Beraldo

    Data E Hora

    Use strftime() em conjunto com setlocale(). ;) Abraços, Beraldo
  3. Beraldo

    Php E Javascript

    Por nada, parceiro! :D Só reforçando o que eu disse antes: não desista com tanta facilidade. Tente pensar na solução. Se não achá-la, poste as dúvdas no fórum, que provavelmente você conseguirá uma resposta. ;) Abraços, Beraldo
  4. Beraldo

    Php E Javascript

    É qu eo fórum separa a palavra javascript, por questões de segurança. Junte-a. ;)
  5. Beraldo

    Data Do Banco De Dados

    Use a função date(). Ex: $data = "2007-05-18"; echo date("d/m/Y", strtotime($data)); Abraços, Beraldo
  6. Beraldo

    Php E Javascript

    Passe o id da notícia como parâmetro da função JS Notícia: function noticia(id) { window.open('noticiapronta2.php?id=' + id,'Notícia','width=750,height=475,top=0,left=0'); } E para chamar a função: <a href="java script: noticia(<?php echo $id_da_noticia; ?>)"> <?php echo $titulo ?></a> Abraços, Beraldo
  7. Beraldo

    Php E Javascript

    Mas cadê o código JavaScript para abrir a tal janela? OBS: Não há por que desistir. Seja persistente. ;) Abraços, Beraldo
  8. Beraldo

    Formatações

    Já tentou desta forma? Select t1.*, t2.* From tabela1 as t1 Inner Join tabela2 as t2 on t1.id = t2.id Order By t1.destaque, t2.nome; Nesse caso os dados são ordenados segundo campos de duas tabelas. Não sei se funciona. Teste aí e diga se deu certo :) Abraços, Beraldo
  9. Beraldo

    Php E Javascript

    Como você está fazendo para selecionar os dados da notícia? Poste o código. Movendo para PHP Abraços, Beraldo
  10. Beraldo

    Formatações

    Você pode ordenar primeiuro pelo número, depois pela ordem alfabética, desta forma: Select * From tabela Order By campo_destque, nome; A ordenação será feita primeiro pelo campo INT depois alfabeticamente. ;) Abraços, Beraldo
  11. Beraldo

    Admin Para Meu Site

    Ao meu ver, não existe uma maneira definida de como se criar uma área administrativa. Isso varia conforme o tipo do site, o conteúdo do mesmo, etc. Para começar a estudar PHP, recomendo o curso do pessoal do iMasters: http://forum.imasters.com.br/index.php?showforum=159 E conforme forem aparecendo as dúvidas, visite-nos. :D Abraços, Beraldo
  12. Beraldo

    Data E Hora No Bd Com Php

    Só uma dica: a função NOW(), do MySQL, retorna a data atual no formato adequado. Insert into tabela (camp_do_tipo_datetime) Values (NOW()); ;) Abraços, Beraldo
  13. Beraldo

    Olá

    Seja bem-vinda ao Fórum. :D Esperamos que você aprenda muito aqui e repasse seus conhecimentos aos demais usuários. ;) Moverei seu tópico para Outros Assuntos. Abraços, Beraldo
  14. Tente assim: Select * from tabela Order By data_acesso DESC LIMIT 1 ; Os registros serão ordenados descrescentemente segundo a data de acesso. Então será selecionado somente um registro, que será o de data mais próxima à atual. Teste aí e diga se funcionou. ;) Abraços, Beraldo
  15. Nunca vi nada pronto destinado a isso. Você terá de montar um log de acesso ao banco. Estes links podem-lhe ser úteis: http://br2.php.net/manual/pt_BR/language.c....predefined.php http://br2.php.net/manual/pt_BR/ref.dir.php Abraços, Beraldo
  16. Opa, beleza e você? :D Creio que não seja possível fazer isso com um só comando. Você terá de alterar tabela por tabela. :( Uma saída mais adequada seria você, em vez de inserir o nome do usuário nas outras tabelas, inserir o ID dele, pois essa informação nunca mudará. Nesse caso, bastaria alterar o nome do usuário na tabela em que esse dado foi armazenado. ;) Abraços, Beraldo
  17. Que pena, será uma grande perda. :( Mas se você acha melhor sair, vai lá e faça o que for mais importante. As portas estarão sempre abertas para você. Quando quiser voltar, é só avisar. :D Sucesso e saúde para você! E sempre venha nos visitar aqui. ;) Abraços, Beraldo
  18. Muito estranho mesmo. Sinceramente, não tenho idéia do que pode estar acontecendo. Nunca tive esse problema nem vi alguém o alegando anteriormente. Faça o seguinte: tente novamente instalar seguindo as orientações do Fabyo: http://forum.imasters.com.br/index.php?showtopic=125190 Abraços, Beraldo
  19. Olá, pessoal. :D Recentemente desenvolvi uma classe para trabalhar ocm autenticação por imagens, e hoje estou disponibilizando-a aqui para quem estiver interessado(a) em usá-la. :) Os caracteres da imagem são gerados usando algumas fontes True Type presentes no diretório de fontes, cujo nome é especificado na propriedade $fonts_dir da classe ImgAuth. O código est´[a com vários comentários, mas se alguém tiver alguma dúvida, pode perguntar. Vou postar primeiro a Classe depois posto os exemplos de uso. class.img_auth.php => arquivo com a classe responsável por todas as ações do sistema <?php ############################################# # # # Autor: Roberto Beraldo Chaiben (Beraldo) # # E-Mail: rbchaiben[arroba]yahoo.com.br # # # ############################################# /**************************************** * * * Desenvolvido para PHP 5.0 ou superior * * * ****************************************/ /* Esta classe se destina à criação de sistema de autenticação por imagem. Ela possui funções (métodos) para a criação da imagem, armazenagem do código gerado em uma variável de sessão e comparação entre o código digitado e o armazenado na sessão. */ class ImgAuth { //tipo da imagem (jpg, gif ou png) private $img_type = "png"; //array com as cores utilizadas. Esse array é preenchido na função SetColors() private $colors = array(); //array com cores de fundo e de estilização, não usadas no código gerado na imagem. Array preenchido na função SetColors() private $style = array(); //retorno da função imagecreate() private $im; //largura da imagem private $img_width = 300; //altura da imagem private $img_height = 100; //código gerado na imagem. Essa propriedade é gerada na função CodeRand() private $code = ""; //número de caracteres do código gerado private $code_lenght = 5; //amostra. Todas as letras e números que serão utilizados para gerar o código. Esse array é preenchido na função SetSample() private $sample = array(); //nome do diretório das fontes True Type que serão utilizadas private $fonts_dir = "fonts/"; //array com as fontes True Type do diretório de fontes. Esse array é preenchido na função SetFonts(). private $fonts = array(); /* void __construct([string img_type]) Realiza as ações necessárias para inicializar o sistema de autenticação. O parâmetro opcional 'img_type' define o tipo da imagem. Ele pode conter um destes valores: - 'jpg' ou 'jpeg' -> cria uma imagem JPEG - 'gif' -> cria uma imagem GIF - 'png' -> cria uma imagem PNG * Se não for especificado um valor, adotar-se-á o tipo definido na propriedade $img_type da classe. */ public function __construct($img_type = NULL) { if (!$this->CheckFontsDir()) { echo "<p>Erro. Função <strong>". __FUNCTION__ ."()</strong>: O diretório das fontes não foi encontrado ou ele não é um diretório válido.</p>"; return false; } $this->im = imagecreate($this->img_width, $this->img_height); //define o tipo da imagem $this->SetImgType(strtolower($img_type)); //preenche o array $fonts com as fontes do dirertório de fontes $this->SetFonts(); //preenche o array $colors com algumas cores que serão utilizadas para gerar o código na imagem $this->SetColors(); //cria a amostra de caracteres disponíveis para a geração do código $this->SetSample(); } /* void SetImgType(string img_type) Define o tipo da imagem, conforme o valor de 'img_type'. */ private function SetImgType($img_type) { switch ($img_type) { case "gif": $this->img_type = "gif"; break; case "png": $this->img_type = "png"; break; case "jpg": case "jpeg": $this->img_type = "jpg"; break; } } /* bool CheckFontsDir() Verifica se o diretório das fontes True Type é válido. */ private function CheckFontsDir() { //adiciona uma barra ao final do nome do diretório de fontes, se não existir if (substr($this->fonts_dir, -1) != "/") { $this->fonts_dir .= "/"; } //verifica se o diretório existe e se realmente é um diretório válido if (!file_exists($this->fonts_dir) || !is_dir($this->fonts_dir)) { return false; } return true; } /* bool SetFonts() Lê o diretório das fontes e adiciona em $fonts o nome das fontes True Type contidas nele. */ private function SetFonts() { //abre o diretório de fontes $open = opendir($this->fonts_dir); while (false !== ($file = readdir($open))) { if ($file == "." || $file == ".." || is_dir($this->fonts_dir . $file)) continue; //identifica a extensão do arquivo $ext = strtolower(end(explode(".", $file))); //ttf = extensão de arquivos de fontes True Type if ($ext != "ttf") continue; //adiciona a fonte ao array $fonts $this->fonts[] = $file; } closedir($open); } /* void SetColors() Gera o array com as cores utilizadas na imagem. */ private function SetColors() { //cor de fundo $this->style['bg'] = imagecolorallocate($this->im, 0xC0, 0xC0, 0xC0); //cor das linhas do fundo $this->style['darkgray'] = imagecolorallocate($this->im, 0x90, 0x90, 0x90); //cores para se utilizarem no código da imagem $this->colors['black'] = imagecolorallocate($this->im, 0, 0, 0); $this->colors['blue'] = imagecolorallocate($this->im, 0, 0, 255); $this->colors['darkblue'] = imagecolorallocate($this->im, 0, 0, 200); $this->colors['red'] = imagecolorallocate($this->im, 255, 0, 0); $this->colors['darkred'] = imagecolorallocate($this->im, 200, 0, 0); $this->colors['green'] = imagecolorallocate($this->im, 0, 255, 0); $this->colors['darkgreen'] = imagecolorallocate($this->im, 0, 200, 0); $this->colors['yellow'] = imagecolorallocate($this->im, 255, 255, 0); $this->colors['navy'] = imagecolorallocate($this->im, 0x00, 0x00, 0x80); $this->colors['darknavy'] = imagecolorallocate($this->im, 0x00, 0x00, 0x50); } /* void SetSample() Gera a amostra de letras e números utilizada para gerar o código. */ private function SetSample() { //letras minúsculas $letras_min = range("a", "z"); //letras maiúsculas $letras_mai = range("A", "Z"); //números. Não usaremos o zero pois ele pode ser confundido com a letra O. $nums = range(1, 9); //retira algumas letras que possam gerar confusões unset($letras_min[array_search("l", $letras_min)]); unset($letras_min[array_search("o", $letras_min)]); unset($letras_mai[array_search("I", $letras_mai)]); unset($letras_mai[array_search("O", $letras_mai)]); //array com todas as letras e números que utilizaremos $this->sample = array_merge($letras_min, $letras_mai, $nums); } /* void ImgHeader() Adiciona o cabeçalho da imagem, conforme o valor da propriedade $img_type. */ public function ImgHeader() { switch ($this->img_type) { case "jpg": header("Content-Type: image/jpeg"); break; case "gif": header("Content-Type: image/gif"); break; case "png": header("Content-Type: image/png"); break; } } /* void ImgBg() Desenhas linhas no fundo (background) da imagem, para dificultar a leitura do código por partes de robôs (bots). */ public function ImgBg() { //posição X da primeira linha $w = 10; while ($w < $this->img_width) { $x_s = rand($w, $this->img_width); $x_f = rand($w, $this->img_width); //desenha uma linha obliqüa no sentido decrescente imageline($this->im, $x_s, 0, $x_f, $this->img_height, $this->style['darkgray']); //desenha uma linha orizontal imageline($this->im, 0, $w, $this->img_width, $w, $this->style['darkgray']); $w += 20; $x_s = rand(0, $this->img_width); $x_f = rand(0, $this->img_width); //desenha uma linha obliqüa no sentido crescente imageline($this->im, $x_s, 0, $x_f, $this->img_height, $this->style['darkgray']); } } /* void CreateImg() Gera a imagem e a destrói, encerrando o script. */ public function CreateImg() { //armazena o código gerado em uma variável de sessão $this->StoreCodeInSession(); switch ($this->img_type) { case "jpg": imagejpeg($this->im, '', 95); break; case "gif": imagegif($this->im); break; case "png": imagepng($this->im); break; } imagedestroy($this->im); } /* string CodeRand() Gera o código. */ private function CodeRand() { $string = $this->sample[array_rand($this->sample)]; $this->code .= $string; return $string; } /* void SetImgCode() Escreve o código na imagem. */ public function SetImgCode() { //cria o fundo da imagem $this->ImgBg(); //posição Y do código na imagem $y = round($this->img_height / 1.4); //tamanho da fonte $size = round($this->img_height / 2.2); //posição X inicial $w = -5; for ($i = 0; $i <= $this->code_lenght; $i++) { //sorteia um caractere $code = $this->CodeRand(); //sorteia uma cor $color = $this->colors[array_rand($this->colors)]; //sorteia uma fonte $font = $this->fonts_dir . $this->fonts[array_rand($this->fonts)]; //define uma angulação para o caractere $angle = rand(-12, 12); //adiciona o caractere à imagem imagettftext($this->im, $size, $angle, ($w + 20), $y, $color, $font, $code); //aumenta o valor de $w, para ser utilizado no próximo caractere $w += 43; } } /* void StoreCodeInSession() Armazena na sessão o código gerado. */ private function StoreCodeInSession() { //se não houver uma sessão inicializada, inicia-a if (!isset($_SESSION)) { session_start(); } $_SESSION['auth_code'] = $this->code; } /* bool CodeCompare(string inputed_code, bool case_sensitive) Esse método verifica se o valor de inputed_code (código digitado pelo visitante) é igual ao gerado na imagem e armazenado na sessão. Retorna TRUE se os código forem iguais; caso contrário retorna FALSE. O parâmetro case_sensitive define se a verificação deve diferenciar maiúsculas de minúsculas. Por padrão, esse argumaneto tem o valor TRUE. Se você quiser que a verificação ignore a diferença entre maiúsculas e minússculas, defina o valor desse parâmetro para FALSE. */ public function CodeCompare($inputed_code, $case_sensitive = true) { //retira caracteres diferentes de letras e números $inputed_code = preg_replace("/[^0-9a-zA-Z]/i", "", $inputed_code); $input = ($case_sensitive === false) ? strtolower($inputed_code) : $inputed_code; $auth_code = ($case_sensitive === false) ? strtolower($_SESSION['auth_code']) : $_SESSION['auth_code']; if ($input == $auth_code) { return true; } else { return false; } } } ?> img.php => arquivo responsável por gerar a imagem. Ele atuará como uma imagem propriamente dita <?php require_once "class.img_auth.php"; $Im = new ImgAuth(); $Im->ImgHeader(); $Im->SetImgCode(); $Im->CreateImg(); ?> index.php => um arquivo HTML comum (coloquei .php somente porque costumo usar um arquivo de inicialização de sistema, sendo necessário manter a index com extensão PHP) com um campo para digitar o códifgo e a tag img onde será mostrada a imagem dinâmica. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Formulário</title> </head> <body> <form method="post" action="auth.php"> <p>Digite no campo abaixo o código que aparece na imagem a saeguir. <strong>O sistema diferencia letras maiúsculas de minúsculas, ou seja "a" é diferente de "A".</strong></p> <input type="text" name="code" /> <br /><br /> <img src="img.php" alt="" /> <br /><br /> <input type="submit" value="Enviar" /> </form> </body> </html> * Notem que no src da tag img coloquei o arquivo img.php. Lembram-se de que eu disse que o img.php atuaria como uma imagem propriamente dita? De fato, atuará. ;) :D auth.php => Arquivo responsável por receber o código digitado e compará-lo com o armazenado na sessão <?php session_start(); require_once "class.img_auth.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Autenticação</title> </head> <body> <?php $Im = new ImgAuth(); if ($Im->CodeCompare($_POST['code'])) { echo "<h2 style=\"color: blue;\">Código correto!</h2>"; session_destroy(); } else { echo "<h2 style=\"color: red;\">Erro. Código incorreto!</h2>"; session_destroy(); } ?> </body> </html> No mesmo diretório em que ficarão esses arquivos, crie um diretório para armazenar as fontes True Type e divirta-se. :D Deixarei um exemplo completo em anexo. Download do arquivo Abraços, Beraldo
  20. Parece que está tudo certo. Como é o erro 404, talvez você tenha colocado o arquivo no diretório errado. Você definiu o diretório raiz como C:\root. Foi nesse diretório que você colocou o arquivo PHP? Para acessá-lo pelo navegador você diigitou http://localhost/arquivo.php? Se fosse erro de configuração, provavelmente o arquivo seria baixado (seria aberta a janela de download) em vez de dar o erro 404.
  21. Poste a consulta SQL utilizada. ;) Abraços, Beraldo
  22. Beraldo

    Ajuda Com O Codigo

    Aparentemente está correto. Acho que não deveria estar ocorrendo esse erro... :blink: Não poderei fazer testes aqui pois já estou atrasado para ir para a aula.. hehe Mas uma saída mais simples e usando menos linhas é utilizando a função file_get_contents(), ;) http://br.php.net/file_get_contents Abraços, Beraldo
  23. No http.conf que uso está assim: LoadModule php5_module "C:/PHP/php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "C:/PHP" No LoadModule eu coloquei o arquivo "php5apache2_2.dll" pois é o Apache 2.2. Se fosse o Apache 2.1, seria "php5apache2.dll". O meu php.ini está no diretório C:\PHP. Para que o sistema reconheça o php.ini, o diretório C:\PHP deve estar no path do sistema. Por isso o Fabyo pede para criar aquelas variáveis do sistema. É assim que está seu httpd.conf? Se não, poste essa parte para vermos como está. Abraços, Beraldo
  24. Tente colocar uma página HTML simples no diretório raiz do Apache para ver se você consegue acessá-la pelo navegador. Se funcionar corretamente, reveremos as configurações do módulo PHP do Apache. Se não funcionar, instalaremos desde o início novamente. :D Teste aí e poste o resultado. Abraços, Beraldo
  25. Beraldo

    Ajuda Com O Codigo

    Primeiramente, bem-vindo ao fórum, Fred Neves. :D Poste o código inteiro. Veja também: http://br.php.net/filesize http://br.php.net/fread Abraços, Beraldo
×
×
  • Criar Novo...