Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Web Design Valdeci

Problemas ao enviar news letter

Recommended Posts

Boa tarde Pessoal,

 

Estou utilizando um código que peguei no laboratório de scripts para envio de newsletter.

 

Assim que peço para enviar aparecem os seguintes erros:

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\caminho\dominio.com.br\httpdocs\enviaEmail.php:1) in C:\caminho\dominio.com.br\httpdocs\enviaEmail.php on line 2

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\caminho\dominio.com.br\httpdocs\enviaEmail.php on line 50

todas as mensagens foram enviadas!

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\caminho\dominio.com.br\httpdocs\enviaEmail.php on line 62

 

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\caminho\dominio.com.br\httpdocs\enviaEmail.phpon line 81

 

abaixo o código:

 


<?php 
session_start();
require('require/cabecalho.php');

if($_POST[elm1] != "")
$_SESSION[msg] = stripslashes($_POST[elm1]);
$msg = $_SESSION[msg];
if($_POST[assunto] != "")
$_SESSION[assunto] = $_POST[assunto];
$assunto = $_SESSION[assunto];

if($_POST[ramo] != "")
$_SESSION[ramo] = $_POST[ramo];

$ramo = $_SESSION[ramo];

//configurações do banco 
$host = "localhost"; 
$banco = "banco"; 
$usuario = "usuarios"; 
$senha = "senha"; 
$tabela = "clientes1"; 
$campos = "id,email,status"; //campos da tabela 

//configurações do e-mail 
$subject = $assunto; 

$body = $msg; 
$nome_remetente = "Nome da Empresa"; 
$email_remetente = "contato@dominio.com.br"; 

$quant = 10; //número de mensagens enviadas de cada vez 
$sec = 10; //tempo entre o envio de um pacote e outro (em segundos) 
?> 

<?php 
$conexao = mysql_connect($host,$usuario,$senha); 
mysql_select_db($banco); 
?> 

<?php 
$ok = 0; 
$inicio = 0; 
$fim = $inicio + $quant; 
?> 

<?php 
$sql = "select $campos from $tabela ".(($ramo != "")? "where ramo='{$_SESSION[ramo]}'" : "")." and status = 0 limit $inicio,$fim"; 
$query = mysql_query($sql,$conexao); 
$registros = mysql_num_rows($query); 
?> 

<?php 
if($registros==0){ 
mysql_query("update $tabela set status = 0"); 
printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>"); 
$ok = 1; 
} 
?> 

<?php 
while($result = mysql_fetch_array($query)){ 
$id = $result[0]; 
$to = $result[1]; 
$status = $result[2]; 

if($to != ""){

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $nome_remetente <$email_remetente>";
mail($to,$subject,$body,$headers); 
mysql_query("update $tabela set status = 1 where id = $id"); 
printf("<font face=’tahoma’>$id ) mensagem para <b>$to</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font> 
"); 
} 
}
?> 

<?php 
mysql_free_result($query); 
mysql_close($conexao); 
?> 

<?php 
if(!$ok){ 
echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">"); 
} 
?> 

 

Mexendo aqui, criei outra forma de conexao e a maioria dos erros não aparecem mais, o único que ainda insiste é o do session>

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\caminho\dominio.com.br\httpdocs\enviaEmail.php:1) in C:\caminho\dominio.com.br\httpdocs\enviaEmail.phpon line 3

 todas as mensagens foram enviadas!

 

<?php 
if (!isset($_SESSION)) {
session_start();
}
require('require/cabecalho.php');

if($_POST['elm1'] != "")
$_SESSION[msg] = stripslashes($_POST['elm1']);
$msg = $_SESSION['msg'];
if($_POST['assunto'] != "")
$_SESSION['assunto'] = $_POST['assunto'];
$assunto = $_SESSION['assunto'];

if($_POST['ramo'] != "")
$_SESSION['ramo'] = $_POST['ramo'];

$ramo = $_SESSION[ramo];

//configurações do e-mail 
$subject = $assunto; 

$body = $msg; 
$nome_remetente = "Empresa"; 
$email_remetente = "contato@dominio.com.br"; 

$quant = 10; //número de mensagens enviadas de cada vez 
$sec = 10; //tempo entre o envio de um pacote e outro (em segundos) 
?> 

<?php
$conexao = mysql_connect("localhost","usuario","senha") or die( mysql_error() ); 
mysql_select_db("banco",$conexao) or die( mysql_error() );
?> 

<?php 
$ok = 0; 
$inicio = 0; 
$fim = $inicio + $quant; 
?> 

<?php 
$sql = "SELECT * from clientes1 ".(($ramo != "")? "where ramo='{$_SESSION['ramo']}'" : "")." and status = 0 limit $inicio,$fim"; 
$query = mysql_query($sql,$conexao)or die( mysql_error() );
$registros = mysql_num_rows($query); 
?> 

<?php 
if($registros==0){ 
mysql_query("update clientes1 set status = 0"); 
printf("<font face=’tahoma’>todas as mensagens foram enviadas!</font>"); 
$ok = 1; 
} 
?> 

<?php 
while($result = mysql_fetch_array($query)){ 
$id = $result[0]; 
$to = $result[1]; 
$status = $result[2]; 

if($to != ""){

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $nome_remetente <$email_remetente>";
mail($to,$subject,$body,$headers); 
mysql_query("update clientes1 set status = 1 where id = $id"); 
printf("<font face=’tahoma’>' . $id . ') mensagem para <b>' . $to . '</b> <font color=’#ff0000’><b>enviada com sucesso!</b></font></font> 
"); 
} 
}
?> 

<?php 
mysql_free_result($query); 
mysql_close($conexao); 
?> 

<?php 
if(!$ok){ 
echo("<meta http-equiv=\"refresh\" content=\"" . $sec . "\">"); 
} 
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Pessoal,

 

 

Fiz de tudo pra arrumar o código mas ainda continua o erro do session.

 

Entrei nas dicas, fiz o que estava la e nada.

 

Sera que o problema que alguma coisa no servidor que está desabilitada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o erro:

 

enviaEmail.php:1

 

provavel que o teu problema seja BOM

faça isso aqui:

http://forum.imasters.com.br/topic/423189-acentuacao-no-php/page__view__findpost__p__1669121

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o que o pessoal la dissse:

Coloquei o codigo abaixo na pagina

abri o notpad, salvei como uft-8 e apareceu o seguinte erro:

<?php
header("Content-Type" content="text/html; charset=utf-8",true)
?>

 

Parse error: parse error, unexpected T_STRING in C:\caminho\dominio.com.br\httpdocs\enviaEmail1.php on line 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

header('Content-type: text/html; charset=utf-8');

 

salvou sem DOM ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora apareceram outros erros:

 

Warning: Cannot modify header information - headers already sent by (output started at C:\caminho\dominio.com.br\httpdocs\enviaEmail1.php:1) in C:\caminho\dominio.com.br\httpdocs\enviaEmail1.php on line 2

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\caminho\dominio.com.br\httpdocs\enviaEmail1.php:1) in C:\caminho\dominio.com.br\httpdocs\enviaEmail1.phpon line 5

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and status = 0 limit 0,10' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

abre o teu arquivo num editor simples, como o notepad++

 

veja se existe algum caracter, espaço... antes do <?php

você fez oque eu disse sobre o 'sem BOM' ??

 

siga estas dicas:

http://forum.imasters.com.br/topic/375800-orientacoes-para-uma-boa-participacao/

 

e leia o post do Beraldo.

Está tudo aqui oque você precisa para resolver, preste atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde William,

 

Agora funcinou, dá a mensagem de enviadas mas não chega nenhum e-mail, outra coisa que reparei, é que ele teria que enviar de 10 em 10 e o refresh não funciona na página.

 

coloquei o

 

<?php
ini_set( 'display_errors', 1 ); 
error_reporting( E_ALL | E_STRICT );
?>

No início da página para ver todos os erros possíveis, mas não aparece nenhum erro.

 

poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora funcinou, dá a mensagem de enviadas mas não chega nenhum e-mail

beleza..

 

siga estas dicas:

http://wiki.locaweb.com.br/pt-br/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ufff... agora o erro é

 

 

Notice: Undefined index: ramo in C:\Inetpub\vhosts\bodycleanlaser.com.br\httpdocs\Adm\enviaEmail1.php on line 18

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and status = 0 limit 0,10' at line 1

 

 

$sql = "select * from clientes1 ".(($ramo != "")? "where ramo='{$_SESSION['ramo']}'" : "")." and status = 0 limit $inicio,$fim"; 
$query = mysql_query($sql,$conexao)or die( mysql_error() );
$registros = mysql_num_rows($query); 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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