Ir para conteúdo

POWERED BY:

Arquivado

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

osk

acentuação errada?

Recommended Posts

o problema e que nao faz o update ja tentei mudar mas nao achei o erro.

 

if(mail($para, $assunto, $msg, $cabecalho)){echo "Mensagem enviada para: $para";@mysql_query("UPDATE". $tabela ." SET codStatus = 1 WHERE id = ". $para);}else{echo "Mensagem não enviada para: $para";}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu dei o espaço mas parece que nao deu certo vou posta o code inteiro.

 

<?php$host = "";$banco = ";$usuario = "";$senha = "";$tabela = "";$campos = "";$quant =;$seg =;$nome = "";mysql_connect($host,$usuario,$senha);mysql_select_db($banco);$inicio = $_GET['inicio'];if($inicio == ""){$inicio = 0;}else{$inicio = $_GET['inicio'];}$fim = $inicio + $quant;$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE codStatus = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());if(mysql_num_rows($sql) == 0){echo "Fim do processo de envio!";}else{echo "<meta http-equiv=\"refresh\" content=\"" . $seg . ",URL=?inicio=". $fim ."\">";}while($r = mysql_fetch_array($sql)){$para = $r["email"];$cabecalho = "From: $nome <$para> $para";$assunto = "";$msg = "";if(mail($para, $assunto, $msg, $cabecalho)){echo "Mensagem enviada para: $para";@mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE id = ". $id);}else{echo "Mensagem não enviada para: $para";}}mysql_free_result($sql);}else{echo "<script>location.href='login.php'</script>";}?><br><a href="java script:history.back(1)">Voltar </a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ta, e que elas estavão preenchidas sim Beraldo eu que tirei =)!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tava lendo o code dnv e vi nao tem nada identificando a string $id, entaum pensei em trocar a linha:

 

@mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE id = ". $id);

 

para:

 

porque a string $para e o email de quem vai receber a mensagem.

 

@mysql_query(" UPDATE " . $tabela . " SET codStatus = 1 WHERE email = ". $para);

 

Mas so que tb nao deu certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Campo id é de que tipo ? Inteiro / String ?

 

uma dica, sempre que tenho problemas assim eu executo a Query diretamente no phpMyAdmin ou no MySql Query Browser para ficar mais claro onde está o erro.

 

Faça o mesmo e veja o erro que ele retorna, assim fica mais facil identical onde está o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso nao daria certo pq, ele não retorna um erro.Ele so nao atualiza a tabela codStatus.Esse code eu uso ele para enviar Noticias para emails cadastrado no site, so que assim eu quero que quando ele enviar a msg para o destinario mude o codStatus para 1 so para quem ele enviou para que se possa ter um controle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não retorna erro devido ao arroba(@) que está antes do mysql_query,

 

fica complicado saber o que está acontecendo, mostre-nos a estrutura da tabela, e tente executar uma query dessa no phpMyAdmin e poste o erro que ele retornar para sabermos exatamente onde está o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola dnv bom eu achei o pq ele nao alterava o campo enviado, pq a id nao estava incluida em $campos =), e outra por causa ta acentuação nesta linha: @mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero); mas so que apareceu outro problema, quando as aspas no começo do UPDATE for UPDATE" ele nao atualiza a tabela e a função continua, mas quando ela esta assim UPDATE " . $tabela . " ele atualiza, mas so que nao continua a função ele termina a função logo que manda o primeiro email. Alguem sabe o pq?

 

<?session_start("admin");if($_SESSION["admin"] == "on"){require ("../config.php");$tabela = "newsletter";$campos = "id, email";$quant = 1;$seg = 3;$assunto = "Noticia";$inicio = $_GET["inicio"];if($inicio == ""){$inicio = 0;}else{$inicio = $_GET["inicio"];}$fim = $inicio + $quant;$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());if(mysql_num_rows($sql) == 0){echo "<span class='style1'>Fim do processo de envio!</span>";}else{echo "<meta http-equiv=\"refresh\" content=\"" . $seg . ",URL=?inicio=". $fim ."\">";}while($lista = mysql_fetch_array($sql)){$email = $lista["email"];$numero = $lista["id"];@mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero);$cabecalho  = "From: $nome <$email> $email";$mensagem  = "";if(imap_mail($email, $assunto, $mensagem, $cabecalho)){echo "<span class='style1'>Mensagem enviada para: $email ($numero)</span>";}else{echo "<span class='style1'>Mensagem não enviada para: $email ($numero)</span>";}}}else{echo "<script>location.href='login.php'</script>";}?><style type="text/css"><!--.style1 {color: #ff9a00}--></style>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola dnv bom eu achei o pq ele nao alterava o campo enviado, pq a id nao estava incluida em $campos =), e outra por causa ta acentuação nesta linha: @mysql_query("UPDATE " . $tabela . " SET enviado = 1 WHERE id = " . $numero); mas so que apareceu outro problema, quando as aspas no começo do UPDATE for UPDATE" ele nao atualiza a tabela e a função continua, mas quando ela esta assim UPDATE " . $tabela . " ele atualiza, mas so que nao continua a função ele termina a função logo que manda o primeiro email. Alguem sabe o pq?

 

osk, estive verificando seu cod, não sei se é isto, mas acredito que seja. No início do script você seta os valores das variáveis e uma delas é

'$quant = 1;'

 

e no seu sql você faz assim

'$sql = mysql_query("SELECT ". $campos ." FROM ". $tabela ." WHERE enviado = 0 and bloqueado = 0 LIMIT ". $inicio .",". $quant)or die(mysql_error());'

 

da maneira que esta você está buscando somente um email mesmo, pois o seu sql tem um início pra começar a buscar mas o limite é 1 registro, faz o que o colega lá em cima sugeriu, coloque seu cod no phpmyadmin ou em outro qualquer e faça a pesquiza no bd pra ver se retorna só 1 registro mesmo, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum achu agora entendi o que você quis dizer, entaum vamu la, mudei $quant para 2 e ele realmente busca os 2 e muda a tabela enviado para 1 como eu tambem pedi, mas so que quando ele envia ele envia de uma so vez para os 2 e termina a funcao , e o resto ele nao envia, teria como ele continuar enviando sem para e mudando a tabela enviado para 1?

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.