|
Posted by Liam Delahunty on 10/13/05 17:31
On 10/10/05, Richard Lynch <ceo@l-i-e.com> wrote:
> > $email_body is a free form text field, and he wants to be able to type
> > in anything he desires and have it pulled from the contact table.
> >
Firstly please accept my aplogies for the deay in responding to your
questions, I;ve had the most terrible flu.
pseudo code (ish), as I've completely bastardised what I had when I
posed the question.
// insert newsletter into newsleter_tbl in database ...
from a form, body in a textarea field, client wants to type in
whatever he likes with database column names as varibles, eg $email,
$first_name
this is the newsletter write on newsletter_new.php
if ($submit){
// removed error checking etc
$email_subject = htmlentities(addslashes($email_subject));
// tried various combintions of htmlentities, addslashes and nothing
when writting field to DB
if ($email_style == "1"){
$email_body = htmlentities(addslashes($email_body));
}else{
$email_body = addslashes($email_body);
}
$email_style = htmlentities(addslashes($email_style));
$query = "INSERT INTO newsletters_tbl (email_subject, email_body,
email_date, email_style) VALUES ('$email_subject', '$email_body',
NOW(), '$email_style')";
if ($result = mysql_query($query, $connection)) {
$newsletter_id= mysql_insert_id($connection);
print ("<p><b>Success</b> Add newsletter (# $newsletter_id)
successful. </p>\n");
print ("<p><a
href=\"newsletter_test.php?this_nid=$newsletter_id&sid=$sid&page=$page\">CLICK
HERE TO TEST</td></p>\n");
} else {
printf ("<p><b>Error: %s\n", mysql_errno () . "</b><br>");
printf ("%s\n", mysql_error () . "<br>");
print ("$query</p>\n");
}
}
}
// BTW the contact details are in another table in database already.
// Sending out the newsletter
$nquery=" SELECT c.id, first_name, email FROM contact_tbl c LEFT OUTER
JOIN newsletters_contacts_tbl nct ON nct.contact_id =c.id AND
newsletter_id = '$this_nid' WHERE nct.contact_id IS NULL AND
newsletter = '$email_style' GROUP BY email LIMIT 1";
if ($nresult = mysql_query($nquery, $connection)){
if (mysql_num_rows($nresult) > 0){
while ($myrow = mysql_fetch_row($nresult)) {
$uid=$myrow[0];
$first_name=stripslashes($myrow[1]);
$email=stripslashes($myrow[2]);
$query = "SELECT * FROM newsletters_tbl WHERE id = '$this_nid' ";
$result = mysql_query($query, $connection);
if($result){
while ($myrow = mysql_fetch_row($result)){
$newsletter_id = $myrow[0];
$email_subject = stripslashes($myrow[1]);
$email_body = stripslashes($myrow[2]);
$email_date = $myrow[3];
$email_style = $myrow[4];
$email_status = $myrow[5];
}
if ($email_status == "0"){
print ("<p>Requires Confirmation</p>");
}elseif($email_status == "1"){
/*
// NOW USING {{ }} as in many templating systems
// so familar to those sorts of users.
// would prefer if I could just use $columnName from
// contact_tbl.
// Why doesn't it just know the var as we've already
// got it above...?
*/
$email_body = ereg_replace ("\{\{uid\}\}", $uid, $email_body);
$email_body = ereg_replace ("\{\{email\}\}", $email, $email_body);
$email_body = ereg_replace ("\{\{first_name\}\}",
$first_name, $email_body);
if ($email_style == "1"){
// INSERT PLAIN TEXT HEADER
}elseif ($email_style == "2"){
// INSERT HTML MIME HEADERS
}
$outquery="INSERT INTO newsletters_contacts_tbl
(newsletter_id, contact_id, sent_date) VALUES ('$newsletter_id',
'$uid', NOW())";
if ($outresult = mysql_query($outquery, $connection)) {
// SEND IT CODE
} else {
// ERROR CODE
}
}
}
}
}else{
// ERROR CODE
}
Many thanks for your help on this mater.
--
Kind regards,
Liam
[Back to original message]
|