Ir para conteúdo
Luiz091

[Resolvido] Erro ao enviar informações por formulário com html e php

Recommended Posts

Bom dia,

 

Estou com uma página retornando erro e não consigo corrigir. Sou iniciante em php e até o momento, a dificuldade persiste. Ao enviar a mensagem pelo formulário de contato a página não atualiza e retorna o seguinte erro:

 

Notice: Undefined variable: message in /storage/ssd3/973/8336973/public_html/inc/sendEmail.php on line 31

Notice: Undefined variable: error in /storage/ssd3/973/8336973/public_html/inc/sendEmail.php on line 47
OK

 

 

Este é o código do fomulário:

<!-- form -->
            <form name="contactForm" id="contactForm" method="post" action="sendEmail.php">
      			<fieldset>

                  <div class="form-field">
 						   <input name="contactName" type="text" id="contactName" placeholder="Name" value="" minlength="2" required="">
                  </div>
                  <div class="form-field">
	      			   <input name="contactEmail" type="email" id="contactEmail" placeholder="Email" value="" required="">
	               </div>
                  <div class="form-field">
	     				   <input name="contactSubject" type="text" id="contactSubject" placeholder="Subject" value="">
	               </div>                       
                  <div class="form-field">
	                 	<textarea name="contactMessage" id="contactMessage" placeholder="Message" rows="10" cols="50" required=""></textarea>
	               </div>                      
                 <div class="form-field">
                     <button class="submitform">Enviar</button>
                     <div id="submit-loader">
                        <div class="text-loader">Sending...</div>                             
       				      <div class="s-loader">
								  	<div class="bounce1"></div>
								  	<div class="bounce2"></div>
								  	<div class="bounce3"></div>
								</div>
							</div>
                  </div>

      			</fieldset>
      		</form> <!-- Form End -->

 

Este é o Php:

// Replace this with your own email address
$siteOwnersEmail = 'user@website.com';


if($_POST) {

   $name = trim(stripslashes($_POST['contactName']));
   $email = trim(stripslashes($_POST['contactEmail']));
   $subject = trim(stripslashes($_POST['contactSubject']));
   $contact_message = trim(stripslashes($_POST['contactMessage']));

   // Check Name
	if (strlen($name) < 2) {
		$error['name'] = "Please enter your name.";
	}
	// Check Email
	if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $email)) {
		$error['email'] = "Please enter a valid email address.";
	}
	// Check Message
	if (strlen($contact_message) < 15) {
		$error['message'] = "Please enter your message. It should have at least 15 characters.";
	}
   // Subject
	if ($subject == '') { $subject = "Contact Form Submission"; }


   // Set Message
   $message .= "Email from: " . $name . "<br />";
	$message .= "Email address: " . $email . "<br />";
   $message .= "Message: <br />";
   $message .= $contact_message;
   $message .= "<br /> ----- <br /> This email was sent from your site's contact form. <br />";

   // Set From: header
   $from =  $name . " <" . $email . ">";

   // Email Headers
	$headers = "From: " . $from . "\r\n";
	$headers .= "Reply-To: ". $email . "\r\n";
 	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";


   if (!$error) {

      ini_set("sendmail_from", $siteOwnersEmail); // for windows server
      $mail = mail($siteOwnersEmail, $subject, $message, $headers);

		if ($mail) { echo "OK"; }
      else { echo "Something went wrong. Please try again."; }
		
	} # end if - no validation error

	else {

		$response = (isset($error['name'])) ? $error['name'] . "<br /> \n" : null;
		$response .= (isset($error['email'])) ? $error['email'] . "<br /> \n" : null;
		$response .= (isset($error['message'])) ? $error['message'] . "<br />" : null;
		
		echo $response;

	} # end if - there was a validation error

}

?>

 

Poderiam me ajudar??

 

O envio funciona, porém apresenta a mensagem de erro e não atualiza a página.

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está concatenando $message sem antes cria-lá.

 

Precisa setar $error como um array para depois inserir posições nele.

 

Olhando por cima, parece ser isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples veja...

 

Citar

$message. = 

 

Isso no php apenas pega uma variável em string e adiciona novo conteúdo a ela exemplo:

//$var = ""; Comentei só para mostrar a criação da variável vazia.
$var = "Isso é uma variável";
$var .= " - Coloquei mais ou pouco de string na var";
var_dump($var);

Então temos de saída

Isso é uma variável - Coloquei mais ou pouco de string na var

 

Basta que você apenas crie a variável mesmo vazia antes de querer utilizar-la.

 

Quase a mesma coisa vai acontecer se o código chegar até o array $erro que deve ser criado antes de ser usado.

Então ao invés disso

if (!$error) {

Isso:

if (count($erro) < 1) {

Citar

NOTA: A função count é uma função nativa do php conta quantos índices existem dentro de um array

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Obrigado pelas dicas! Consegui corrigir o erro.

 

Criei uma variável vazia $message e $erro, aí funcionou corretamente.

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 capaldi
      <?php
      if(isset($_GET['deletar']) && $_GET['deletar'] == 'sim'):
          $id_produto = (int)$_GET['produto'];
          $pegar_dados_produto = BD::conn()->prepare("SELECT img_padrao FROM loja_produtos WHERE id = ?");
          $pegar_dados_produto->execute(array($idProduto));
          $dadosProd = $pegar_dados_produto->fetchObject();
          
          $verificar_imagens = BD::conn()->prepare("SELECT * FROM loja_imgprod WHERE id_produto = ?");
          $verificar_imagens->execute(Array($idProduto));
          
          if($verificar_imagens->rowCount() == 0){
              if(unlink('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto =BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($IdProduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';    
                  }
                  
              }
              
          }else{
              while($dadosImagenm = $verificar_imagens->fetchObject()){
                  unlink('../../produtos/'.$dadosImagem->img);
              }
              if(unlik('../../produtos/'.$dadosProd->img_padrao)){
                  $deletar_produto = BD::conn()->prepare("DELETE FROM loja_produtos WHERE id = ?");
                  if($deletar_produto->execute(array($idproduto))){
                      echo'<script>alert("Produto excluido com sucesso!");location.href"index.php?pagina=editarProdutos</script>';
                  }
              }
          }
      endif;
      ?>
       
      Ola, estou tabalhando com esse script, e não consigo resolver esse problema alguém pose me ajudar?
    • Por mateumt15
      Estou com o trecho de codigo abaixo, mas quando tento mostrai isto em uma tabela ele sempre pula a primeira linha do banco. 
      <?php $servername = "127.0.0.1";
              $username = "root";
              $password = "12345678";
              $dbname = "mydb";
              $conn = new mysqli($servername, $username, $password, $dbname);
              $sql = ("select id_link,link,data_inicio,data_fim,acao,dominio from link");
              $result = $conn->query($sql);
              $row = $result->fetch_assoc();
             
              while ($row = $result->fetch_assoc()):
                  echo "<tr>";
                  echo"<td>";echo $row['id_link'];echo "</td>";
                  echo"<td>";echo $row['link'];echo "</td>";
                  echo"<td>";echo $row['data_inicio'];echo "</td>";
                  echo"<td>";echo $row['data_fim'];echo "</td>";
                  if($row['acao']==='0')
                  {
                      echo"<td>";echo 'Bloqueado';echo "</td>";
                  }
                  if($row['acao']==='1')
                  {
                      echo"<td>";echo 'Permitido';echo "</td>";
                  }
                  if($row['dominio']==='0')
                  {
                      echo"<td>";echo 'URL';echo "</td>";
                  }
                  if($row['dominio']==='1')
                  {
                      echo"<td>";echo 'Dominio';echo "</td>";
                  }
              endwhile;
              $conn->close();
      ?>
    • Por patriciahelena
      Boa noite,
       
      Preciso de ajuda.
      No arquivo form.php tenho 3 inputs de entrada(valor1, valor2, valor3) e 3 inputs(disabled) que receberão os valores calculados do arquivo form_matematico5.php.
      Na tag form onsubmit="return calcula()"
       
          <h4 class="calcula"></h4>
       
      <script>
      function calcula($volmedio, $temp, $precogas) {
      $.get("form_matematico5.php", $('#calculorecovap').serialize(),
          function(data){
              $('.calcula').html(data);
          }
      );
      return false;
      }
      </script>
       
       
      No arquivo form_matecatico5.php é feito os calculos gerando 3 valores. 
      Tenho um echo:
      echo 'texto<br><div style=font-size:23px;color:red;>' . number_format($Resultado1,0,",","."). '</div> <br> texto<br><div style=font-size:23px;color:red;>'. number_format($Resultado2,0,",","."). '</div> <br>texto<br><div style=font-size:23px;color:red;>R$ '. number_format($Resultado3,2,",","."). '</div>';
       
      Ele retorna o echo certinho em     <h4 class="calcula"></h4>.
      Mas o que eu quero mesmo é que Resultado1 retorne dentro do primeiro input(disabled), o Resultado2 dento do segundo input(disabled) e assim com o terceiro. Ou seja,
      Cada input(disabled), recebera um valor diferente e não o total de .calcula.
       
      Espero ter explicado direitinho,
      Obrigada
       
       
       
       
       
       
       
    • Por luisfeliperm2
      Estou criando um sistema de login e cadastro de um jogo em php. Conectei ao postgresql e agora estou com um problema. Preciso saber qual criptografia é utilizada. Todas as hashs possuem 32 caracteres e por isso pensei que fosse MD5. Mas não é.
      password - > 62f9f2022536274b47f4daa0887361cf
      teste1 -> deaafc806aef00d0262e098ff089fff1
      Outras senhas criptografadas:
      59a93faaaf6d43ca4c3ef9ec183200ea
      47d163c4e9388dfd4b2dc7c327a33761
      8dffc56f2382d0f5552c04d9fa014d0e
    • Por raphael123
      Estou tentando realizar um insert no banco e está ocorrendo esse erro ao clicar em salvar. Poderiam me ajudar a solucionar esse problema, estou utilizando a linguagem PHP, segue o erro e meu código abaixo.
       


       
      <?php 
       
      $ieqbairro = $_POST['ieqbairro'];
      $pastor = $_POST['pastor'];
      $lider = $_POST['lider'];
      $celulaAtivas = $_POST['celulasativas'];
      $participantes = $_POST['participantescelulas'];
      $quantidade = $_POST['quantidadereunioes'];
      $quantmensais = $_POST['quantidadeensaiosmensais'];
      $diaensaio = $_POST['diaensaio'];
      $hora = $_POST['horaensaio'];
      $totalmenbrosminis = $_POST['totalmembrosdepartamento'];
      $vocal = $_POST['vocal'];
      $mulhercontralto = $_POST['mulhercontralto'];
      $mezzosoprano = $_POST['mezzosoprano'];
      $soprano = $_POST['soprano'];
      $homensbaixo = $_POST['homensbaixo'];
      $baritono = $_POST['baritono'];
      $tenor = $_POST['tenor'];
      $guitarra = $_POST['guitarrista'];
      $baterista = $_POST['bateristas'];
      $tecladista = $_POST['tecladistas'];
      $violao = $_POST['violao'];
      $baixo = $_POST['baixistas'];
      $meialua = $_POST['meialua'];
      $cajon = $_POST['cajon'];
      $outros = $_POST['outros'];
      $ministeriodecarreira = $_POST['ministeriocarreira'];
      $descrinomemstcarreira = $_POST['nomeministeriocarreira'];
      $connect = mysqli_connect('localhost','root','') or die('Erro ao conectar ao banco de dados');
      $db = mysqli_select_db($connect,'1regiao');
      mysqli_set_charset($connect,'utf8');
      $query = mysqli_query($connect,"INSERT INTO tbfichacadadanca (ieqbairro, pastor, lider, celulaAtivas, participantescelulas,
      quantidadecelulas, quantidaensamensal, diaensaio, horaensaio, totalmenbrosminis, vocalquant, mulhercontralto, mulhermezzosoprano, mulhersoprano, homensbaixo, homensbaritono, homenstenor, guitarraqtd, bateristaqtd, tecladistaqtd, violaoqtd, baixoqtd, meialuaqtd, cajonqtd, outros, ministeriodecarreira, descrinomemstcarreira,) VALUES ('$ieqbairro','$pastor','$lider', '$celulaAtivas', '$participantes','$quantidade', '$quantmensais','$diaensaio', '$hora', '$totalmenbrosminis','$vocal', '$mulhercontralto','$mezzosoprano', '$soprano','$homensbaixo', '$baritono','$tenor', '$guitarra','$baterista', '$tecladista','$violao', '$baixo','$meialua', '$cajon','$outros', '$ministeriodecarreira','$descrinomemstcarreira')") or die mysqli_error($query); 
       
      if($query){
             echo"<script language='javascript' type='text/javascript'>alert('Dados Salvos com sucesso!');window.location.href='fichacadastral1regiaodanca.html'</script>";
          }
                
      mysqli_close($connect);
      ?>

×

Informação importante

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