Sistema de Newsletter - Parte 2 Autor: Marcelo Souza Ramos Data de publicação: 27/03/2007 Parte do Tutorial: 1 Quantidade de Visualização: 3157

Coluna Dreamweaver - Sistema de Newsletter Parte 2
Introdução
Vamos criar as páginas para receber as informações vinda do formulário e os comandos reponsáveis em executa o cadastro ou remoção do endereço de e-mail cadastrado no banco de dados.

Pré-requisito
Ter lido a primeira parte de tutorial

Conteúdo
Abra a página config.php para fazemos a conexão com o banco de dados Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Vamos criar uma página para efetuar conexão com o banco de dados e depois apenas incluila nas outras páginas, faço isso para evitar ter que criar uma conexão em cada página. Para fazer uma conexão com o banco de dados devemos dentro do bloco de código do PHP informar o endereço do servidor mysql ($host) depois o usuário desse servidor ($usuario), a senha do usuário ($senha) e o nome do banco de dados ($banco) depois utilizar o comando conectar do PHP para mandar se conectar (mysql_connect) e o comando selecionar para pode selecionar o banco de dados (mysql_select_db) desejado. /* configuraçõesmysql */ $host = "localhost"; /* endereço do servidormysql */ $usuario = "usuario"; /*usuario do banco de dados */ $senha = "senha"; /* senha do banco de dados */ $banco = "banco"; /* nome do banco de dados onde estão os emails*/ mysql_connect($host,$usuario,$senha);

mysql_select_db($banco); Pronto nossa conexão com o banco de dados esta feita agora feche essa página e abra a página enviar_email.php. A página enviar_email.php vai ser responsável por enviar os e-mails de confirmação de cadastro ou remoção do e-mail. Para isso vamos fazer a inclusão da classe smtp.class.php que vai realizar a conexão e autenticação SMTP para que os e-mails possam ser enviados ao usuário que esta fazendo a solicitação. Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Dentro do Bloco de código vamos fazer a inclusão da classe smtp.class.php através do comando include <?php include ("smtp.class.php"); ?> Com a classe já incluída agora vamos configurar a conexão SMTP, primeiro vamos iniciar uma nova conexão (new), depois informar de um endereço do servidor (host), usuário (user) e senha (pass) e informar que será ativada a autenticação (debug). Para fazer a configuração basta apenas declarar o valor das variáveis com os seus dados. <?php include ("smtp.class.php"); /* Configuração da classe.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /*host do servidor SMTP */ $smtp = new Smtp($host); $smtp->user = "usuario"; /*usuario do servidor SMTP */ $smtp->pass = "senha"; /* senha dousuario do servidor SMTP*/ $smtp->debug = true; /* ativar a autenticação SMTP*/ ?> Vamos incluir também a página que vai realizar a conexão com o banco de dados, para que possa fazer inserção do e-mail e uma consulta para evitar que o mesmo e-mail tenha cadastro repetido, e na hora da remoção sabe se o e-mail esta cadastrado. include("config.php"); /* Página que vai fazer a conexão com obd */

Agora vamos armazenar as informações que estão sendo enviado pelo formulário nas variáveis, que serão responsáveis por inserir as informações no banco de dados e enviar um e-mail de confirmação de cadastro ou remoção da assinatura da newsletter. Como o formulário está enviando os dados por meio da função POST, ou seja, as informações inseridas no formulário estão anexadas junto ao nome do campo do formulário. Então vamos criar uma variável para o e-mail ($emaill) e declarar que seu valor será igual (=) ao campo de nome e-mail do formulário ($_POST["email"]), e o mesmo para o campo opção, ficando assim: /* Recebendo as informações do formulario */ $email = $_POST["e-mail"]; $opcao = $_POST["opcao"]; Para evitar que qualquer pessoa possa cadastrar ou remover o e-mail sabendo apenas o endereço, vamos criar um código secreto que será enviado junto com a mensagem, através desse código será localizado o e-mail e somente a pessoa que recebeu pode fazer a confirmação. Então vamos pegar o endereço de e-mail e codificar com a função md5 do PHP que utilizar o RSA DataSecurity e retorna um número hexadecimal de 32 caracteres, para que cada e-mail tenha um código diferente e único. Agora vamos criar a variável e declarar que seu valor será o e-mail codificado. /* Criar umcodigo secreto para confirmação do e-mail */ $codigo = md5($email); Antes de fazer a inserção do e-mail no banco de dados vamos saber se foi digitado um email ou se o campo esta vazio. Para isso utilizaremos o comando if e else, ou seja, vamos aplicar um teste de verdadeiro ou falso, se for verdadeiro (if) que a variável com o endereço de e-mail ($email) estiver vazia (" "), então vamos mostrar (echo) uma frase informando o erro (O campo de e-mail está vazio) e utilizar um comando para redirecionar (location.href) para a página do formulário. if($email == ""){/* verifica se o e-mail foi digitado */ echo "<script>alert('O campo de e-mail está vazio');"; echo "location.href='index.php'</script>"; /* redireciona de volta aoformulario */ } else{ } Agora vamos identificar a opção escolhida pelo usuário e executar o comando para atender a solicitação. Vamos criar mais um teste de falso ou verdadeiro, então se for verdadeiro (if) que a opção ($opção) e igual (= )à assinar (assinar) então vamos executar um comando para cadastrar o e-mail e enviar uma mensagem de confirmação, mais se essa opção não for verdadeira mais

mesmo assim for verdade (elseif) que a opção ($opcao) é igual (=) a remover (remover) então vamos executar o comando de remoção e enviar uma mensagem de confimação. Mais se for falso (false) as duas opções anteriores e porque não foi selecionada nenhuma opção, então mostre (echo) uma frase informando o erro ('Você tem que selecionar Assinar ou Remover') e utilizar o comando para redirecionar (location.href) para a página do formulário. Não se esqueça que somente serão realizados esses comandos se a variável que contem o email não estiver vazia, então temos que declarar esses comandos dentro da opção false do primeiro teste que fizemos para saber se foi digitado um e-mail. if($email == ""){/* verifica se o e-mail foi digitado */ echo "<script>alert('O campo de e-mail está vazio');"; /* alerta ousuario que o campo está vazio */ echo "location.href='index.php'</script>"; /* redirecionar para que seja preenchido corretamente */ } else{ /* inicio da identificação da opção escolhida */ if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ } elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ } else{ /* se a opção não foi nenhuma das duas, então houve um erro*/ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');"; echo "location.href='index.html'</script>"; } /* fim da identificação da opção escolhida */ } Como já identificamos a opção informada pelo usuário, agora vamos começar com o caso de a opção escolhida ter sido a de assinar. Então dentro do caso de ter sido verdadeiro a opção assinar do teste de identificação da opção escolhida, vamos criar uma variável ($sql) e seu valor será um comando para realizar uma conexão com o banco de dados (mysql_query), e seleciona todas as colunas (SELECT *) da tabela (FROM) releases e filtrar (WHERE) a coluna e-mail (email) com o e-mail informado para saber se o e-mail está cadastrado. Então se for verdadeiro (if) que o e-mail já esteja cadastrado ((mysql_num_rows($sql)==1)), ou seja se a consulta no banco de dados resultou em um registro é porque o e-mail já esta cadastrada então mostre (echo) uma frase de erro (Este e-mail já está cadastrado!) e caso seja falso (else) então execute o comando para inserir o e-mail e enviar a mensagem. if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/

/* verifica se o e-mail esta cadastrado */ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==1){ /* teste para sabe se o e-mail esta cadastrado */ echo " Este e-mail já está cadastrado!"; } else{ } } Caso o e-mail não esteja cadastrado então vamos executar o comando que fará a inserção do e-mail no banco de dados, para isso vamos criar um comando para se conectar no banco de dados (mysql_query) e depois dar a instrução de inserir dados (INSERT INTO) nas colunas (id,email,codigo,ativo) com as informações das variáveis ('','$email','$codigo','n')"), como a tabela esta configurada para que a coluna id seja auto-preenchida é só deixar em branco, já a coluna emails será preenchida com o valor da variável email e a coluna código será preenchida com o nosso código secreto, e o status terá o valor de n, informando que ainda não esta ativo o e-mail, mais para garantir uma segurança maior vamos codificar novamente o nosso código secreto, só que agora com a função sha1 que nos retornar um número hexadecimal de 40 caracteres, garantindo assim uma maior segurança. if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==1){/* teste para sabe se o e-mail esta cadastrado */ echo " Este e-mail já está cadastrado!"; } else{ /* se o e-mail não estiver cadatrado */ $codigo = sha1($codigo); /* código secreto */ mysql_query("INSERT INTO newsletter (id,email,codigo,ativo) VALUES ('','$email','$codigo','n')") or die(mysql_error()); /* inseri a informações nobd */ } } Com o e-mail já inserido no banco de dados, agora vamos enviar uma mensagem para o email cadastrado, informando o cadastro e solicitando que seja clicado em um link para que seja ativado. Esse link vai conte uma variável de nome código e seu valor será o código secreto (codigo=$codigo) que vai ser responsável por localizar o e-mail e mudar seu status de n que significa não ativo, para s que significa ativo, e mais uma variável (&) de nome opção que terá o valor da opção escolhida pelo usuário, que nesse caso ele deseja adicina (?opcao=adiciona). Para que a mensagem possa ser enviada ela deve conte um remetente ($from) que é o seu email, um destinario ($to) que vai se o e-mail cadastrado, um assunto ($subject), e a mensagem ($msg), e depois devemos chamar a classe SMTP e mandar enviar, e também vamos mostrar (echo) uma frase na tela informando que o cadastro foi realizado com

sucesso e foi enviado uma mensagem de confirmação para o e-mail cadastrado. if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql = mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==1){ echo " Este e-mail já está cadastrado!"; } else{ $codigo = sha1($codigo); mysql_query("INSERT INTO newsletter (id,email,codigo,ativo) VALUES ('','$email','$codigo','n')") or die(mysql_error()); /* envia uma mensagem solicitando a ativação */ $from= "seuemail@seusite.com.br"; /* seu e-mail */ $to = $email; /* o e-mail cadastrado*/ $subject = "Confirmar cadastro"; /* assunto da mensagem */ $msg = "Você está recebendo esta mensagem porque alguém adicionou esse e-mail<br>"; $msg .= "Para confirma clique no link abaixo"; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=adiciona&codigo=$codigo' target=_blank>Clique aqui para confirmar </a>"; $smtp->Send($to, $from, $subject, $msg);/* faz o envio da mensagem */ /* mostra mensagem na tela */ echo "<script>alert('Um e-mail de confirmação agora foi enviado para o $email.');"; echo "location.href='index.html'</script>"; } }/* fim do comando para assinar */ Dentro do caso de ter sido verdadeiro a opção remover do teste de identificação da opção escolhida, vamos criar uma variável ($sql) e seu valor será um comando para realizar uma conexão com o banco de dados (mysql_query), e seleciona todas a coluna (SELECT *) da tabela (FROM) releases e filtrar (WHERE) a coluna e-mail (email) com o e-mail informado para saber se o e-mail está cadastrado, ou seja, para remover um e-mail é preciso saber primeiro se o e-mail es cadastrado. E se for verdadeiro (if) que a consulta no banco de dados resultou em nenhum registro e porque não tem nenhum e-mail no banco de dados (mysql_num_rows($sql)==0), então vai mostrar (echo) uma frase de erro (" E-mail não cadastrado em nosso sistema!"), mais se for falso (else) essa verificação e o e-mail está realmente cadastrado, então vamos mandar enviar uma mensagem ($msg) com o link contendo uma variável de nome código com o seu valor sendo o código secreto (codigo=$codigo) e mais uma variável (&) de nome opção com o seu valor sendo a opção de remover (?opcao=remover) para ($to) o e-mail cadastrado ($email), com o assunto ($subject) de cancelamento de conta, e depois chamar a classe smtp e mandar enviar a mensagem e mostrar uma mensagem na tela dizendo que seu pedido foi processado e para que possa efetuar o cancelamento é preciso fazer uma confirmação para saber se o e-mail é dele mesmo. Mais antes como tinha codificado o código secreto com a função sha1 para o

cadastro, teremos que codificar para ser igual ao armazenado no banco de dados. elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==0){ echo " E-mail não cadastrado em nosso sistema!"; } else{ /* comando pra remover o e-mail */ $to = $email; $from = "seuemail@seusite.com"; $codigo = sha1($codigo); /* gerar o codigo secreto */ $subject = "Confirmar Cancelamento de Conta"; $msg = "Você está recebendo esta mensagem porque alguém tentou remover esse e-mail "; $msg .= "Clique no link abaixo para confirmar "; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=remove&codigo=$codigo' target=_blank>"; $msg .= "Clique aqui </a>"; $smtp->Send($to, $from, $subject, $msg); echo "<script>alert('Um e-mail de confirmação foi enviado.');"; echo "location.href='index.html'</script>"; } }/* fim do comando para remover */ Esta página está pronta é o código deve está assim: <?php include ("smtp.class.php"); /*Configuração daclasse.smtp.php */ $host = "smtp.mail.yahoo.com.br"; /* host doservidor SMTP */ $smtp = new Smtp($host); $smtp->user = "usuario"; /*usuario doservidor SMTP */ $smtp->pass = "senha"; /*senha dousuario do servidor SMTP*/ $smtp->debug = true; /*ativar aautenticação SMTP*/ include("config.php"); /* Página que vai fazer a conexão com obd */ /* Recebendo as informações doformulario */ $email = $_POST["e-mail"]; $opcao = $_POST["opcao"]; /* Criar umcodigo secreto para confirmação do e-mail */

$codigo = md5($email); /* verifica se o e-mail foi digitado */ if($email == ""){/* verifica se o e-mail foi digitado */ echo "<script>alert('O campo de e-mail está vazio');"; /* alerta ousuario que o campo está vazio */ echo "location.href='index.php'</script>"; /* redirecionar para que seja preenchido corretamente */ } else{ /* inicio da identificação da opção escolhida */ if($opcao == "assinar"){/* se opção for assinar então execute comando para adicionar*/ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==1){ echo " Este e-mail já está cadastrado!"; } else{ $codigo = sha1($codigo); mysql_query("INSERT INTO newsletter (id,email,codigo,ativo) VALUES ('','$email','$codigo','n')") or die(mysql_error()); $from= "seuemail@seusite.com.br"; /* seu e-mail */ $to = $email; /* o e-mail cadastrado*/ $subject = "Confirmar cadastro"; /* assunto da mensagem */ $msg = "Você está recebendo esta mensagem porque alguém adicionou esse e-mail<br>"; $msg .= "Para confirma clique no link abaixo"; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=adiciona&codigo=$codigo' target=_blank>Clique aqui para confirmar </a>"; $smtp->Send($to, $from, $subject, $msg); echo "O e-mail <b>$email</b> foi cadastrado com sucesso!"; echo "<br>"; echo "Um e-mail de confirmação agora foi enviado para o mesmo."; } }/* fim do comando para adicionar */ elseif($opcao == "remover"){ /* se opção for remover então execute comando para remover */ $sql =mysql_query("SELECT * FROM newsletter WHERE email = '$email'"); if(mysql_num_rows($sql)==0){ echo " E-mail não cadastrado em nosso sistema!"; } else{ $to = $email; $from = "seuemail@seusite.com"; $codigo = sha1($codigo); $subject = "Confirmar Cancelamento de Conta"; $msg = "Você está recebendo esta mensagem porque alguém tentou remover esse e-mail "; $msg .= "Clique no link abaixo para confirmar "; $msg .= "<a href='http://seusite.com/confirmar.php?opcao=remove&codigo=$codigo'

target=_blank>"; $msg .= "Clique aqui </a>"; $smtp->Send($to, $from, $subject, $msg); echo "<script>alert('Um e-mail de confirmação foi enviado.');"; echo "location.href='index.html'</script>"; } }/* fim do comando para remover */ else{ /* se a opção não foi nenhuma das duas, então houve um erro*/ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');"; echo "location.href='index.html'</script>"; } /* fim da identificação da opção escolhida */ } ?> Agora vamos abrir a página comfirmar.php que será reponsavel por fazer a confirmação do e-mail, efetuar a remoção e e mudar o statutd do e-mail. Então vamos fazer a inclusão da página de conexão com o banco de dado para isso: Se você estiver no modo de visualização do projeto mude para o modo de visualização do código.

Na Barra inserir do dreamweaver clique na guia PHP e clique no botão Bloco de código

Vamos fazer a inclusão da página responsavel pela conexão com o banco de dados utilizando a função include include("config.php"); Vamos armazenar as informações que estão vindo através do link que esta na mensagem de confirmação enviada. Como as informações estão anexadas no link junto com o nome da variável. Então vamos criar a variável opção ($opcao) e declara que seu valor está no link ($_GET) junto com a opção escolhida ($_GET["opcao"]) e o mesmo para o código secreto. /* recebendo as informações do link */ $opcao = $_GET["opcao"]; $codigo = $_GET["codigo"];

Agora vamos aplicar um teste de verdadeiro ou falso para identificar qual foi a opção escolhida pelo usuário. Se for verdadeiro (if) que a opção é igual a adiciona ($opcao == "adiciona") então execute o comando para ativar o e-mail, mais se esse teste for falso mais mesmo assim for verdadeiro (elseif) que a opção e remover ($opcao == "remove") então execute o comando de remoção do e-mail, mais se for falso os dois teste anteriores e porque não foi selecionada nenhuma opção então mostre (echo) o comando para redirecionar (location.href) de volta ao formulário. /* inicio da identificação da opção escolhida */ if($opcao == "adiciona"){ /* se a opção for adicionar então execute comando para ativar o e-mail */ } elseif($opcao == "remove"){/* se a opção for remover então execute comando para remover */ } else{ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');"; echo "location.href='index.html'</script>"; } /* fim da identificação da opção escolhida */ Vamos começar com o caso de a opção escolhida ter sido a de adiciona. Lembrando que é através do código secreto que vamos localizar o e-mail e saber se esta cadastrado. Então dentro do caso de ter sido verdadeiro a opção adiciona vamos executar o comando que fará a atualização do status do e-mail de n para s no banco de dados, para isso vamos criar uma variável ($sql) e seu valor será um comando para fazer uma conexão com o banco de dados (mysql_query) e depois dar a instrução de selecionar todas colunas (SELECT *) da tabela (FROM) newsletter e filtrar (WHERE) a coluna codigo com o valor igual (=) ao código, para pode localizar o e-mail e sabe se é verdadeiro. Para saber se o e-mail está cadastrado no banco de dados, vamos aplicar um teste. Se for verdadeiro (if) que o código secreto foi localizado no banco de dados (mysql_num_rows($sql)==1), ou seja, a consulta efetuada resultou em um registro e porque o e-mail esta cadastrado, então conecte-se no banco de dados (mysql_query) e atualize (UPDATE) na tabela newsletter a (SET) coluna status com o valor de s, e depois mostre (echo) uma frase informando que foi ativado o e-mail (E-mail ativado com sucesso) e mostre (echo) o comando de redirecionamento (location.href) para ir para a pagina principal do site. Mais se for falso o código secreto (else) então mostre (echo) a frase de erro (E-mail não encontrado no banco de dados) e mostre (echo) o comando de redirecionamento (location.href) para voltar ao formulário. /* inicio do comando para adiciona */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'"); if(mysql_num_rows($sql)==1){

mysql_query("UPDATE newsletter SET ativo = 's' WHERE codigo = '$codigo'"); echo "<script>alert('E-mail cadastrado com sucesso!');"; echo "location.href='/index.php'</script>"; } else{ echo "<script>alert('E-mail não encontrado no banco de dados.');"; echo "location.href='/index.php'</script>"; } /* fim do comando para adiciona */ Se a opção não foi adiciona e foi remover então vamos criar uma variável ($sql) e seu valor será um comando para fazer uma conexão com o banco de dados (mysql_query) e depois dar a instrução de selecionar todas colunas (SELECT *) da tabela (FROM) newsletter e filtrar (WHERE) a coluna codigo com o valor igual (=) ao código secreto, para pode localizar o e-mail e sabe se é verdadeiro. E se for verdadeiro (if) que o código secreto foi localizado no banco de dados (mysql_num_rows($sql)==1) então se conecte com o banco de dados (mysql_query) e delete (DELETE) na (FROM) tabela newsletter o e-mail a qual o codigo informado pertença (WHERE codigo = '$codigo') e mostre (echo) uma frase informando o cancelamento (E-mail apagado com sucesso) e mostre (echo) o comando para redirecionar (location.href) para a pagina principal do site. Mais se o código estiver errado então mostre (echo) uma frase informando o erro (E-mail não encontrado no banco de dados) e mostre (echo) o comando para redirecionar (location.href) para o formulário. /* inicio do comando para remove */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'"); if(mysql_num_rows($sql)==1){ mysql_query("DELETE FROM newsletter WHERE codigo = '$codigo'"); echo "<script>alert('E-mail apagado com sucesso!');"; echo "location.href='index.php'</script>"; } else{ echo "<script>alert('E-mail não encontrado no banco de dados.');"; echo "location.href='/index.php'</script>"; } /* fim do comando para remove */ Codigo final da página comfimar.php <?php include("config.php"); $opcao = $_GET["opcao"]; $codigo = $_GET["codigo"]; /* inicio da identificação da opção escolhida */ if($opcao == "adiciona"){ /* inicio do comando para adiciona */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'");

if(mysql_num_rows($sql)==1){ mysql_query("UPDATE newsletter SET ativo = 's' WHERE codigo = '$codigo'"); echo "<script>alert('E-mail cadastrado com sucesso! Agora já faz parte de nossa lista.');"; echo "location.href='/index.php'</script>"; } else{ echo "<script>alert('E-mail não encontrado no banco de dados.');"; echo "location.href='/index.php'</script>"; } } /* fim do comando para adiciona */ elseif($opcao == "remove"){ /* inicio do comando para remove */ $sql =mysql_query("SELECT * FROM newsletter WHERE codigo = '$codigo'"); if(mysql_num_rows($sql)==1){ mysql_query("DELETE FROM newsletter WHERE codigo = '$codigo'"); echo "<script>alert('E-mail apagado com sucesso!');"; echo "location.href='index.php'</script>"; } else{ echo "<script>alert('E-mail não encontrado no banco de dados.');"; echo "location.href='/index.php'</script>"; } } /* fim do comando para remove */ else{ echo "<script>alert('Por favor, selecione se quer ASSINAR ou REMOVER o e-mail.');"; echo "location.href='index.html'</script>"; } /* fim da identificação da opção escolhida */ ?>

Consideraçôes finais
Finalizamos a primeira fase desse tutorial que foi o cadastro e remoção dos e-mails, nas próximas duas partes vamos aprender como enviar a newsletter para os e-mails que estão cadastrados no banco de dados, você já pode publicar no seu site para pode ir cadastrando os e-mails. Eu recomendo a leitura dos artigos escritos pelo Marcelo Ariatti e Fábio Ricotta sobre o desenvolvimento do conteúdo de uma newsletter. Qualquer comentário que vocês deixarem será bem vindo. Deixem seus pedidos de tutorias para as próximas colunas clicando aqui Autor: Marcelo Souza Ramos - Colunista Dreamweaver do Portal MXSTUDIO Qualquer dúvida envie um email para ramos.marcelosouza@gmail.com ou acesse o nosso

fórum