Desejo um ótimo novo ano a todos ..

Venho criar este post para desejar um ótimo ano a todos leitores e amigos que acessam o blog. Espero que tenham um ano de sucesso, amizades e que vos deem muita alegria!




Abraços a todos!

(PHP) Bloco de Notas em PHP

Criei uma coisa legal em php que nos permite fazer um pequeno bloco de notas em php :)


Observe o código php:

<?php

$arquivo = "arquivo.txt"; // especificar o arquivo

if(isset($_POST['texto']) ) // Checar se há algum texto novo para salvar no arquivo
{

$texto = stripslashes($_POST['texto']); // Poder aceitar aspas

$arquivoAberto = fopen($arquivo, "w"); // abrir arquivo

if(!$arquivoAberto || !fwrite($arquivoAberto, $texto)) // checar se está tudo certo
{
echo "Arquivo não salvo !!!<br/>";
}
else
{
echo "Arquivo salvo !!!<br/>";
}


fclose($arquivoAberto); // fechar arquivo

}



echo "<form name=form method=post>"; // criar formulário para botão de salvar arquivo

echo "Digite o texto para salvar no arquivo: <br /><textarea name=texto rows=25 cols=80 style='overflow-x: scroll; overflow-y: scroll'>";

echo file_get_contents($arquivo);// imprmir conteúdo do arquivo dentro do text area

echo "</textarea><br/><input type=submit value='Salvar Arquivo' /></form>";

?>

Assim faz um simples sistema de editar textos em php :) Espero que apreciem ..


Abraços

(Outros) Gerador de Seguidores Twitter LANÇADO!

EDITADO EM AGOSTO de 2012 Ferramenta obsoleta. Não servirá mais para uso.

(Outros) Gerador de Seguidores Twitter

EDITADO EM AGOSTO de 2012 Ferramenta obsoleta. Não servirá mais para uso.

(Delphi) Alterar Memory Address (memória)

Saudações! :)

Este código aqui serve para alterar o endereço de memória de um determinado programa através do nome do exe !!

Segue aqui o código:
unit Unit1;
interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, tlhelp32, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;

procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;


implementation
{$R *.dfm}


function GetProcessID(Const ExeFileName: string; var ProcessId: integer): boolean;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := false;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32);
while integer(ContinueLoop) <> 0 do begin
if (StrIComp(PChar(ExtractFileName(FProcessEntry32.szExeFile)), PChar(ExeFileName)) = 0)
or (StrIComp(FProcessEntry32.szExeFile, PChar(ExeFileName)) = 0) then begin
ProcessId:= FProcessEntry32.th32ProcessID;
result := true;
break;
end;
ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;


procedure TForm1.Button1Click(Sender: TObject);

var valorEndereco, retornoEscrita: Cardinal;
var processoId, tempProcess: integer;

begin
if GetProcessID('EXECUTAVEL.exe', tempProcess) then
begin

valorEndereco := $a; // NOVO VALOR PARA O ENDERÇO

processoId := OpenProcess(PROCESS_ALL_ACCESS, False, tempProcess);

// ========================

WriteProcessMemory(processoId, Pointer($00AA6A34), @valorEndereco, Sizeof(valorEndereco), retornoEscrita); // $00AA6A34 em HEXADECIMAL ($ = 0x)

// ========================

closehandle(processoId);
end else

begin
MessageDlg('Abra o programa primeiro', mtwarning, [mbOK],0);
end;
end;

end.

Criadores
Criado por Bruno da Silva

Obs:
GetProcessID (eu modifiquei a partir dela)

Abraços


(Javascript) arrayInArray

Saudações!

Seguindo os posts anteriores, criei uma função para checar se há ARRAY em ARRAY.

Segue a função:

function arrayInArray(hayArray, staArray)
{

var fixString = staArray.toString();

for(var key in hayArray) if((fixString.indexOf(hayArray[key])) != -1) {
return true;
}

return false;
};

É meio difícil de entender, mas vamos lá

Digamos que eu tenha array1 e array2:

ARRAY1
ELEMENTO 0 -> "A"
ELEMENTO 1 -> "B"
ELEMENTO 2 -> "C"

ARRAY 2
ELEMENTO 0 -> "D"
ELEMENTO 1 -> "O"
ELEMENTO 2 -> "A"

Ele irá retornar TRUE. Pois o elemento 0 e 2 tem os mesmos valores, entenderam? Ele compara valores dentro dela.

Assim podendo criar funções legais. Do tipo:


function haveLowerChar(str)
// Checar se tem caracter MINUSCULO na string
// Retorna true e false
{
return arrayInArray((str.split("")), ("abcdefghijklmnopqrstuvwxyz".split("")));
}

Viram? Simples, mas eficiente.

Espero que gostem. Abraços

(Javascript) inArray

Saudações!

Criei aqui uma função que procurar elementos na array


function inArray(needle, array)
{
return ((array.toString()).indexOf(needle)) ? true : false;
};

Está acima funciona rapidamente, porém é pouco limitada. Também podemos usar esta, que é mais completa:


function in_array(needle, array)
{
for (var key in array) if(array[key] === needle) {
return true;
}

return false;
};

Abraços

(PHP) Código fonte do admin-find

Segue aqui o trecho de código do sistema de admin find postado alguns dias no blog



function url_exists($url)
{

$handle = curl_init($url);
if (false === $handle)
{
return false;
}
curl_setopt($handle, CURLOPT_HEADER, false);
curl_setopt($handle, CURLOPT_FAILONERROR, true);
curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox
curl_setopt($handle, CURLOPT_NOBODY, true);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
$connectable = curl_exec($handle);
curl_close($handle);
return $connectable;
}

if(isset($_GET['url']))
{
$arraySite = parse_url($_GET['url']);
$site = $arraySite['scheme'] . "://" . $arraySite['host'] . '/';

$try = explode("\n", str_replace("%EXT%", "php", file_get_contents('admins.txt')));

$buffer = " ";
$achou = 0;
foreach($try as $buffer)
{
if(url_exists($site . $buffer))
{
echo " Site encontrado: $site$buffer";
$achou = 1;
break;
}
ob_flush();
flush();
}
if(!$achou)
{
echo " Nenhum site foi encontrado!";
}
}

O admin.txt é o site das urls, funciona como uma wordlist

Espero que gostem. Abraços!

(C) Delimitando com sscanf (token)

Saudações!

Como alguns sabem, podemos fazer delimitar string com uso de sscanf! Assim não necessitando ser separado por espaço, como eramos acostumados

Segue o exemplo
#include
#include

int main()
{

char output1[3];
char output2[3];
char *input = "oi,io";
sscanf(input, "%[^','],%[^','], %s", output1, output2);

printf("%s -> %s \n", output1, output2);

return system("pause");
}

Observe que "oi e io" estão divididos por uma virgula, como separa-los? Simples. Na parte format do sscanf em vez de colocar:

%s%s

Colocaremos o seguinte:

%[^','],%[^','], %s

Quando ',' será nosso delimitador e %s indicará que a saída será string.

Estou um pouco com pressa, por este motivo a explicação foi rápida. Se tiverem dúvidas coloquem nos comentários (ajuda bastante no blog), eu sempre respondo ..

Abraços!

(VB.NET) Listar conexões

Saudações!

Este código lista as conexões do Windows. Criado em VB.NET. Segue o trecho

Imports System.Net
Imports System.Management
Module Module1

Sub Main()

Dim conexoes As New ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapter")

For Each mo As ManagementObject In conexoes.Get()

Console.WriteLine(mo("Name").ToString())

Next

Console.ReadLine()

End Sub
End Module


Também adicione a referência:
Project -> Add Ref -> .NET -> System.Maganement.

Abraços!

(Assembly) Swap para Pascal

Saudações!

Estudando Assembly descobri uma forma legal de se fazer swap (troca de valores nas variáveis) usando apenas asm em pascal

Segue o trecho do código:

procedure TForm1.Button1Click(Sender: TObject);

var X, Y: DWORD;
begin
// Valores antes do swap
X := 10;
Y := 05;

asm // Parte em Assembly

mov edx, [x]
mov ebx, [y]


mov dword ptr [x], edx
mov dword ptr [y], ebx

end;

// Valores trocados
ShowMessage('VALOR X ->' + IntToStr(X));
ShowMessage('VALOR Y ->' + IntToStr(Y));
end;

É uma forma padrão de swap, porém é usado em assembly que passa os valores para pascal.

O sistema usa endereços temporários, no caso são ebx e edx. Os endereços assumem os valores de Y e X que posteriormente são trocados passando o valor as variáveis em pascal.


(Outros) Sistema de procurar página

Este sistema busca a página de administração de um determinado website. Muito simples e eficiente para quem deseja encontrar uma página de login sem precisar estar procurando no google :)





* Testado apenas em Chrome !!

Demonstração:


Abraços

(Outros) Twitter Tools (atualizado 07/02/2012)

A POSTAGEM FOI ATUALIZADA DATA 12/01/2012
Para quem estava procurando por ferramentas no twitter segue alguns links:



Sources:

Agora só arrumar listas que contenham logins do twitter no formato:

LOGIN:SENHA
LOGIN:SENHA

Para conseguir senhas, pegue este meu programa que gera senhas!
http://www.brunodasilva.com.br/2012/02/outros-gerador-de-lista-de-twitters.html


Nosso bot está diariamente indexando novas páginas com estas ferramentas, então este post é atualizado periodicamente, não esqueça de nos visitar novamente
Abraços!

(Batch) Strlen em Batch

Encontrei uma função para strlen em batch na internet. Muito interessante e bem eficiente.

O uso dela é muito simples.

Segue o exemplo:
@echo off

call :strlen "teste"
echo A palavra "TESTE" tem exatamente %ERRORLEVEL% caracteres

PAUSE

:strlen
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set __LEN=0
set __LEN_S=%~1
:strlen_loop
if "!__LEN_S!"=="" exit /B %__LEN%
for %%Q IN (32 16 8 4 2) DO if NOT "!__LEN_S:~%%Q!"=="" set /A __LEN=!__LEN!+%%Q&set __LEN_S=!__LEN_S:~%%Q!&goto :strlen_loop
set /A __LEN=!__LEN!+1&set __LEN_S=!__LEN_S:~1!&goto :strlen_loop


Função retirada do site -> https://gist.github.com/1185398

Abraços

(Batch) Extrair em String (substr)

Uma dica legal que muitos devem saber é que em batch podemos usar algo parecido com strsub em php.


Observe
set str=String para extrair
echo %str:~0,6%

Irá retornar a string do caractere 0 ao caractere 6. Sendo assim retorna:

-> String

Outro exemplo:

set str=String para extrair
echo %str:~7,5%
Irá retornar após o caractere 6, 5 caracteres,Sendo assim retorna:

-> Para

Simples não é?
Espero que gostem. Abraços

(Javascript) Pegar posição do elemento

Esta função é para quem tem dificuldades em pegar a posição do elemento dentro da página (observem o sistema de Proximo Post que fiz ..)


Segue o código:

function getElementCursorPos(obj) {
var curtop = 0;
if (obj.offsetParent) {
curtop = obj.offsetTop
while (obj = obj.offsetParent) {
curtop += obj.offsetTop
}
}
return curtop;
}

Ele pega a posição em altura. Caso quiser lados mude Top pra Heigth


(Pascal) Mudar Endereço de Proxy

Saudações!

Criei aqui uma função que muda o endereço de proxy atraves do registro no windows. Espero que gostem a função é bastante eficiente

function setInternetProxy(proxy:string);

var registroWindows : TRegistry;

begin

registroWindows := TRegistry.Create;

registroWindows.OpenKey('Software\Microsoft\Windows\CurrentVersion\Internet Settings', false);

registroWindows.WriteBool('ProxyEnable', true);
registroWindows.WriteString('ProxyServer', proxy);


registroWindows.CloseKey;
registroWindows.Free;

end;


Exemplo de uso:
setInternetProxy('127.0.0.1:80');

Desenvolvido por Bruno da Silva



(PHP) twitterLogin e twitterTweet

Vendo fóruns e funções velhas do orkut consegui refazer uma função para logar no twitter e até mesmo dar tweets. Bem fácil.


Segue código:
function twitterLogin($email, $password)
{

$ch = curl_init();
curl_setopt_array($ch, Array(
CURLOPT_URL => 'https://mobile.twitter.com/session/new',
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true)
);

$response = curl_exec($ch);
preg_match("/_mobile_sess=[^\s]+/", $response, $_mobile_sess);
preg_match("/name=\"authenticity_token\" type=\"hidden\" value=\"([^\"]+)/", $response, $authenticity_token);
curl_setopt_array($ch, Array(
CURLOPT_URL => 'https://mobile.twitter.com/session',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_COOKIE => $_mobile_sess[0],
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POSTFIELDS => 'authenticity_token=' . $authenticity_token . '&username=' . trim(rawurlencode($email)) . '&password=' . trim(rawurlencode($password)),
CURLOPT_HEADER => true)
);

$response = curl_exec($ch);

preg_match("/k=[^\s]+/", $response, $k);
preg_match("/_mobile_sess=[^\s]+/", $response, $mobile);
preg_match("/oauth_token=[^\s]+/", $response, $oauth);
curl_close($ch);

return $k[0] . $mobile[0] . $oauth[0];
}

function twitterTweet($login, $senha, $tweet)
{
$cookies = twitterLogin($login,$senha);

$ch = curl_init();

curl_setopt_array($ch, Array(
CURLOPT_URL => 'http://mobile.twitter.com/' . $login,
CURLOPT_COOKIE => $cookies,
CURLOPT_RETURNTRANSFER => true)
);

$response = curl_exec($ch);
preg_match("/name=\"authenticity_token\" type=\"hidden\" value=\"([^\"]+)/", $response, $authenticity);
$ch = curl_init();

curl_setopt_array($ch, Array(
CURLOPT_URL => 'http://mobile.twitter.com/',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_REFERER => 'mobile.twitter.com/',
CURLOPT_COOKIE => $cookies,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_POSTFIELDS => '&tweet[text]='.$tweet.'&authenticity_token=' . $authenticity[1] . '&last_url=%2F' . rawurlencode($login))
);

preg_match('/href="([^\"]{0,500})/i', curl_exec($ch), $href);
return ($href[1]==="http://mobile.twitter.com/");
}

(Pascal) 4shared Music Downloader

Fiz um sistema de downloader para músicas do 4shared


Demonstração:

Ele também acelera bastante o download.

Código fonte:
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, XPMan, ExtCtrls;

type
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ProgressBar1: TProgressBar;
Label1: TLabel;
IdHTTP1: TIdHTTP;
IdHTTP2: TIdHTTP;
XPManifest1: TXPManifest;
Label2: TLabel;
LinkLabel1: TLinkLabel;
procedure Button1Click(Sender: TObject);
procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
AWorkCountMax: Int64);
procedure IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
arquivo, url: string;
i: integer;
MyFile: TFileStream;
begin
Label1.caption := 'Status: Inicializando';
url := IdHTTP2.Get(edit1.text);

i := pos('preview.mp3', url);

arquivo := '';
Label1.caption := 'Status: Procurando Link';
While (url[i] <> '=') Do
Begin
arquivo := url[i] + arquivo;
i := i - 1;
End;
arquivo := arquivo + 'review.mp3';

MyFile := TFileStream.Create('musica baixada.mp3', fmCreate);
try
IdHTTP1.Get(arquivo, MyFile);
finally

MyFile.Free;
end;

ShowMessage('Música baixada. Confira na pasta do programa!');
end;

procedure TForm2.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64);
begin
ProgressBar1.Position := AWorkCount;
end;

procedure TForm2.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
ProgressBar1.Position := 0;
ProgressBar1.Max := AWorkCountMax;
Label1.caption := 'Status: Em andamento';
end;

procedure TForm2.IdHTTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := ProgressBar1.Max;
Label1.caption := 'Status: Concluído';
end;

end.





Download:


Desenvolvido por Bruno da Silva

(Javascript) Retornar dias decorridos (subtração de datas)

Saudações!


Fiz uma função simples em Javascript para pegar a data atual e subtrair com uma data anterior. Fazendo está subtração irá retornar o número de dias passados desde a data.


Segue o código da função:

function contarDias(dia, mes, ano)
{
return ((new Date(new Date().getFullYear(), new Date().getMonth() + 1, new Date().getDate())).getTime() - (new Date(ano, mes, dia)).getTime()) / 86400000;
}

Aqui um exemplo:
alert("Desde: 09/10/2009 \nForam decorridos " + contarDias(9, 10, 2009) + " dias");

Espero que gostem!

Abraços


[Javascript] Codificar em Brainf*ck

Saudações!

Criei um sistema para codificar textos em brainf*ck utilizando javascript. Bem eficiente :)
O sistema é simples, segue o código

var encode = "texto teste";

for(var i in encode)
{
for(var loop = 0; loop < encode.charCodeAt(i); ++loop)
{
document.write('+');
}
document.write('.[-]');
}

A variável ENCODE é responsável pelo texto a ser codificado.

Abraços

(Javascript) Pegar todos elementos da página

Saudações!

Para pegar todos elementos de uma determinada tag em javascript é muito simples. Bastando usar getElementsByTagName que irá retorna uma array com todos elementos encontrados. Depois e só acessar um por um!


Exemplo:

Pegar todos links:
var links = document.getElementsByTagName('a');
for(link in links)
{
alert('Achei o link -> ' + links[link]);
}

Pegar todas imagens:

var images = document.getElementsByTagName('img');
for(image in images)
{
alert('Achei a imagem -> ' + images[image].src);
}


Enfim, espero que tenham gostado.

Abraços

(ColdFusion) fileContent

Muitos devem não saber mas a função fileContent (similar a função file_get_contents do php) pega o conteúdo de um site ..


<cfhttp url="http://www.brunodasilva.com.br">
<cfoutput>
#cfhttp.filecontent#
</cfoutput>


É um bom sistema pois pode funcionar como um sistema de proxy (legal não é). Pois é o servidor que faz a requisição para levar ao usuário. Não usuário que faz a requisição direto ao site :)

(ah eu comprei o novo teclado, o antigo ficou meio, digamos, cafezado)

É isto. Espero que tenham gostado.


Abraços

(ColdFusion) Uso de variáveis

Saudações!

O uso de variáveis em ColdFusion é extremamente essencial (na grande maioria das linguagens é)

Para fazer variáveis em ColdFusion basta usar a tag cfset

Por exemplo:
<cfset myString="http://www.brunodasilva.com.br/">

Então para poder acessar a variável (pelo que vi) basta colocar o nome dela entre dois #.

Por exemplo:
<cfset myString="http://www.brunodasilva.com.br/">
<cfoutput>#myString#</cfoutput>

Enfim. É isto que compreendi em ColdFusion hoje :)

Abraços


(ColdFusion) Iniciando na Linguagem #2

Saudações!


Esta é a segunda parte do tutorial em como iniciar com ColdFusion (existem poucos tutoriais do tipo. Mas vamos lá)

Após instalar o Railo. Vá em

http://127.0.0.1/


Caso abrir uma página da print abaixo, parabéns, você conseguiu rodar o Railo com sucesso.


Caso deu certo acima, vamos agora criar uma página de teste em ColdFusion
Após tudo instalado e aberto, vá para o seguinte endereço do computador

C:\railo\tomcat\webapps\ROOT\

Lá você encontrará vários arquivos. Imediamento crie um arquivo com o nome ARQUIVO.cfm e adicione o seguinte trecho de código ao arquivo:


Então salve o ARQUIVO.CFM e vá para seu navegador de internet para o endereço:


http://127.0.0.1/ARQUIVO.cfm

Caso aparecer o texto com o endereço do meu blog. Parabéns, você conseguiu rodar uma página em ColdFusion em seu computador.

Caso tenha gostado deste tutorial adicione o site ao +1, ajuda bastante ao publicar.
Também não se esqueça de comentar em caso de dúvidas ou sugestões.

Até o próximo artigo!

Abraços

(ColdFusion) Iniciando na linguagem #1

Saudações!

Farei está aula relacionada e ColdFusion (que irei tentar aprender hoje). Antes de tudo vamos baixar o sistema que executa ela.

Bem para garantir o post de hoje. Eu vou ensinar como instalar Railo para ColdFusion (é como um Easy PHP para PHP). Ele serve para executar as páginas


Estou fazendo está aula agora porque derrubei café em meu teclado. Então antes que ele termine de funcionar pretendo terminar está aula. Primeiramente apenas faça o seguinte

Vá no site do Railo

Faça o download conforme seu computador.
Agora instale o Railo. Ele pedirá uma senha para o Servidor. Coloque está senha e guarde ela pois será necessária para configurar futuramente
Antes do termino da instalação lembre-se de marcar a opção de iniciar automático.

Se você tiver o IIS instalado (para páginas ASP) lembre-se de desativa-lo ..
Provavelmente no próximo tutorial ensinarei algum código. Até lá!

Abraços

(ASP) Criar arquivos em ASP (função)

Mexendo com ASP criei uma função legalzinha aqui para criar arquivos de forma rápida e otimizada.


A função é simples. Custa menos de 3 linhas, mas é eficiente.

Lembre-se de colocar o caminho do arquivo a ser criado. Em caso de o arquivo já existir ela deleta de cria novamente (limpando o arquivo). Por isto tome cuidado.

Segue o código da função:
function createFile(file)
' Função criada por Bruno da Silva
createObject("scripting.filesystemobject").CreateTextFile(file).close()
end function

O uso dela não tem segredos. Basta usar por exemplo:
createFile("C:\Inetpub\wwwroot\nomearquivo.extensao")

Espero que seja útil. Mantenha os créditos!
Abraços

(ASP) Sistema de Login Simples

Aqui vai um simples sistema de login criado totalmente em ASP (tem html para formulários claro)

É meu segundo projeto em ASP. Comecei a mexer agora pela noite.

Segue o código:


Então é isto galera. Espero que tenham gostado. Lembrem-se de mudar o login e a senha

Criado por Bruno (Eu)..

Abraços.

(ASP) Contador de Visitas em ASP

Estou iniciando com ASP, achei muito similar a PHP em questão de execução.


Em questão de código me lembra bastante Basic. De qualquer forma fiz um projeto simples para mostrar como é fácil e intuitiva ASP.

É bastante dinâmico apesar de ser server side. Por isto me lembra várias coisas rsrs

Comecei com ASP hoje. Se tiver algo errado comunique-me por comentário.

Segue um sistema de contador de visitas simples para um site

<%

' Nome do arquivo para armazenar as visitas
filePath = request.serverVariables("APPL_PHYSICAL_PATH") & "teste.txt"
' Abrir arquivo para leitura
set openArquivo = createObject("scripting.filesystemobject").OpenTextFile(filePath)

' Ler número de visitas antigas
visitas = openArquivo.readAll()+ 1

' Imprimir na tela o número das novas visitas
response.write(visitas)

' Fechar arquivo
openArquivo.close()

' Abrir arquivo novamente
set openArquivo = createObject("scripting.filesystemobject").CreateTextFile(filePath)
' Escrever no arquivo o novo número de visitas
openArquivo.write(visitas)

' Fechar arquivo
openArquivo.close()
%>

Não se esqueça de criar o arquivo teste.txt na pasta do servidor.
Coloquei os comentários para ajudar no entendimento do código.


Espero que tenham gostado.
Em breve novas postagens relacionadas a ASP. Grande abraço!


(PHP) Curso básico -Variáveis e Condicionais #3

Nesta vídeo aula explico detalhadamente como fazer uma variável e usar condicionais de forma simples!


Veja

Abraços

(Javascript) Detectar se Javascript está ativo.

Bom. Muitas pessoas fazem diversas gambiarras para checar se o navegador do usuário suporta Javascript ou está ou não habilitado.


Para isto existe uma tag especial. Chamada NOSCRIPT o conteúdo desta tag é mostrado quando o javascript encontra desabilitado ou não suportado no navegador do cliente.

É muito simples. Vejam um exemplo

< noscript >
Para acessar este site é necessário ter Javascript habilitado. Verifique as configurações do seu navegador ou instale um navegador atualizado
< / noscript >

Nota: Retirem o espaço da tag.

Espero que tenham gostado :)

(Outros) Detectar Posts Blogspot

Este sistema detecta o novo post do blog através de Jquery. Bem dinâmico.


Por exemplo você está lendo este texto agora. Caso eu for e postar no blog algum post. Irá aparecer um aviso lá encima dizendo que há um novo post. Estilo Twitter, Orkut.

Tudo com RSS do blog, PHP para ler os mesmos e Javascript para detectar se o PHP indica novos artigos.

Veja o vídeo demonstrando o sistema:

Em breve o tutorial.

Comentem, ajuda bastante o blog!

(Tutorial) Liberando portas do modem

Bom. O tutorial é bem antigo (AINDA do meu canal antigo do youtube)


Mesmo assim tá valendo. Segue um tutorial de como liberar as portas do modem usando D-LINK 500b

(Javascript) Scroll Automatico 2

Como prometido. Eu iria lançar a versão 2 do sistema de Scroll Automatico (estilo jQuery. Animação)

Como pode ver. Cumpri minha promessa. Segue aqui o código da versão 2

function getScrollSize()
{
this.maxY = 'scrollMaxY' in window ? window.scrollMaxY : document.getElementsByTagName("body")[0].scrollHeight - document.getElementsByTagName("body")[0].clientHeight;
this.maxX = 'scrollMaxX' in window ? window.scrollMaxX : document.getElementsByTagName("body")[0].scrollWidth - document.getElementsByTagName("body")[0].clientWidth;
return true;
}



function autoScroll(tempo, to) {


alert(document.getElementsByTagName("body")[0].style.maxHeight);
if (window.pageYOffset < to) {
scrollInterval(((window.pageYOffset + to) / (tempo / 25)), 1, to);
} else {
scrollInterval(((window.pageYOffset - to) / (tempo / 25)), 0, to);
}
return true;
}

function scrollInterval(y, baixo, max) {

if (baixo && window.pageYOffset < max) {
setTimeout(function () {
scrollInterval(y, baixo, max);
}, 25);

scrollTo(0, window.pageYOffset + y);
}

if (!baixo && window.pageYOffset > max) {
setTimeout(function () {
scrollInterval(y, baixo, max);
}, 25);

scrollTo(0, window.pageYOffset - y);
}

return true;

}

Qual a diferença?
Nesta versão o scroll também move pra baixo. Também foram arrumado bug de limites e precisão no cálculo para "scrollar"

O uso é praticamente o mesmo da versão anterior:
autoScroll(tempo, to)
tempo = Tempo em milésimos de segundos para movimentar o scroll até TO, que será o ponto de chegada

Espero que tenham gostado. Abraços

Função de Auto Scroll por Bruno da Silva

(PHP) Curso básico - Liberando Easy PHP #2

Nesta vídeo aula (desta vez sem aquela narração chata). Eu fiz rapidamente para apenas mostrar como liberar o Easy PHP para acesso externo.


Basicamente precisa clicar com botão direito ao lado do relogio no Easy PHP ir em Configuration e Apache. Então irá abrir um arquivo. Neste arquivo você deverá procurar por LISTEN. Abaixo deste Listen você coloca Listen PORTA A LIBERAR

Segue o vídeo:


Abraços

(Javascript) Calcular tempo de download

Fiz uma função aqui para calcular o tempo de download de um arquivo em javascript. Fico bem eficiente. Ela calcula de segundos a dias com precisão e colocando até os zeros na frente para dar um melhor estilo relogio ..


Basicamente basta você dar 2 informações e ela lhe retorna com um alert contendo o tempo de download.

Segue a função:
function getTimer(kBytes, Download)
{
var segundos = Math.round(kBytes / Download);
var minutos = Math.round((segundos - (segundos % 60)) / 60); segundos = Math.round(segundos % 60);
var horas = Math.round((minutos - (minutos % 60)) / 60); minutos = Math.round(minutos % 60);
var dias = Math.round((horas - (horas % 60)) / 24); horas = Math.round(horas % 24);

segundos = segundos < 10 ? "0" + segundos : segundos, minutos = minutos < 10 ? "0" + minutos : minutos, horas = horas < 10 ? "0" + horas : horas;

alert("Download será finalizado em " + (dias > 0 ? dias + " dias, " + horas + " horas, " + minutos + " minutos e "+ segundos + " segundos" : horas > 0? horas + " horas, " + minutos + " minutos e "+ segundos + " segundos" : minutos > 0 ? minutos + " minutos e " + segundos + " segundos" : segundos > 0 ? segundos + " segundos" : "em menos de 1 segundo"));
}

O modo de uso é simples. Basta fazer o seguinte:
getTimer(1000, 128);

Um arquivo de 1000 kb a 128 kbps

Simples não é? É isto galera. Abraços

Função criada por Bruno da Silva


(Javascript) Pegar máximo tamanho scroll bar

Após alguns minutões tentando fazer uma gambiarra para pegar o tamanho máximo para rolagem da scroll. Consegui


Mas como assim gambiarra? No Firefox tem uma função própria para isto, que se chama window.scrollMaxX e window.scrollMaxY porém é apenas no Firefox (¬¬)


Então após alguns minutos consegui uma função que funciona-se ao menos no Chrome, Opera e talvez no Internet Explorer (não testei lá ainda)




Que qualquer forma. Segue trecho do código:


function getScrollSize()

{

this.maxY = 'scrollMaxY' in window ? window.scrollMaxY : document.getElementsByTagName("body")[0].scrollHeight -


document.getElementsByTagName("body")[0].clientHeight;

this.maxX = 'scrollMaxX' in window ? window.scrollMaxX : document.getElementsByTagName("body")[0].scrollWidth -


document.getElementsByTagName("body")[0].clientWidth;

return true;

}


Então o modo de uso da função é o seguinte:


var scroll = new getScrollSize();


alert(scroll.maxX);

alert(scroll.maxY);


Mas também se pode acessar a classe diretamente


alert(new getScrollSize().maxX);

alert(new getScrollSize().maxY);


É isto galera. Espero que tenham gostado o post.


Ah, eu postei isto, porque estou fazendo a segunda versão do sistema de scroll automático. Então por ventura tive este problema para pegar o máximo do scroll-y e max scroll-x


Abraço


Criado por Bruno da Silva

(Javascript) Efeito Scroll Automático (sem jquery)

Aqui um sistema de scroll automático sem utilizar jQuery! (aquele scroll que simula o scroll subindo. Perfeito)


Infelizmente ele não é muito preciso. Porém é fácil de usar.
A precisão pouco falha é devido aos calculos que fiz. Dependendo da maquina o atrasado ao executar código poderá fazer com que a precisão seja um pouco alterada. De 1 a 2 segundos. Mas não importa.

Segue o código:


function autoScroll(tempo, to)
{
return scrollInterval(((window.pageYOffset - to)/ (tempo / 25)) );
}

function scrollInterval(y)
{
if(0 >= window.pageYOffset) return ;

setTimeout(function() {
scrollInterval(y);
}, 25);

scrollTo(0, window.pageYOffset - y);
}

Modo de Uso:
Basta usar a função autoScroll.
autoScroll(TEMPO PARA CHEGAR, LOCAL PARA CHEGAR);

Digamos. Eu coloco 2000 ms para chegar até o ponto 0 de barra (até o topo)
autoScroll(2000, 0);

Dica: Caso queira visualizar o efeito apenas clique na imagem topo logo ao lado aqui no blog. Implementei o código no blog :)

Nota: Infelizmente este ainda não anda para baixo. Mas prometo que na próxima versão da função implementarei.

É isto galera. Espero que tenham gostado.

Função criada por Bruno da Silva


(Javascript) Pegar todos elementos da página

Uma dica muito legal em javascript é pegar todos elementos de uma determinada tag em javascript. Para pega-los basta usar

var elementos = document.getElementsByTagName('div');
for(atual in elementos)
{
alert(elementos[atual].style)
}

É bem simples o getElementsByTagName irá retornar uma array com todos objetos encontrados. O for serve para percorrer um loop em ELEMENTOS (quer seria nossa array).
Também se pode acessar da seguinte maneira

elementos[0] -> Irá pegar o primeiro elemento

Enfim, esta é a dica de hoje. Desculpem estar meio ausente nas postagens, estou tentando manter a média de 1 post por dia.