All pastes #178245 Raw Edit

Miscellany

public text v1 · immutable
#178245 ·published 2006-09-21 03:38 UTC
rendered paste body
<?
include('config.inc.php');

$connection = mysql_connect($db_server, $db_user, $db_password) or die("Could not connect : " . mysql_error());
mysql_select_db($db_name) or die("Could not select database");

$today = getdate();

$query = "SELECT COUNT(*) FROM mailinglist_subscribers WHERE confirmed = '1'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
$row = mysql_fetch_array($result);

if (get_magic_quotes_gpc() == 1) // Quotes in the message are automatically being escaped
{
	if(!empty($_POST['message'])) $_POST['message'] = mensagem($_POST['message']);
	$message = stripslashes($_POST[message]);
	$subject = strip_tags(stripslashes($_POST[subject]));
}
else
{
	$_POST['message'] = mensagem($_POST['message']);
	$message = $_POST[message];
	$subject = strip_tags($_POST[subject]);
}

if (isset($queue_size))
{
	$str = "$_POST[month]/$_POST[date]/$_POST[year] $_POST[hour]:$_POST[minute]$_POST[ampm]";
	$utime = strtotime($str);
}
else
{
	$utime = time();
}

function mensagem($msg) {
	$msg = nl2br($msg);
	$msg = str_replace("[t1]", "<h1>", $msg);
	$msg = str_replace("[/t1]", "</h1>", $msg);
	$msg = str_replace("[t2]", "<h2>", $msg);
	$msg = str_replace("[/t2]", "</h2>", $msg);
	$msg = str_replace("[img=", "<img src=\"", $msg);
	$msg = str_replace("][/img]", "\" border=0 />", $msg);

	$message = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
	$message .= "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n";
	$message .= "<head>\n";
	$message .= "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n";
	$message .= "<title>Brasilpar</title>\n";
	$message .= "<style type=\"text/css\">\n";
	$message .= "<!--\n";
	$message .= "body{margin:0px;}\n";
	$message .= "H1{font-family:\"Trebuchet MS\", Arial, Verdana, \"MS Sans Serif\";font-size:10pt;font-weight:bold;color:#267d92;}\n";
	$message .= "H2{font-family:\"Trebuchet MS\", Arial, Verdana, \"MS Sans Serif\";font-size:10pt;font-weight:bold;color:#bfe10e;}\n";
	$message .= ".itens_top{padding:5px;margin-left:25px;font-family:\"Trebuchet MS\", Arial, Verdana, \"MS Sans Serif\";font-size:9pt;font-weight:bold;color:#bfe10e;}\n";
	$message .= ".texto{padding:5px;margin-left:25px;font-family:Arial, Helvetica, Geneva, sans-serif;font-size:10pt;color:#000000;}\n";
	$message .= "//-->\n";
	$message .= "</style>\n";
	$message .= "</head>\n";
	$message .= "<body bgcolor=\"#FFFFFF\">\n";
	$message .= "<table width=\"580\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"383\" height=\"73\"><img src=\"http://www.danielfilho.be/adz/menor/_layout/hdr1.jpg\" border=\"0\" /></td>\n";
	$message .= "<td width=\"23\"><img src=\"http://www.danielfilho.be/adz/menor/_layout/edicao.jpg\" border=\"0\" /></td>\n";
	$message .= "<td width=\"141\"><img src=\"http://www.danielfilho.be/adz/menor/_layout/data.jpg\" border=\"0\" /></td>\n";
	$message .= "<td width=\"33\" rowspan=\"3\" valign=\"top\"><img src=\"http://www.danielfilho.be/adz/menor/_layout/bg_tabela.jpg\" border=\"0\" /></td>\n";
	$message .= "</tr><tr><td height=\"220\" colspan=\"3\" valign=\"top\"><br /><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	$message .= "<tr><td width=\"35%\" rowspan=\"3\">\n";
	$message .= "<div class=\"itens_top\">Agroind&uacute;stria<br />Alimentos<br />Bebidas<br />Farmac&ecirc;uticos<br />Com&eacute;rcio<br />Materiais de Constru&ccedil;&atilde;o<br />M&oacute;veis<br />Papel e Celulose<br />Energia<br />Minera&ccedil;&atilde;o Siderurgica</div></td>\n";
	$message .= "<td width=\"35%\" rowspan=\"3\"><div class=\"itens_top\">Bens de Capital<br />Materiais de Transporte<br />Eletrodom&eacute;sticos<br />Inform&aacute;tica<br />Telecom<br />Transportes<br />Imobili&aacute;rio<br />Servi&ccedil;os<br />Financeiro<br />Diversos</div></td>\n";
	$message .= "<td width=\"30%\" height=\"74\"><img src=\"http://www.danielfilho.be/adz/menor/0083/artigo1.jpg\" border=\"0\" /></td>\n";
	$message .= "</tr><tr><td>&nbsp;</td></tr><tr><td><img src=\"http://www.danielfilho.be/adz/menor/0083/artigo2.jpg\" border=\"0\" /></td>\n";
	$message .= "</tr></table></td></tr><tr><td height=\"220\" colspan=\"3\" valign=\"top\"><table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n";
	$message .= "<tr><td width=\"70%\">\n";
	$message .= "<div class=\"texto\">\n";
	$message .= $msg;
	$message .= "</div>\n";
	$message .= "</td><td width=\"30%\">&nbsp;</td></tr></table></td></tr></table>\n";
	$message .= "</body>\n";
	$message .= "</html>\n";
	return $message;
}

?>

<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Enviar Mensagem</title>
<script>
var previewed = false;

function loadtemplate()
{
	window.open("loadtemplate.php", "template", 'toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=625,height=400,left=390,top=262');
}

function ownertest(form)
{
	win=window.open('','myWin','toolbar=0,scrollbars=1,location=0,statusbar=1,menubar=0,resizable=1,width=350,height=100,left=390,top=262');
	form.target='myWin';
	form.method='POST';
	form.action='owner_test.php';
	return false;
}

function besure(tz)
{
	if(document.form1.message.value.length > 0)
	{
<?
if (isset($queue_size))
{
echo <<<EOT

		if (document.form1.subject.value.length == 0) 
		{
			alert('ATENÇÃO: O campo de assunto está vazio. Por favor, digite um assunto para sua Mensagem.');
			document.form1.subject.focus();
			return false;
		}
		if(document.form1.minute.value < 10)
		{
			queue_minute = '0' + document.form1.minute.value;
		}
		else
		{
			queue_minute = document.form1.minute.value;
		}
		var queue_date = document.form1.month.value+'/'+document.form1.date.value+'/'+document.form1.year.value+' @ '+
					document.form1.hour.value+':'+queue_minute+' '+document.form1.ampm.value;
		var confirm_text = 'Você está prestes a enviar sua mensagem.\\nEsta será agendada para \
					ser entregue em: '+queue_date+' '+tz+'.\\nTens CERTEZA que deseja continuar?';
EOT;
echo "\n";
}
else
{
	echo "var confirm_text = 'Você está prestes a enviar sua mensagem.\\nTens CERTEZA que deseja continuar?'\n";
}
?>
		if (previewed == false)
		{
			if (confirm('Esta mensagem não foi visualizada. Recomenda-se que visualize-a antes de enviar. Deseja continuar mesmo assim?'))
			{
				return confirm(confirm_text);
			}
			else
			{
				return false;
			}
		}
		else
		{
			return confirm(confirm_text);
		}
	}
	else
	{
		alert('A área de mensagem está vazia - Nenhuma mensagem será enviada.');
		return false;
	}
}

function msg_change()
{
	previewed = false;
}

<?
if($_POST[preview])
{
	echo "previewed = true;";
}
?>

var url = "datetime.php"; // script to return current date/time
var memcounturl = "membercount.php"; // script to return current confirmed member count

function handleHttpResponse() // Update the date/time
{
	if (http.readyState == 4)
	{
		document.getElementById('datetime').innerHTML =  http.responseText;
	}
}

function handlemembercountHttpResponse() // Update the confirmed member count
{
	if (http1.readyState == 4)
	{
		document.getElementById('mc').innerHTML =  http1.responseText;
	}
}

function updatedatetime()
{
	http.open("GET", url, true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);
	setTimeout("updatedatetime()",60000);
}

function updatemembercount()
{
	http1.open("GET", memcounturl, true);
	http1.onreadystatechange = handlemembercountHttpResponse;
	http1.send(null);
	setTimeout("updatemembercount()",10000);
}
 function getHTTPObject()
{
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
	try
	{
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (e)
	{
		try
		{
        		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (E)
		{
			xmlhttp = false;
		}
	}
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			xmlhttp = new XMLHttpRequest();
		}
		catch (e)
		{
			xmlhttp = false;
		}
	}
	return xmlhttp;
}

var http = getHTTPObject(); // We create the HTTP Object for the date/time - updated every 60 seconds
var http1 = getHTTPObject(); // We create the HTTP Object for the member count - updated every 10 seconds

function updatedays()
{
	var months = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	
	document.forms[0].date.options[0] = null;

	for (var w = 0; w < document.forms[0].date.length; w++)
	{
		document.forms[0].date.options[0] = null;
	}

	for (var x = 0; x < months[document.forms[0].month.selectedIndex]; x++)
	{
		document.forms[0].date.options[x] = new Option(x+1);
	}
}
</script>

<style type="text/css" media="screen">@import "css/basic.css";</style>
<style type="text/css" media="screen">@import "css/tabs.css";</style>

</head>

<body>

<h1>Brasilpar: Newsletter </h1>

<?
if($_POST[submit_send] And strlen($_POST[message]) > 0)
{
	// Send mail
	// if sent and archived, print confirmation

	$query = "SELECT address FROM mailinglist_subscribers WHERE confirmed = '1'";
	$result = mysql_query($query) or die("Query failed : " . mysql_error());
	$sent_count = mysql_num_rows($result);
	$bcc = "";
	while ($row = mysql_fetch_assoc($result))
	{
		$bcc .= "$row[address],";
	}
	$subscribers = substr($bcc, 0, -1);

	$to = $owner_email;
//	$message = wordwrap($message, $columns, "\n");

	$sent_date = time();
	if ($_POST[format] == 1)
	{
		$texthtml = "html";
	}
	else
	{
		$texthtml = "text";
	}

	$message = addslashes($message);
	$query = "INSERT INTO mailinglist_messages (subject,message,created,queued,count,format) VALUES ('$subject','$message','$sent_date','$utime','$sent_count','$texthtml')";
	$result = mysql_query($query) or die("Query failed : " . mysql_error());
	$message_id = mysql_insert_id();

	if (isset($queue_size))
	{
		$address_query = "SELECT address FROM mailinglist_subscribers WHERE confirmed = '1'";
		$address_result = mysql_query($address_query) or die("Query failed : " . mysql_error());
		while ($address_row = mysql_fetch_assoc($address_result))
		{
			$queue_insert_query = "INSERT INTO mailinglist_queue (message_id,address,send_after) VALUES ('$message_id','$address_row[address]','$utime')";
			$queue_insert_result = mysql_query($queue_insert_query) or die("Query failed : " . mysql_error());
		}
		echo "<p><b><font color=Green>Sua mensagem esta na fila para o envio.</font></b> Você pode acompanhar o progresso do envio em <a href=archives.php>Arquivadas</a>.</p>";
	}
	else
	{
		$message = mensagem(stripslashes($message));
		$message .= "\n\n\n\nVocê está recebendo esta mensagem porque assinou a lista $list_name.";
		$message .= " Para sair, por favor clique aqui: $unsub_url"; 


		if ($_POST[format] == 1)
		{
			$boundary = md5(uniqid(time()));

			$headers = "MIME-Version: 1.0" . PHP_EOL;
			$headers .= "Content-type: multipart/alternative;" . PHP_EOL;
			$headers .= " boundary=\"$boundary\"" . PHP_EOL;

			$send_message = "voce nao deve ver isso nunca" . PHP_EOL . PHP_EOL;

			$send_message .= "--$boundary" . PHP_EOL;

			$send_message .= "Content-type: text/plain;" . PHP_EOL;
			$send_message .= "Content-Transfer-Encoding: 7bit" . PHP_EOL . PHP_EOL;
			$send_message .= strip_tags($message) . "" . PHP_EOL;

			$send_message .= "--$boundary" . PHP_EOL;

			$send_message .= "Content-type: text/html;" . PHP_EOL;
			$send_message .= "Content-Transfer-Encoding: 7bit" . PHP_EOL . PHP_EOL;
			$send_message .= $message . "" . PHP_EOL;

			$send_message .= "--$boundary--" . PHP_EOL;
		}
		else
		{
			$send_message = $message;
		}

		$headers .= "From: $owner_email" . PHP_EOL . "Reply-To: $owner_email" . PHP_EOL . "Bcc: $subscribers" . PHP_EOL . "X-Mailer: NotOneBit.com Simple Mailer";

		if(mail($to, $subject, $send_message, $headers))
		{
			echo "<p><b><font color=Green>Sua mensagem foi enviada e arquivada.</font></b> Você pode visualiza-la em <a href=archives.php>Arquivadas</a>.</p>";
		}
		else
		{
			echo "<p><b><font color=Red>Não foi possível enviar sua mensagem. Verifique o LOG de erros de seu sevidor. Obrigado.</font></b></p>";
		}
	}
}
?>

<div id="header">
	<ul id="primary">
		<li><span>Enviar</span></li>
			<ul id="secondary">
				<li><a href="javascript:loadtemplate();">Carregar modelo</a></li>
			</ul>
		<li><a href="members.php">Membros</a></li>
		<li><a href="archives.php">Arquivados</a></li>
		<li><a href="blacklist.php">Lista Negra</a></li>
		<li><a href="help.php">Ajuda</a></li>
	</ul>

</div>
<div id="main">			
	<div id="contents">
			<h2>Enviar uma mensagem</h2>			
			<p class="note">Componha sua mensagem, utilizando o template de Newsletter da Brasilpar, ou ent&atilde;o, crie uma nova mensagem. Mensagens HTML s&atilde;o enviadas no formato <acronym title="Multipurpose Internet Mail Extensions">MIME</acronym>, assim ao receber, n&atilde;o visualizar&atilde;o o codigo em HTML.</p>
			<div align="center">
<center>
<?
if($_POST[format] == 1)
{
	$plain_selected = "";
	$html_selected = " selected";
}
else
{
	$plain_selected = " selected";
	$html_selected = "";
}
?>

<script>setTimeout("updatemembercount()",10000);</script>
<form method="POST" action="send.php" name="form1">
	<p class="message">Se enviado agora, a mensagem ser&aacute; entregue para: <span id="mc"><?=$row[0]?></span> pessoas. Enviar como  
	<select size="1" name="format" onChange="document.form1.submit()">
		<option value="0"<?=$plain_selected?>>Apenas Texto</option>
		<option value="1"<?=$html_selected?>>HTML (será criado versão em texto)</option>
	</select></p>
	<p></p>

<?
if ($_POST[format] == 1)
{
	echo "<p class=\"message\">Digite ou cole o código HTML abaixo:</p>";
}

if ($_POST[submit_send])
{
	$message = stripslashes($message);
}

if ($_GET[t])
{
	$filename = "templates/" . $_GET[t];
	$handle = fopen($filename, "r");
	$template = fread($handle, filesize($filename));
	fclose($handle);
	$message = $template;
}
?>
	<p class="message">Assunto 
	  <input type="text" name="subject" size="50" value="<?=$subject?>"></p>
	<p class="message">
		<textarea rows="20" name="message" cols="75" id="msg_area" onChange="msg_change()"><?=$message?></textarea>
	</p>
<?
if(($_POST[preview] Or $_POST[submit_send]) And strlen($message) > 0)
{
	$columns = 75;
	echo "<p>Visualizar (wrapping at column $columns):<table border=\"1\" style=\"border-collapse: collapse; border: 1px solid #C0C0C0\"><tr><td>\n";
	echo "<div style=\"padding: 4; height: 200px; width:576px; background-color: #DEDEDE; overflow: auto;\">\n";
	if ($_POST[format] == 0) // plain text
	{
		echo wordwrap(nl2br(htmlspecialchars($message)), $columns, "<br />");
	}
	else // html
	{
		echo $message;
	}
	echo "</div></td></tr></table></p>";
}

if (isset($queue_size) And !$_POST[submit_send])
{
	echo "<script>setTimeout(\"updatedatetime()\",60000);</script>";
	echo "<p class=\"note\">Data/Hora no servidor: <span id=\"datetime\">";
	include('datetime.php');
	echo "</span> <a href=\"javascript:void(0)\" onmouseover=\"updatedatetime()\">(passe o mouse para atualizar)</a></p>\n";
?>

	<table border="0" id="table1" cellpadding="2">
		<tr>
			<td rowspan="2"><img src="clock.gif" align="absbottom"></td>
			<td colspan="4">Programar envio de mensagem:</td>
		</tr>
		<tr>
			<td align="right">Data: </td>
			<td><select size="1" name="date">

			<?
			$flag = false;
			for($i=1;$i<=31;$i++)
			{
				if ($_POST[date] == $i)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
					$flag = true;
				}
				elseif ($today[mday] == $i And !$flag)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
				}
				else
				{
					echo "<option value=\"$i\">$i</option>\n";
				}
			}
			?>

			</select>
			  <select size="1" name="month" onChange="updatedays();">
                <?
$months = array("1" => "Janeiro","2" => "Fevereiro","3" => "Março","4" => "Abril","5" => "Maio","6" => "Junho","7" => "Julho",
"8" => "Agosto","9" => "Setembro","10" => "Outubro","11" => "Novembro","12" => "Dezembro",);
$flag = false;
foreach ($months as $key => $val)
{
	if ($_POST[month] == $key)
	{
		echo "<option value=\"$key\" selected>$val</option>\n";
		$flag = true;
	}
	elseif ($today[mon] == $key And !$flag)
	{
		echo "<option value=\"$key\" selected>$val</option>\n";
	}
	else
	{
		echo "<option value=\"$key\">$val</option>\n";
	}
}
?>
              </select>
			  <select size="1" name="year">

			<?
			$flag = false;
			for($i=$today[year];$i<=$today[year]+5;$i++)
			{
				if ($_POST[year] == $i)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
					$flag = true;
				}
				elseif ($today[year] == $i And !$flag)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
				}
				else
				{
					echo "<option value=\"$i\">$i</option>\n";
				}
			}
			?>
			</select></td>
			<td align="right"> Hora: </td>
			<td><select size="1" name="hour">

			<?
			$curr_hour = date("g");
			$flag = false;
			for($i=1;$i<=12;$i++)
			{
				if ($_POST[hour] == $i)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
					$flag = true;
				}
				elseif ($curr_hour == $i And !$flag)
				{
					echo "<option value=\"$i\" selected>$i</option>\n";
				}
				else
				{
					echo "<option value=\"$i\">$i</option>\n";
				}
			}
			?>

			</select><select size="1" name="minute">

			<?
			$flag = false;
			for($i=0;$i<=59;$i++)
			{
				if ($i < 10) $min = "0".$i; else $min = $i;
				if (isset($_POST[minute]) And $_POST[minute] == $i)
				{
					echo "<option value=\"$i\" selected>$min</option>\n";
					$flag = true;
				}
				elseif ($today[minutes] == $i And !$flag)
				{
					echo "<option value=\"$i\" selected>$min</option>\n";
				}
				else
				{
					echo "<option value=\"$i\">$min</option>\n";
				}
			}
			?>

			</select><select size="1" name="ampm">
			<?
			$flag = false;
			if ($_POST[ampm] == "AM")
			{
				echo "<option selected>AM</option>\n";
				echo "<option>PM</option>\n";
				$flag = true;
			}
			elseif ($_POST[ampm] == "PM")
			{
				echo "<option>AM</option>\n";
				echo "<option selected>PM</option>\n";
				$flag = true;
			}
			elseif (date("A") == "AM" And !$flag)
			{
				echo "<option selected>AM</option>\n";
				echo "<option>PM</option>\n";
			}
			else
			{
				echo "<option>AM</option>\n";
				echo "<option selected>PM</option>\n";
			}
			?>
			</select></td>
		</tr>
	</table>

<?
}
if (!$_POST[submit_send])
{
?>
	<table border="0" width="100%" cellspacing="0" cellpadding="0">
		<tr>
			<td width="200">&nbsp;</td>
			<td width="200" align="center">
			<input type="submit" value="Visualizar Mensagem" name="preview" onClick="this.form.target='';this.form.action='send.php';"> 
			<input type="submit" value="Enviar Mensagem" name="submit_send" onClick="this.form.target=''; this.form.action='send.php'; return besure('<?=Date("T")?>');"></td>
			<td width="200" align="right">
			<input type="submit" value="Enviar apenas para o Administrador" name="owner_test" onClick="ownertest(this.form)"></td>
		</tr>
	</table>
<?
}
?>
</form>

</center>
		</div>
	</div>
</div>

<p align="center" class="message"><a href="http://www.notonebit.com">&copy; 2006 NotOneBit.com</a></p>

</body>
</html>