Ir para conteúdo
Remazela

[Resolvido] PHP - Orientação em Validar Campo E-mail

Recommended Posts

Caros amigos

 

Estou com um problema que não estou conseguindo resolver, para alguns é algo simplesmente fácil, mas estou encontrando dificuldade.

 

preciso validar o campo E-MAIL, que utilizo o seguinte código no meu FORM:

           <form role="form" name="frm_userEdit" id="frm_userEdit" enctype="multipart/form-data" action="" method="POST" onSubmit="return enviardados();" >
              <div class="box-body">

                <div class="form-group">
                  <label for="exampleInputEmail1">Código do Usuário</label>
                  <input type="text" id="userEditaId" name="userEditaId" size="10" class="form-control"
                         value="<?php echo $userEditaId; ?>" style="width:13%" disabled >
                </div>     

                <div class="form-group">
                  <label for="exampleInputEmail1">Nome usuário</label>
                  <input type="text" id="sendUsername" name="sendUsername" size="70" class="form-control"
                         style="width:60%" value="<?php echo $userUsername; ?>" onkeyup="up(this)" > 
                </div> 

                <div class="form-group">
                  <label for="exampleInputEmail1">Senha </label>
                  <input type="password" id="sendSenha" name="sendSenha" size="30" maxlength="8" class="form-control"
                         style="width:32%" placeholder="Se não for Alterar a Senha deixe o CAMPO em branco." >
                  <p class="help-block"><strong>Atenção!</strong> A Senha deve conter apenas 8 caracteres.</p>                         
                </div>         

                <div class="form-group">
                  <label for="exampleInputEmail1">E-mail</label>
                  <input type="text" id="sendEmail" name="sendEmail" size="150" class="form-control" style="width:60%"
                         value="<?php echo $userEmail; ?>" > 
                </div>   

                <div class="form-group">
                  <label for="exampleInputEmail1">Telefone</label>
                  <input type="text" id="sendFone" name="sendFone" size="20" class="form-control" style="width:13%"
                         value="<?php echo $userFone; ?>" > 
                </div>                 

                <div class="form-group">
                 <label for="exampleInputEmail1">Permissão</label>      
                  <select class="form-control" id="sendPermisso" name="sendPermisso" style="width:20%" required>              
                    <option <?php if ($userPermisso=='1') echo 'SELECTED'; ?> value="1" >Administrador</option>
                    <option <?php if ($userPermisso=='2') echo 'SELECTED'; ?> value="2" >Supervisor</option>
                    <option <?php if ($userPermisso=='3') echo 'SELECTED'; ?> value="3" >Compras</option>
                  </select>
                </div> 

              <div class="box-footer">
                <button type="submit" name="executar" id="executar" class="btn btn-primary" value="Atualizar" >Atualizar</button>
                
                <a class="btn btn-danger" name="button" id="button" value="Cancelar" 
                   onclick="frm_userEdit.action='painel.php?exe=admin/clientes/clientes_editList&clienteId=<?php echo $clienteId;?>'; frm_userEdit.submit()" />Cancelar</a>

                <input type="hidden" name="MM_update" value="frm_userEdit">
                <input type="hidden" name="idUser" value="<?php echo $userEditaId; ?>">
                <input type="hidden" name="clienteId" value="<?php echo $clienteId; ?>">
                <input type="hidden" name="sendNivel" value="<?php echo $clienteCategoria; ?>" >                  
              </div>

             </div>
            </form>           

Abaixo fiz essa validação, funciona:

<!--Script para Validar o Formulário -->
<script language="JavaScript" >

    function enviardados(){

        if(document.frm_userEdit.sendUsername.value == "" ) { 
           alert( "Preencha o campo RAZÃO SOCIAL corretamente!" );
           document.frm_userEdit.sendUsername.focus();
           return false;
        }            
     
        if(document.frm_userEdit.sendEmail.value=="" || document.frm_userEdit.sendEmail.value.indexOf('@')==-1 || document.frm_userEdit.sendEmail.value.indexOf('.')==-1 ) {
           alert( "Preencha campo E-MAIL corretamente!" );
           document.frm_userEdit.sendEmail.focus();
           return false;
        }  
      
        if(document.frm_userEdit.sendFone.value=="") { 
           alert( "Preencha campo TELEFONE corretamente!" );
           document.frm_userEdit.sendFone.focus();
           return false;
        }

    return true;

    }


  function up(lstr){              //converte minusculas em maiusculas
    var str=lstr.value;           //obtem o valor
    lstr.value=str.toUpperCase(); //converte as strings e retorna ao campo
  }


  jQuery(function($){
    $("#sendFone").mask("(99)9999-9999");
  });


</script> 

 

Após algumas pesquisa, verifiquei esta opção de validação de e-mail, que não consigo adaptar no meu código:

function validaemail($email){
	//verifica se e-mail esta no formato correto de escrita
	if (!ereg('^([a-zA-Z0-9.-_])*([@])([a-z0-9]).([a-z]{2,3})',$email)){
		$mensagem='E-mail Inv&aacute;lido!';
		return $mensagem;
    }
    else{
		//Valida o dominio
		$dominio=explode('@',$email);
		if(!checkdnsrr($dominio[1],'MX')){
			$mensagem='E-mail Inválido!';
			return $mensagem;
		}
		else{return true;}
	}
}

 

Como consigo adaptar a função de validação no código e como faço para chamar ?

 

Grato,

 

Renato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que não precisa disso tudo não.

 

pra validar no front-end, só fazer o seguinte:

<input type="email" required name="sendEmail">

(isso já pouparia validação no javascript).

 

Ai no PHP, eu faço o seguinte:

if(filter_var($_POST['sendEmail'], FILTER_VALIDATE_EMAIL)){
    $validInfoEmail = true;
}
else{
    $validInfoEmail = false;
    $mensagemValidacao = "O e-mail não é válido.";
}

Mais curto, moderno e útil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Maykel, grato por sua orientação.

 

Fiz desta forma e funcionou:

            <form role="form" name="frm_editaClie" id="frm_editaClie" enctype="multipart/form-data" action="" method="POST" onSubmit="return enviardados();" >
              <div class="box-body">

                <div class="form-group">
                  <label for="exampleInputEmail1">Código do Cliente</label>
                  <input type="text" id="clienteEditaId" name="clienteEditaId" size="10" class="form-control"
                         value="<?php echo $clienteEditaId; ?>" style="width:13%" disabled >
                </div>     

                <div class="form-group">
                  <label for="exampleInputEmail1">Razão Social</label>
                  <input type="text" id="sendRazaoSocial" name="sendRazaoSocial" size="150" class="form-control"
                         style="width:60%" value="<?php echo $clienteRazaoSocial; ?>" onkeyup="up(this)" > 
                </div> 
                
                <div class="form-group">
                  <label for="exampleInputEmail1">E-mail</label>
                  <input type="text" id="sendMail" name="sendMail" size="150" class="form-control" style="width:60%"
                         value="<?php echo $clienteEmail; ?>" > 
                </div>                   
                
              <div class="box-footer">
                <button type="submit" name="executar" id="executar" class="btn btn-primary" value="Atualizar" >Atualizar</button>
                
                <a class="btn btn-danger" name="button" id="button" value="Cancelar" 
                   onclick="frm_editaClie.action='painel.php?exe=admin/clientes/clientes_editList&clienteId=<?php echo $clienteId;?>'; frm_editaClie.submit()" />Cancelar</a>

                <input type="hidden" name="MM_update" value="frm_editaClie">
                <input type="hidden" name="clienteId" value="<?php echo $clienteEditaId; ?>">
              </div>

             </div>
            </form> 


<script language="JavaScript" >

    function enviardados(){

        if(document.frm_editaClie.sendRazaoSocial.value == "" ) { 
           alert( "Por favor, preencha o campo RAZÃO SOCIAL corretamente!" );
           document.frm_editaClie.sendRazaoSocial.focus();
           return false;
        }            
     
        if(document.frm_editaClie.sendNome.value=="") { 
           alert( "Por favor, preencha campo NOME FANTASIA corretamente!" );
           document.frm_editaClie.sendNome.focus();
           return false;
        }
      
        var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{3,3}(?:\.[a-z]{2})?)$/i;
        if(!filter.test(document.getElementById("sendMail").value)){
          alert('Por favor, preencha campo E-MAIL corretamente');
          document.getElementById("sendMail").focus();
          return false
        }

    return true;

    }
  
  </script> 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Good
      Boa noite,
      não sei se estou na categoria correta.. por exemplo, eu estou buscando contratar um servidor de email que suporte envio de até 1milhão de emails por mês.
       
      Eu não tenho conhecimento, então gostaria de saber se alguém recomenda algum serviço.. que seja possível fazer integração com o meu sistema utilizando PHP.
       
      obrigado
    • Por kelvinferraz
      Boa noite pessoal!
       
      Estou com uma dúvida e não sei nem por onde começar, seguinte:
       
      Eu tenho um sistema simples em PHP cadastro de usuário e etc... Porém esse sitema gera relatorios de pessoas, gostaria de saber se é possível com base nos dados dos clientes cadastrados
      eu passar os parametros como nome, endereço, cidade, rg etc.. para dentro de sites do tipo:

      https://servicos.dpf.gov.br/antecedentes-criminais/certidao
       
      É possível automatizar isso e trazer junto aos meus relatorios ?

      Estou usando o DomPDF para gerar os relatorios trazido do banco fora outras informações que o próprio solicitante marca.
    • Por BTK
      Boa noite, estou tentando criar um curl que faz cadastro no site(o proprietário está ciente disso) porem ele está me retornando (HTTP/1.1 100 Continue HTTP/1.1 302 Moved Temporarily)

       $ch = curl_init();   
          
                                                                                                                     
          curl_setopt($ch, CURLOPT_URL, "https://www.cafefacil.com.br/customer/account/create/");                                     
          curl_setopt($ch, CURLOPT_HEADER, true);                                                                                                   
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');                                                                                                                                               
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);                                                                                         
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);                                                                                       
          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                                                                                       
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
          curl_setopt($ch, CURLOPT_COOKIESESSION, true);                                                                             
          curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cafefacil.txt');
          curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cafefacil.txt'); 
          
          
          
          
          $b1 = curl_exec($ch);
          
          $form_key = value($b1, 'type="hidden" name="form_key" value="', '"');
          
          curl_setopt($ch, CURLOPT_URL, 'https://www.cafefacil.com.br/customer/account/createpost/');                                     
          curl_setopt($ch, CURLOPT_HEADER, true);                                                                                                   
          curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36');                                                                                                                                                  
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);                                                                                         
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);                                                                                    
          curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);                                                                                       
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
          curl_setopt($ch, CURLOPT_COOKIESESSION, true);   
          curl_setopt($ch, CURLOPT_REFERER, 'https://www.cafefacil.com.br/customer/account/create/');                                                                           
          curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cafefacil.txt');
          curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cafefacil.txt'); 
          curl_setopt($ch, CURLOPT_POST, 1);                                                                                                    
          $boundary = '---------------------------WebKitFormBoundaryRQ3KHJbpfmPf11v6';
          
          $data = '-----------------------------'.$boundary.'
          Content-Disposition: form-data; name="success_url"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="error_url"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="form_key"
          
          '.$form_key.'
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="tipopessoa"
          
          15
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="firstname"
          
          NomeTest SobreNomeTest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="nomefantasia"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="inscricaoestadual"
          
          
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="email"
          
          nometestsobrenometest@gmail.com
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="day"
          
          01
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="month"
          
          01
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="year"
          
          1990
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="dob"
          
          01/01/1990
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="taxvat"
          
          199.758.750-50
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="celular"
          
          (11)4712-8491
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="password"
          
          senhatest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="confirmation"
          
          senhatest
          -----------------------------'.$boundary.'
          Content-Disposition: form-data; name="persistent_remember_me"
          
          on
          -----------------------------'.$boundary.'--';
          
          $header[] = "Content-Type: multipart/form-data; boundary=".$boundary;
          curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
          
            
          echo $exec = curl_exec($ch);
          curl_close($ch);
    • Por allencar.limma
      Tento incluir as informações de um formulário no banco de dados e não consigo. conforme código abaixo.
      <? /*Incluir as informações no formulario */ include "config.php"; $nome = trim($_POST['nome']); $masp = trim($_POST['masp']); $cpf = trim($_POST['cpf']); $telefone = trim($_POST['telefone']); $email = trim($_POST['email']); $endereco = trim($_POST['endereco']); $data_nascimento = trim($_POST['data_nascimento']); $unidade_lotacao = trim($_POST['unidade_lotacao']); /* Vamos checar algum erro nos campos */ if ((!$nome) || (!$masp) || (!$cpf) || (!$telefone) || (!$email) || (!$endereco) || (!$data_nascimento) || (!$unidade_lotacao)){ echo "ERRO: <br /><br />"; if (!$nome){ echo "Nome Completo é requerido.<br />"; } if (!$masp){ echo "Masp é requerido.<br />"; } if (!$cpf){ echo "CPF é requerido.<br /)>"; } if (!$telefone){ echo "Telefone é requerido.<br />"; } if (!$email){ echo "Email é requerido.<br />"; } if (!$endereco){ echo "Endereço é requerido.<br />"; } if (!$data_nascimento){ echo "Data de Nascimento é requerido.<br />"; } if (!$unidade_lotacao){ echo "Unidade de Lotação é requerido.<br>"; } echo "Preencha os campos abaixo: <br />"; include "formulario_cadastro.php"; }else { /* Vamos checar se o nome de Usuário escolhido e/ou Email já existem no banco de dados */ $sql_email_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE email='{$email}'" ); $sql_masp_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE masp='{$masp}'" ); $sql_cpf_check = mysql_query( "SELECT COUNT(usuario_id) FROM usuarios WHERE cpf='{$cpf}'" ); $eReg = mysql_fetch_array($sql_email_check); $uReg = mysql_fetch_array($sql_masp_check); $uReg = mysql_fetch_array($sql_cpf_check); $email_check = $eReg[0]; $masp_check = $uReg[0]; $cpf_check = $uReg[0]; if (($email_check > 0) || ($masp_check > 0) || ($cpf_check > 0)){ echo "<strong>ERRO</strong>: <br /><br />"; if ($email_check > 0){ echo "Este email já está sendo utilizado.<br /><br />"; unset($email); } if ($masp_check > 0){ echo "Este Masp já está sendo utilizado.<br /><br />"; unset($masp); } if ($cpf_check > 0){ echo "Este CPF já está sendo utilizado.<br /><br />"; unset($cpf); } include "formulario_cadastro.php"; }else{ /* Se passarmos por esta verificação ilesos é hora de finalmente cadastrar os dados. Vamos utilizar uma função para gerar a senha de forma randômica*/ function makeRandomPassword(){ $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7){ $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $senha_randomica = makeRandomPassword(); $senha = md5($senha_randomica); // Inserindo os dados no banco de dados //$cpf = htmlspecialchars($cpf); ***RETIRADO PELO FATO DE NÃO ESTA SENDO USADO $sql = mysql_query( "INSERT INTO usuarios (none, masp, cpf, telefone, email, endereco, data_nascimento, unidade_lotacao) VALUES ('$nome', '$masp', '$cpf', '$telefone', '$email', '$endereco', '$data_nascimento', '$unidade_lotacao', now())") or die( mysql_error() ); if (!$sql){ echo "Ocorreu um erro ao criar sua conta, entre em contato."; }else{ $usuario_id = mysql_insert_id(); // Enviar um email ao usuário para confirmação e ativar o cadastro! $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\n"; $headers .= "From: RCI - <rci@rcionline.com.br>"; $subject = "Confirmação de cadastro - www.rcionline.com.br"; $mensagem = "Prezado {$nome} {$masp},<br /> Obrigado pelo seu cadastro em nosso site, <a href='http://www.rcionline.com.br'> http://www.rcionline.com.br</a>!<br /> <br /> Para confirmar seu cadastro e ativar sua conta em nosso site, podendo acessar à áreas exclusivas, por favor clique no link abaixo ou copie e cole na barra de endereço do seu navegador.<br /> <br /> <a href='http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha}'> http://www.rcionline.com.br/ativar.php?id={$usuario_id}&code={$senha} </a> <br /> <br /> Após a ativação de sua conta, você poderá ter acesso ao conteúdo exclusivo efetuado o login com os seguintes dados abaixo:<br > <br /> <strong>Usuario</strong>: {$usuario_id}<br /> <strong>Senha</strong>: {$senha_randomica}<br /> <br /> Obrigado!<br /> <br /> Webmaster<br /> <br /> <br /> Esta é uma mensagem automática, por favor não responda!"; mail($email, $subject, $mensagem, $headers); echo "Foi enviado para seu email - ( ".$email." ) um pedido de confirmação de cadastro, por favor verifique e sigas as instruções!"; } } } ?>  
    • Por vinicius.david
      Gostaria que fosse possível encontrar produtos pela marca no Opencart 2.3.0.2. Quando a pessoa digitar no buscar a marca do produto, ele deveria mostrar todos os produtos que pertencem aquela marca. Em catalog/model/catalog/product.php já existe por padrão a função de procurar por fabricante: 

      if (!empty($data['filter_manufacturer_id'])) {                 $sql .= " AND p.manufacturer_id = '" . (int) $data['filter_manufacturer_id'] . "'";             }
      Mas ela não faz a função de procurar por marca. Alguém já encontrou alguma solução na internet para este caso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.