-
Total de itens
4.466 -
Registro em
-
Última visita
Tudo que Beraldo postou
-
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();
-
Use strftime() em conjunto com setlocale(). ;) Abraços, Beraldo
-
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
-
É qu eo fórum separa a palavra javascript, por questões de segurança. Junte-a. ;)
-
Use a função date(). Ex: $data = "2007-05-18"; echo date("d/m/Y", strtotime($data)); Abraços, Beraldo
-
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
-
Mas cadê o código JavaScript para abrir a tal janela? OBS: Não há por que desistir. Seja persistente. ;) Abraços, Beraldo
-
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
-
Como você está fazendo para selecionar os dados da notícia? Poste o código. Movendo para PHP Abraços, Beraldo
-
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
-
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
-
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
-
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
-
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
-
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
-
Buscar E Alterar Um Dado Em Todo O Banco De Dados
pergunta respondeu ao Lucas Phillip de Beraldo em MySQL
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 -
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
-
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
-
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
-
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.
-
Poste a consulta SQL utilizada. ;) Abraços, Beraldo
-
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
-
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
-
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
-
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