Ir para conteúdo
rogerblower

Enviar email PHPMailer e gravar no banco (Envia mas não grava)

Recommended Posts

Pessoal estou usando PHPMailer para enviar email com dados do formulário e ao mesmo tempo gravar no mysql.

O email esta sendo enviado mas não esta gravando no banco, não sei onde estou errando segue meu código.

 

<?php include 'header.php'; ?>

    <div class="container">

      <div class="row">
		<div class="col-md-12">
		<div class="row">
	 
<?php


date_default_timezone_set('Etc/UTC');

if(isset($_POST['btnsave']))
	{

		$id_cliente		= $_POST['id_cliente'];
		$produto		= $_POST['produto'];
		$medida			= $_POST['medida'];
		$msg			= $_POST['msg'];
		$qtd			= $_POST['qtd'];
		$aprovado		= $_POST['aprovado'];
		$status		 	= $_POST['status'];
		$data_orca     	= date('Y-m-d');
	
		
		$imgFile = $_FILES['user_image']['name'];
		$tmp_dir = $_FILES['user_image']['tmp_name'];
		$imgSize = $_FILES['user_image']['size'];
	
		if(empty($imgFile)){
			$errMSG = "Please Select Image File.";
		}
		else
		{
			$upload_dir = 'imagens/orcamento/'; // upload directory
	
			$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
		
			// valid image extensions
			$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
		
			// rename uploading image
			$userpic = rand(1000,1000000).".".$imgExt;
				
			// allow valid image file formats
			if(in_array($imgExt, $valid_extensions)){			
				// Check file size '5MB'
				if($imgSize < 5000000)				{
					move_uploaded_file($tmp_dir,$upload_dir.$userpic);
				}
				else{
					$errMSG = "Desculpe seu arquivo é muito grande.";
				}
			}
			else{
				$errMSG = "Desculpe, somente arquivos JPG, JPEG, PNG e GIF são aceitos.";		
			}
		}
		require_once('includes/init.php');
		

		if(!isset($errMSG)){
			
		$addv=$pdo->prepare("INSERT INTO orcamento (id_cliente, produto, medida, qtd, msg, aprovado, status, data_orca, img) VALUE(?,?,?,?,?,?,?,?,?)");

		$addv->bindValue("1",$id_cliente);
		$addv->bindValue("2",$produto);
		$addv->bindValue("3",$medida);
		$addv->bindValue("4",$qtd);
		$addv->bindValue("5",$msg);
		$addv->bindValue("6",$aprovado);
		$addv->bindValue("7",$status);
		$addv->bindValue("8",$data_orca);
		$addv->bindValue("9",$userpic);
			
			if($addv->execute())
			{
				$successMSG = "Orçamento enviado com sucesso...";
			}
			else
			{
				$errMSG = "Erro ao enviado Orçamento...";
			}
		}		
		
	$path_file = $upload_dir.$userpic;


///////////////////////////////////////////////////////////////////////////////////////////////
require 'phpmailer/PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
$mail->CharSet = 'UTF-8';

//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = "smtp.uhserver.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 587;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Username to use for SMTP authentication
$mail->Username = "contato@xxxxx.com.br";
//Password to use for SMTP authentication
$mail->Password = "xxxxxx";

//Set who the message is to be sent from
$mail->setFrom('contato@xxxxx.com.br', 'xxxxx');
//Set an alternative reply-to address
$mail->addReplyTo('no-reply@xxxxx.com.br', 'xxxxx');
//Set who the message is to be sent to
$mail->addAddress('contato@xxxxx.com.br', 'xxxxx');
//Mantenha-o simples - não use HTML
$mail->isHTML(true);

$id = $_SESSION['id_do_produto'];
             $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC");
             $add_pro->execute();
             
			 
            while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){
                extract($row);
				
$assunto = ''.$row['nome_produto'].'';
			}

//Set the subject line

$mail->Subject = 'Solicitação de orcamento de: '.$assunto.'';

$mail->Body = '
<html bgcolor="#E6E6E6">
	
<table able width="60%" align="center" style="background-color:#ffffff; border:1px solid #cccccc;">

    <tr style="background-color:#ffffff; border: 1px solid #cccccc;">
		<td><a href="http://xxxxx.com.br" target="_blank"><img src="http://xxxxx.com.br/imagens/logo.png" width="300" height="80" /></a></td>
	</tr>

  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
	
	<tr style="background-color:#ffffff; border: 1px solid #cccccc;">
		<td style="color:blue;"><strong> '.$assunto.'</strong></td>
    </tr>
	
  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
  
  <tr>
    <td colspan="2">'.$msg.'</td>
  </tr>
  
  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
    <tr>
	<td colspan="3" style="font-size:9px;">Roda pé do formulário</td>
  </tr>
</table>
 </html>
';

//$mail->AddAttachment($path_file);

//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//Replace the plain text body with one created manually
//$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
//$mail->addAttachment('examples/images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
    //echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Mensagem Enviada!";
	header('Location: index.php');
}
	}
?>
 <br/><br/>
<table class="table table-bordered table-responsive">
	<form method="post" enctype="multipart/form-data" class="form-horizontal">
	
	<tr>	
		<td><label class="control-label">Produto:</label></td>
            <?php

			 $id = $_SESSION['id_do_produto'];
             $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC");
             $add_pro->execute();
			 
             while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){
                extract($row);
                    
                    echo'<td><input class="form-control" type="text" name="produto" value="'.$row['nome_produto'].'"/></td>';
					
			 }
          ?>
	</tr>
	
	<tr>	
			<td><label class="control-label">Cliente:</label></td>
			<td><input class="form-control" type="text" name="" value="<?php echo $_SESSION['c_nome'] ?>"/>
			<input class="form-control" type="hidden" name="id_cliente" value="<?php echo $_SESSION['c_id'] ?>"/></td>
	</tr>
    
	<tr>	
        <td><label class="control-label">Medida: <i style="font-size: 11px">Altura X Largura</i></label></td>
		<td><input class="form-control" type="text" name="medida" placeholder="0,00 x 0,00" /></td>
	</tr>
	
	<tr>	
        <td><label class="control-label">Quantidde:</label></td>
		<td><input class="form-control" type="text" name="qtd" /></td>
	</tr>
	
	<tr>
		<td><label class="control-label">Mensagem.</label></td>
        <td><textarea class="form-control" type="text" name="msg" rows="3" placeholder="Mensagem"></textarea></td>
    </tr>
	
		<input class="form-control" type="hidden" name="aprovado" value="Não" />
		<input class="form-control" type="hidden" name="status" value="Aberto" />

	<tr>
    	<td><label class="control-label">Envie seu Layout.</label></td>
        <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td>
    </tr>
    
    <tr>
        <td colspan="2" style="text-align:center; padding: 30px;"><button type="submit" name="btnsave" class="btn btn-primary">
        <span class="glyphicon glyphicon-save"></span> &nbsp; Enviar Orçamento &nbsp;
        </button>
        </td>
    </tr>
</form>
</table>
		  </div><!-- /.row -->
		</div><!-- /.col-md-12 -->
      </div><!-- /.row -->
    </div><!-- /.container -->

<?php include 'footer.php'; ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 horas atrás, rogerblower disse:

Pessoal estou usando PHPMailer para enviar email com dados do formulário e ao mesmo tempo gravar no mysql.

O email esta sendo enviado mas não esta gravando no banco, não sei onde estou errando segue meu código.

 


<?php include 'header.php'; ?>

    <div class="container">

      <div class="row">
		<div class="col-md-12">
		<div class="row">
	 
<?php


date_default_timezone_set('Etc/UTC');

if(isset($_POST['btnsave']))
	{

		$id_cliente		= $_POST['id_cliente'];
		$produto		= $_POST['produto'];
		$medida			= $_POST['medida'];
		$msg			= $_POST['msg'];
		$qtd			= $_POST['qtd'];
		$aprovado		= $_POST['aprovado'];
		$status		 	= $_POST['status'];
		$data_orca     	= date('Y-m-d');
	
		
		$imgFile = $_FILES['user_image']['name'];
		$tmp_dir = $_FILES['user_image']['tmp_name'];
		$imgSize = $_FILES['user_image']['size'];
	
		if(empty($imgFile)){
			$errMSG = "Please Select Image File.";
		}
		else
		{
			$upload_dir = 'imagens/orcamento/'; // upload directory
	
			$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
		
			// valid image extensions
			$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
		
			// rename uploading image
			$userpic = rand(1000,1000000).".".$imgExt;
				
			// allow valid image file formats
			if(in_array($imgExt, $valid_extensions)){			
				// Check file size '5MB'
				if($imgSize < 5000000)				{
					move_uploaded_file($tmp_dir,$upload_dir.$userpic);
				}
				else{
					$errMSG = "Desculpe seu arquivo é muito grande.";
				}
			}
			else{
				$errMSG = "Desculpe, somente arquivos JPG, JPEG, PNG e GIF são aceitos.";		
			}
		}
		require_once('includes/init.php');
		

		if(!isset($errMSG)){
			
		$addv=$pdo->prepare("INSERT INTO orcamento (id_cliente, produto, medida, qtd, msg, aprovado, status, data_orca, img) VALUE(?,?,?,?,?,?,?,?,?)");

		$addv->bindValue("1",$id_cliente);
		$addv->bindValue("2",$produto);
		$addv->bindValue("3",$medida);
		$addv->bindValue("4",$qtd);
		$addv->bindValue("5",$msg);
		$addv->bindValue("6",$aprovado);
		$addv->bindValue("7",$status);
		$addv->bindValue("8",$data_orca);
		$addv->bindValue("9",$userpic);
			
			if($addv->execute())
			{
				$successMSG = "Orçamento enviado com sucesso...";
			}
			else
			{
				$errMSG = "Erro ao enviado Orçamento...";
			}
		}		
		
	$path_file = $upload_dir.$userpic;


///////////////////////////////////////////////////////////////////////////////////////////////
require 'phpmailer/PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
$mail->CharSet = 'UTF-8';

//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = "smtp.uhserver.com";
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 587;
//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Username to use for SMTP authentication
$mail->Username = "contato@xxxxx.com.br";
//Password to use for SMTP authentication
$mail->Password = "xxxxxx";

//Set who the message is to be sent from
$mail->setFrom('contato@xxxxx.com.br', 'xxxxx');
//Set an alternative reply-to address
$mail->addReplyTo('no-reply@xxxxx.com.br', 'xxxxx');
//Set who the message is to be sent to
$mail->addAddress('contato@xxxxx.com.br', 'xxxxx');
//Mantenha-o simples - não use HTML
$mail->isHTML(true);

$id = $_SESSION['id_do_produto'];
             $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC");
             $add_pro->execute();
             
			 
            while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){
                extract($row);
				
$assunto = ''.$row['nome_produto'].'';
			}

//Set the subject line

$mail->Subject = 'Solicitação de orcamento de: '.$assunto.'';

$mail->Body = '
<html bgcolor="#E6E6E6">
	
<table able width="60%" align="center" style="background-color:#ffffff; border:1px solid #cccccc;">

    <tr style="background-color:#ffffff; border: 1px solid #cccccc;">
		<td><a href="http://xxxxx.com.br" target="_blank"><img src="http://xxxxx.com.br/imagens/logo.png" width="300" height="80" /></a></td>
	</tr>

  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
	
	<tr style="background-color:#ffffff; border: 1px solid #cccccc;">
		<td style="color:blue;"><strong> '.$assunto.'</strong></td>
    </tr>
	
  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
  
  <tr>
    <td colspan="2">'.$msg.'</td>
  </tr>
  
  <tr>
	<td colspan="3"><hr / style="color:#cccccc;"></td>
  </tr>
    <tr>
	<td colspan="3" style="font-size:9px;">Roda pé do formulário</td>
  </tr>
</table>
 </html>
';

//$mail->AddAttachment($path_file);

//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//Replace the plain text body with one created manually
//$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
//$mail->addAttachment('examples/images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
    //echo "Mailer Error: " . $mail->ErrorInfo;
} else {
    echo "Mensagem Enviada!";
	header('Location: index.php');
}
	}
?>
 <br/><br/>
<table class="table table-bordered table-responsive">
	<form method="post" enctype="multipart/form-data" class="form-horizontal">
	
	<tr>	
		<td><label class="control-label">Produto:</label></td>
            <?php

			 $id = $_SESSION['id_do_produto'];
             $add_pro = $pdo->prepare("SELECT * FROM produtos WHERE id = '$id' ORDER BY nome_produto ASC");
             $add_pro->execute();
			 
             while($row=$add_pro->fetch(PDO::FETCH_ASSOC)){
                extract($row);
                    
                    echo'<td><input class="form-control" type="text" name="produto" value="'.$row['nome_produto'].'"/></td>';
					
			 }
          ?>
	</tr>
	
	<tr>	
			<td><label class="control-label">Cliente:</label></td>
			<td><input class="form-control" type="text" name="" value="<?php echo $_SESSION['c_nome'] ?>"/>
			<input class="form-control" type="hidden" name="id_cliente" value="<?php echo $_SESSION['c_id'] ?>"/></td>
	</tr>
    
	<tr>	
        <td><label class="control-label">Medida: <i style="font-size: 11px">Altura X Largura</i></label></td>
		<td><input class="form-control" type="text" name="medida" placeholder="0,00 x 0,00" /></td>
	</tr>
	
	<tr>	
        <td><label class="control-label">Quantidde:</label></td>
		<td><input class="form-control" type="text" name="qtd" /></td>
	</tr>
	
	<tr>
		<td><label class="control-label">Mensagem.</label></td>
        <td><textarea class="form-control" type="text" name="msg" rows="3" placeholder="Mensagem"></textarea></td>
    </tr>
	
		<input class="form-control" type="hidden" name="aprovado" value="Não" />
		<input class="form-control" type="hidden" name="status" value="Aberto" />

	<tr>
    	<td><label class="control-label">Envie seu Layout.</label></td>
        <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td>
    </tr>
    
    <tr>
        <td colspan="2" style="text-align:center; padding: 30px;"><button type="submit" name="btnsave" class="btn btn-primary">
        <span class="glyphicon glyphicon-save"></span> &nbsp; Enviar Orçamento &nbsp;
        </button>
        </td>
    </tr>
</form>
</table>
		  </div><!-- /.row -->
		</div><!-- /.col-md-12 -->
      </div><!-- /.row -->
    </div><!-- /.container -->

<?php include 'footer.php'; ?>

 

 

Veja um ex:

 

LINK 01

 

LINK 02

 

Espero que isso possa lhe ajudar em algo...

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 ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
    • Por First
      Olá a todos!
       
      Quando eu tento fazer o login me mostra esse erro "Could not log you in."; Alguém sabe me ajudar a resolver esse problema no meu código?
      <?php require_once("core/init.php"); if (Input::exists()) { if (Token::check(Input::get("token"))) { $validate = new Validate(); $validation = $validate->check($_POST, array( "username" => array("required" => true), "password" => array("required" => true) )); if ($validation->passed()) { $user = new User(); $remember = (Input::get("remember")) === "on" ? true : false; $login = $user->login(Input::get("username"), Input::get("password"), $remember); if ($login) { Session::flash("home", "Welcome back!"); Redirect::to("index.php"); } else { echo "Could not log you in."; } } else { foreach ($validation->errors() as $error) { echo $error."<BR>"; } } } } ?> <form action="" method="POST"> <div class="field"> <label for="username">Username</label> <input type="text" name="username" id="username"> </div> <div class="field"> <label for="password">Password</label> <input type="password" name="password" id="password"> </div> <div class="field"> <label for="remember"> <input type="checkbox" name="remember" id="remember"> Remember me </label> </div> <input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> <input type="submit" value="Log in"> </form>  
       
      Desde já obrigado.
×

Informação importante

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