Problemas ao enviar news letter
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;
}
?>
<?phpwhile($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;
}
?>
<?phpwhile($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 . "\">");
}
?>Discussão (12)
Carregando comentários...