Validation of PHP form

Asked

Viewed 622 times

0

I wonder if there is a way to insert some script inside contact.php to, before taking action to send the data to the email, check the form fields. From now on, thank you!

Follow the form here:

<form action="contact.php" target="_blank" method="post" id="form-contato">
        Faça o download grátis aqui! <br/><br/>
        Basta preencher o formulário para baixar a áudio história: <br/><br/><br/>
        Nome: 
        <br/>
        <input name="nome" size=56 id="name_edit"> 
        <br/><br/> 
        Email: 
        <br/>
        <input name="email" size=56 id="email_edit">
        <br/><br/>
        7+4?: 
        <br/>         
        <input name="mensagem" size=56 id="mens_edit">
        <br/><br/><br/><br/>
        <input type="submit" value="BAIXAR AUDIOBOOK" name="submit" id="button">
        <br/><br/><br/>
        <p id="text_edit"><a href="politicaprivacidade.php">Politica de Privacidade</a>.<br/><br/>
        Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.</p>
    </form>
  </div>

Here is contact.php:

<?php
 session_start();
  require_once 'libs/phpmailer/PHPMailerAutoload.php';

if(isset($_POST['nome'],$_POST['email'],$_POST['mensagem'])){
 $fields=[
    'nome'=>$_POST['nome'],
    'email'=>$_POST['email'],
    'mensagem'=>$_POST['mensagem']
 ];
 $m=new PHPMailer;
 $m->isSMTP();
 $m->SMTPDebug = 1;
 $m->SMTPAuth=true;
 $m->Host='smtp.zoho.com';
 $m->Username='#';
 $m->Password='#';
 $m->SMTPSecure='ssl';
 $m->Port=465;

 $m->isHTML(true);
 $m->Subject ='E-mail eviado pelo site';
 $m->Body='De:'.$fields['nome'].'('.$fields['email'].')<p>Mensagem: <br>'.$fields['mensagem'].'</p>';
 $m->SetFrom('[email protected]','SAC');
 $m->AddAddress('#','#');
 if ($m->send()) {
     header('#');
     die();
 }
}

header ('#');
  • Yes, there is, but you forgot to detail what checks you want to do.

1 answer

1


The simplest validation would be to add a required to the inputs, so it would only send if at least the inputs were loaded, or can enter Javascript code to check, as below:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>


<script>
  $(document).ready(function(){
      $("form").submit(function(e) {
	  	if( $('#nome').val().length < 5  ){
			alert('O nome precisa ter mais que 5 letras');
			return false;
	  	}
	  
         e.preventDefault();
      });
 });
</script>


    <form action="contact.php" target="_blank" method="post" id="form-contato">
            Faça o download grátis aqui! <br/><br/>
            Basta preencher o formulário para baixar a áudio história: <br/><br/><br/>
            Nome: 
            <br/>
            <input name="nome" id="nome" size=56 id="name_edit" required> 
            <br/><br/> 
            Email: 
            <br/>
            <input name="email" size=56 id="email_edit" required>
            <br/><br/>
            7+4?: 
            <br/>         
            <input name="mensagem" size=56 id="mens_edit" required>
            <br/><br/><br/><br/>
            <input type="submit" value="BAIXAR AUDIOBOOK" name="submit" id="button">
            <br/><br/><br/>
            <p id="text_edit"><a href="politicaprivacidade.php">Politica de Privacidade</a>.<br/><br/>
            Prometemos não utilizar suas informações de contato para enviar qualquer tipo de SPAM.</p>
        </form>
      </div>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.