Ir para conteúdo

POWERED BY:

Arquivado

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

Adson aquino

Selecionar todos

Recommended Posts

Olá, estou precisando de uma ajudinha, tenho um sistema e queria implantar um form para enviar mensagens para os usuários, consegui fazer para enviar de um por um, agora para enviar para todos de uma vez não tô conseguindo, como posso fazer isso, obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que chamar a função de envio dentro do loop que busca por todos os usuários. Mas cuidado para seu servidor não considerar você como spammer. Você precisa ver o número máximo de email por hora e adequar seu script para oobedecer a essa regra, usando a função sleep(), por exemplo.

 

http://www.php.net/sleep

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo não email que estou querendo enviar, estou querendo enviar apenas mensagens para todos usuários cadastrados em meu sistema, essas mensagem são jogadas em outra tabela que tem os campos mensagem e iduser, então fiz esse código que tem o botão enviar para todos, mais ele só está pegando o ultimo id e enviado.

 


<?php $sql = mysql_query("select id from users ") or die(mysql_error());
while($abc = mysql_fetch_array($sql)):

$destinos = array(
'Para todos' => ($abc[0]),);

endwhile;
?>
<?php 
						                
foreach ($destinos as $chave => $valor)
{
echo '<label><input type="checkbox" name="iduser" value="'.$valor.'" id="destinatario_0"';
echo '/>'.$chave.'</label><br />'; 
}
?>

Obg.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei o array depois do loop e coloquei uma variavel no loop pegando os valores, mesmo assim só enviou o último id, posta aí como posso fazer isso, obg Beraldo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei o array depois do loop e coloquei uma variavel no loop pegando os valores, mesmo assim só enviou o último id, posta aí como posso fazer isso, obg Beraldo.

 

Experimenta colocar antes do loop

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo coloquei do modo que postou, desse jeito aí ele criou um checkbox para cada id, e se eu selecionar mais de 1 ele só envia o valor do primeiro selecionado, oq pode ser?

 

A resposta acima que falei que não deu certo foi pro outro user.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui a parte de envio.

 


<?php
if($_SERVER["REQUEST_METHOD"] == "POST") 
{
	include ('trancar.php');
	
	$mensagem      = $_POST["mensagem"];
	$iduser        = $_POST["iduser"];

	if(ConectaMysql())
	{
		if(mysql_query("INSERT INTO mensagens (mensagem, iduser) VALUES ('$mensagem', '$iduser')"))
		{
			echo"<script language=javascript>alert('Operação efetuada com sucesso!')</script>";
			echo"<script language=javascript>location.href='listar.php'</script>";
		}
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você deve tratar iduser como um array

 

na geração do checkbox:

 

<input type="checkbox" name="iduser[]" ... />

 

isso manda iduser como arrray

 

 

depois, use foreach em $_POST['iduuser'] para pegar todos os destinatarios

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo fiz assim, mais ainda só pega 1 id.

 

<?php
if($_SERVER["REQUEST_METHOD"] == "POST") 
{
	include ('trancar.php');
	
	foreach($_POST['iduser'] as $valor)
	{
		$iduser = $iduser.$valor;
	}
	
	$mensagem      = $_POST["mensagem"];

	if(ConectaMysql())
	{
		if(mysql_query("INSERT INTO mensagens (mensagem, iduser) VALUES ('$mensagem', '$iduser')"))
		{
			echo"<script language=javascript>alert('Operação efetuada com sucesso!')</script>";
			echo"<script language=javascript>location.href='listar.php'</script>";
		}
	}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo consegui enviar mais de um, mais gerol mais um problema. se eu seleciono o iduser 2 e 17, lá no mysql vai um registro com o id 2 e o segundo registro com 217, ta colocando o 2 do primeiro registro na frente do 17.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De novo, você não postou o código. Isso complica.

 

 

Mas, segundo o seu último c[odigo postado, você está concatenando $iduser com $valor. Isso está errado.

 

Em vez de:

$iduser = $iduser.$valor;

 

 

faça:

$iduser[] = $valor;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beraldo fiz o que você postou, ele envia o total de mensagens que seleciono, mais os id vam com o valor 0, veja o código que envia.

 

 


<?php
if($_SERVER["REQUEST_METHOD"] == "POST") 
{
	include ('trancar.php');
	
	if(ConectaMysql()){
		
		
	$mensagem      = $_POST["mensagem"];
	
	foreach($_POST['iduser'] as $valor)
	{
		$iduser[] = $valor;
		
		if(mysql_query("INSERT INTO mensagens (mensagem, iduser) VALUES ('$mensagem', '$iduser')"))
	{
	}
			echo"<script language=javascript>alert('Operação efetuada com sucesso!')</script>";
			echo"<script language=javascript>location.href='listar.php'</script>";
		}
	}
}
?>

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.