Jump to content

Matias Rezende

Moderadores Globais
  • Content count

    6126
  • Joined

  • Last visited

  • Days Won

    4

Matias Rezende last won the day on September 28 2009

Matias Rezende had the most liked content!

Community Reputation

50 Bom

About Matias Rezende

  • Rank
    Consultor Web
  • Birthday 01/30/1982

Contato

  • Google+
    106883614239568042612
  • Hangouts
    matiasrezende@gmail.com.br
  • Skype
    matiasrezende
  • Twitter
    @matiasrezende
  • Site Pessoal
    http://www.matiasrezende.com.br

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    São José - SC
  • Interesses
    Aprender e compartilhar conhecimento

Recent Profile Visitors

9723811 profile views
  1. Matias Rezende

    Não consigo acessar o http://localhost

    Tentou acessar pelo IP ao invés de usar localhost?
  2. Matias Rezende

    [MEGA-TUTORIAL] Upload simples e multiplo

    Indentação Sem indentação: <?php $diretorio = "suapasta/"; if (!is_dir($diretorio)){ echo "Pasta $diretorio nao existe";} else { echo"Pasta Existe<br>"; $arquivo=$_FILES["arquivo"]; $destino = $diretorio."/".$arquivo['name']; if (move_uploaded_file($arquivo['tmp_name'],$destino)) {echo "MOVEUUUUUU<br>"; } else {echo "NAOOOO MOVEU";} }// fecha else ?> Com Indentação <?php $diretorio = "suapasta/"; if (! is_dir ( $diretorio )) { echo "Pasta $diretorio nao existe"; } else { echo "Pasta Existe<br>"; $arquivo = $_FILES ["arquivo"]; $destino = $diretorio . "/" . $arquivo ['name']; if (move_uploaded_file ( $arquivo ['tmp_name'], $destino )) { echo "MOVEUUUUUU<br>"; } else { echo "NAOOOO MOVEU"; } } Carlos Eduardo
  3. Matias Rezende

    [MEGA-TUTORIAL] Upload simples e multiplo

    Esta eu não conhecia. Bem legal o tutorial sim. A sugestão que eu faço é ter uma indentação mais consistente. Melhora a visibilidade do código. Carlos Eduardo
  4. Matias Rezende

    1.4.1 Métodos de Interface e Polimorfismo

    Primeiro por partes - type hinting Vamos analisar o seu código class Eu { public function atira( Projetil $projetil , Gato $gato) { $gato->acerta($projetil); } } Ao definir Gato $gato, você disse que o segundo parâmetro tem que ser um Gato. Agora, vamos olhar o código abaixo. class Eu { public function atira( Projetil $projetil , Alvo $alvo ) { $alvo->acerta($projetil); } } Neste código, o segundo parâmetro tem que ser um Alvo. Ou seja, tem que ser uma classe que implemente a interface Alvo. Vejamos a interface Alvo: interface Alvo { public function acerta( Projetil $projetil ); } Então, nós temos 100% de certeza que, dentro do objeto $alvo passado, EXISTE o método acerta(). Veja que o método acerta() recebe como parâmetro um objeto Projetil, ou seja, terá que implementar a interface Projetil. Com isto, você implementa a classe Eu sem se preocupar o que será atirado aonde. Você somente define que o alvo deve ser um Alvo e que o projétil deve ser um Projétil. Assim, qualquer projétil pode ser atirado em qualquer alvo, desde que o alvo seja realmente um alvo (você saberá isto através da interface dele) e que o projétil seja realmente um projétil (também através da interface). Compreendeu a idéia? Se não tiver compreendido, pode perguntar de novo. Carlos Eduardo
  5. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Bergs Sobre a questão do post #18, no post #19 eu fiz a pergunta. Como está aquela parte do seu código? Então, poste esta parte do código. Não precisa colocar no PEAR, desde que você inclua a classe no seu include path ou então faça o require diretamente do arquivo, colocando o caminho completo para o arquivo. Quando você diz servidor remoto, o que você quer dizer? Carlos Eduardo
  6. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Você deve estar atenta a estas 2 linhas // aqui incluímos a pasta onde está a classe PhpMailer no include_path set_include_path('PHPMailer'. PATH_SEPARATOR .get_include_path()); // incluímos a classe phpmailer. Não utilizamos a pasta onde ela está porque já incluímos anteriormente include 'class.phpmailer.php'; Provavelmente o problema está aqui. Verifique os nomes dos arquivos. Carlos Eduardo
  7. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    A extensão OpenSSL é uma extensão do PHP, e não do PHPMyAdmin. Neste caso, é melhor criar um tópico no fórum principal com esta dúvida. Carlos Eduardo
  8. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Não tem isto... É só $erro = ''; Senão não vai passar na validação nunca, e sempre vai exibir a mensagem. Carlos Eduardo
  9. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Não apareceu mais nenhuma mensagem além desta? Carlos Eduardo
  10. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Então. Pra tirar a autenticação, você tira as seguintes linhas //Definimos que é SMTP $mail->IsSMTP(); // habilitamos autenticação SMTP $mail->SMTPAuth = true; // seta o prefixo ssl $mail->SMTPSecure = 'ssl'; // seta o Gmail como servidor SMTP $mail->Host = 'smtp.gmail.com'; // seta a porta SMTP $mail->Port = 465; // Nome de usuário do Gmail $mail->Username = $username; // Senha do usuário do Gmail $mail->Password = $password; Sobre a questão de adequar, não acredito que você vai ter problemas, porque aqui fica tudo em um arquivo só. Se tentar e não conseguir, posta uma dúvida no fórum principal que o pessoal te ajuda. Carlos Eduardo
  11. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Na verdade serve para minimizar (senão evitar) que o e-mail seja considerado spam e caia na caixa de lixo eletrônico do recipiente. Carlos Eduardo
  12. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Pode, desde que o servidor onde o site estiver hospedado tenha suporte a PHP. Aí depende. Se você não colocar usuário e senha, não vai ser autenticado. Agora, se quiser enviar e-mail autenticado pelo Gmail, aí tem que colocar usuário e senha mesmo. Carlos Eduardo
  13. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Como está esta parte do seu código? /** * Aqui definimos o corpo do e-mail. */ $conteudo = ' <html> <body> <h1>Contato enviado pelo site</h1> <b>Nome</b> - '.$nome.'<br/> <b>E-mail</b> - '.$email.'<br/>'; if(isset($telefone)) $conteudo .= '<b>Telefone</b> - '.$telefone.'<br/>'; $conteudo .= '<b>Destinatários</b> - '.implode(' , ',$destinatario).'<br/> <b>Assunto</b>'.$assunto.'<br/> <b>Mensagem</b>'.$mensagem.'<br/>'; E esta // Validação campo Mensagem if(isset($_POST['Mensagem']) && !empty($_POST['Mensagem'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. // Adicionamos também a função que troca nova linha por <br/> $mensagem = ($gpc) ? nl2br($_POST['Mensagem']) : addslashes(nl2br($_POST['Nome'])); } else { $erro .= '- Preencha o Mensagem<br/>'; } Carlos Eduardo
  14. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Neste ponto é onde vai o conteúdo do e-mail. /** * Aqui definimos o corpo do e-mail. */ $conteudo = ' <html> <body> <h1>Contato enviado pelo site</h1> <b>Nome</b> - '.$nome.'<br/> <b>E-mail</b> - '.$email.'<br/>'; if(isset($telefone)) $conteudo .= '<b>Telefone</b> - '.$telefone.'<br/>'; $conteudo .= '<b>Destinatários</b> - '.implode(' , ',$destinatario).'<br/> <b>Assunto</b>'.$assunto.'<br/> <b>Mensagem</b>'.$mensagem.'<br/>'; Veja se está correto. Carlos Eduardo
  15. Matias Rezende

    Formulário de Contato com múltiplos destinatários

    Então... achei interessante a idéia. Fiz a modificação no código. <?php /** * Exemplo de envio autenticado com PhpMailer, utilizando o Gmail, para múltiplos destinatários * * Coloque no value de cada checkbox o e-mail a ser enviado. * * Neste exemplo, usamos os seguintes e-mails * - rh@site.com.br * - adm@site.com.br * - financeiro@site.com.br * * Para que seja possível enviar, tenha certeza que a extensão php_openssl.dll esteja descomentada * no seu PHP.INI * * @author MatiasRezende * @version 1.1 * @since 2009-09-17 */ /** * Aqui testamos se a extensão openssl foi carregada, pois ela é necessária para o envio. * Caso ela não tenha sido carregada, ou seja, não esteja habilitada, vai encerrar o processamento. */ if(!extension_loaded('openssl')) { die('A extensão OpenSSL não está habilitada no seu PHP.INI. Habilite-a e tente novamente.'); } // adicione os emails a serem utilizados $destinos = array( 'Recursos Humanos' => array( 'email1@email.com.br', 'email2@email.com.br', 'email3@email.com.br'), 'Financeiro' => 'financeiro@site.com.br', 'Administração' => 'adm@site.com.br', ); // Usuário do gmail $username = 'seuemail@gmail.com'; // Senha do usuário do Gmail $password = 'suasenha'; // E-mail que vai aparecer como remetente $from = 'SeuEmail@site.com.br'; // Nome que vai aparecer como remetente $fromName = 'Seu Nome'; /** * Início da validação. Estamos validando somente se está setado e escapando aspas. * Faremos a mesma coisa para todos os campos. * */ $erro = ''; // Testamos se o formulário foi enviado. Necessário para que não exiba mensagem de erro no primeiro // acesso if(isset($_POST['enviar'])) { // Setamos $gpc como get_magic_quotes_gpc. Se existir, terá valor true. Caso contrário, será false $gpc = get_magic_quotes_gpc(); // Validação campo Nome if(isset($_POST['Nome']) && !empty($_POST['Nome'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. $nome = ($gpc) ? $_POST['Nome'] : addslashes($_POST['Nome']); } else { $erro .= '- Preencha o Nome.<br/>'; } // Validação campo E-mail. Validamos também o formato, usando expressão regular if(isset($_POST['E-mail']) && !empty($_POST['E-mail'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. $email = ($gpc) ? $_POST['E-mail'] : addslashes($_POST['E-mail']); // Aqui validamos se o e-mail é válido, utilizando expressão regular. if (!preg_match ('/^[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_.-][A-Za-z0-9]+)*\\.[A-Za-z0-9]{2,4}$/', $email)) { $erro .= '- E-mail Inválido.<br/>'; } } else { $erro .= '- Preencha o E-mail<br/>'; } // Validação campo Telefone. Como ele não é obrigatório, tiramos o else, que exibe mensagem de erro caso não esteja preenchido if(isset($_POST['Telefone']) && !empty($_POST['Telefone'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. $telefone = ($gpc) ? $_POST['Telefone'] : addslashes($_POST['Telefone']); } // Validação campo Destinatário if(isset($_POST['Destinatario']) && !empty($_POST['Destinatario'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. foreach ($_POST['Destinatario'] as $valor) { // Aqui adicionamos o radical do e-mail. $destinatario[] = ($gpc) ? $valor : addslashes($valor); } } else { $erro .= '- Selecione pelo menos 1 Destinatario<br/>'; } // Validação campo Assunto if(isset($_POST['Assunto']) && !empty($_POST['Assunto'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. $assunto = ($gpc) ? $_POST['Assunto'] : addslashes($_POST['Assunto']); } else { $erro .= '- Preencha o Assunto.<br/>'; } // Validação campo Mensagem if(isset($_POST['Mensagem']) && !empty($_POST['Mensagem'])) { // Aqui estamos verificando se não está habilitado magic_quotes_gpc, escapa as aspas simples com addslashes. // Adicionamos também a função que troca nova linha por <br/> $mensagem = ($gpc) ? nl2br($_POST['Mensagem']) : addslashes(nl2br($_POST['Nome'])); } else { $erro .= '- Preencha o Mensagem<br/>'; } } /** * Aqui testamos se o formulário foi enviado e se não existe erro nele. * Caso seja válido, entramos na rotina de enviar o e-mail */ if(isset($_POST['enviar']) && empty($erro)) { // aqui incluímos a pasta onde está a classe PhpMailer no include_path set_include_path('PHPMailer'. PATH_SEPARATOR .get_include_path()); // incluímos a classe phpmailer. Não utilizamos a pasta onde ela está porque já incluímos anteriormente include 'class.phpmailer.php'; /** * Aqui definimos o corpo do e-mail. */ $conteudo = ' <html> <body> <h1>Contato enviado pelo site</h1> <b>Nome</b> - '.$nome.'<br/> <b>E-mail</b> - '.$email.'<br/>'; if(isset($telefone)) $conteudo .= '<b>Telefone</b> - '.$telefone.'<br/>'; $conteudo .= '<b>Destinatários</b> - '.implode(' , ',$destinatario).'<br/> <b>Assunto</b>'.$assunto.'<br/> <b>Mensagem</b>'.$mensagem.'<br/>'; // Instanciamos a classe PHPMailer $mail = new PHPMailer(); // Aqui definimos o charset do e-mail a ser enviado. $mail->CharSet = 'UTF-8'; //Definimos que é SMTP $mail->IsSMTP(); //Definimos que utilizaremos HTML $mail->IsHTML(true); // habilitamos autenticação SMTP $mail->SMTPAuth = true; // seta o prefixo ssl $mail->SMTPSecure = 'ssl'; // seta o Gmail como servidor SMTP $mail->Host = 'smtp.gmail.com'; // seta a porta SMTP $mail->Port = 465; // Nome de usuário do Gmail $mail->Username = $username; // Senha do usuário do Gmail $mail->Password = $password; // Aqui você coloca o e-mail que vai aparecer como remetente $mail->From = $from; // Aqui você coloca o nome que vai aparecer como remetente $mail->FromName = $fromName; // Aqui vai a variável que tem o assunto, que vem do formulário $mail->Subject = $assunto; // Seta o WordWrap $mail->WordWrap = 50; // Aqui vai o conteúdo da mensagem a ser enviada $mail->MsgHTML($conteudo); // Aqui vai o e-mail da pessoa que enviou o contato, para resposta $mail->AddReplyTo($email,$nome); // Aqui varremos o array $destinatario para adicionar os e-mail selecionados foreach($destinatario as $destino) { if(is_array($destino)) { foreach ($destino as $destinoArray) { $mail->AddAddress($destinoArray); } } else { $mail->AddAddress($destino); } } // Aqui enviamos o e-mail. Caso apresente algum erro, vai exibi-lo. if(!$mail->Send()) { echo 'Erro ao enviar e-mail: ' . $mail->ErrorInfo; } else { echo 'Sua mensagem foi enviada com sucesso.'; unset($_POST); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http-~~-//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http-~~-//www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Exemplo de Formulário de Contato</title> </head> <body> <h1>Formulário de Contato</h1> <form id="contato" name="contato" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"> <label><strong>Nome*</strong><br /> <input type="text" name="Nome" id="Nome" value="<?php echo (isset($_POST['Nome'])) ? $_POST['Nome']: '' ; ?>" /></label><br /> <label><strong>E-mail*</strong><br /> <input type="text" name="E-mail" id="E-mail" value="<?php echo (isset($_POST['E-mail'])) ? $_POST['E-mail']: '' ; ?>" /></label><br /> <label><strong>Telefone</strong><br /> <input type="text" name="Telefone" id="Telefone" value="<?php echo (isset($_POST['Telefone'])) ? $_POST['Telefone']: '' ; ?>" /></label><br /> <strong>Destinatário*</strong><br /> <?php // aqui fazemos o preenchimento dos e-mail. foreach ($destinos as $chave => $valor) { echo '<label><input type="checkbox" name="Destinatario[]" value="'.$valor.'" id="destinatario_0"'; echo (isset($_POST['Destinatario']) && in_array($valor,$_POST['Destinatario'])) ? 'checked="checked" ' : '' ; echo '/>'.$chave.'</label><br />'; } ?> <br /> <label><strong>Assunto*</strong><br /> <input type="text" name="Assunto" id="Assunto" value="<?php echo (isset($_POST['Assunto'])) ? $_POST['Assunto']: '' ; ?>" /></label><br /> <label><strong>Mensagem*</strong><br /> <textarea name="Mensagem" id="Mensagem" cols="45" rows="5"><?php echo (isset($_POST['Mensagem'])) ? $_POST['Mensagem']: '' ; ?></textarea></label><br /> <label><input type="submit" name="enviar" id="enviar" value="Enviar Contato" /></label> <div id="erro"> <?php /** * Aqui testamos. Se a $erro não estiver vazia, significa que temos erro no preenchimento do formulário, * então exibimos os erros no preenchimento. * Para formatar a mensagem, formate o #erro no seu CSS. */ echo (!empty($erro)) ? 'Foram encontrados erros no preenchimento do formulário<br/>'.$erro : '' ; ?> </div> </form> </body> </html> O que foi modificado. // adicione os emails a serem utilizados $destinos = array( 'Recursos Humanos' => array( 'email1@email.com.br', 'email2@email.com.br', 'email3@email.com.br'), 'Financeiro' => 'financeiro@site.com.br', 'Administração' => 'adm@site.com.br', ); Quando for marcado Recursos Humanos, vai enviar para os emails que estão dentro do array que está ali. A outra parte que foi mudado é aqui. // Aqui varremos o array $destinatario para adicionar os e-mail selecionados foreach($destinatario as $destino) { // testa se é um array. Se for, joga dentro de um foreach. Se não for, apenas adiciona o endereço. if(is_array($destino)) { foreach ($destino as $destinoArray) { $mail->AddAddress($destinoArray); } } else { $mail->AddAddress($destino); } } Acho que agora vai. Carlos Eduardo
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.