954,585 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Php newsletter error

I have a bit of a problem with my newsletter
here is the error I get:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/happy/public_html/newsletter/subscribe.php on line 64

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/happy/public_html/newsletter/sindex.php on line 244

Warning: extract(): First argument should be an array in /home/happy/public_html/newsletter/nindex.php on line 175

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/happy/public_html/newsletter/nindex.php on line 191

Subscribe.php
[PHP]<?php

// subscribe newsletter
// subscribe.php
// database connection script here

// MySQL Connection Variables

$hostname='localhost';
$user='user';
$pass='pass';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to

MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");


if(!isset($mode))
{
$mode = 'index';
}

switch ($mode)
{
case 'index':
// display default form
?>Subscribe/ UnSubscribe Mailing List




" method="post">
Name:*

Email:*

Format Preferred:*
HTML Plain Text
Mode:*
Subscribe UnSubscribe


<?php
break;

case 'process':
// check that all fields are filled in
if (empty($name) || empty($email))
{
die ("Error! Please fill in all required fields.");
}
// check for duplicate entry in database
$qCheck = "select * from subscribers where name='$name' and

email='$email' ";
$rsCheck = mysql_query($qCheck);

$countCheck = mysql_num_rows($rsCheck);

// determine whether user wants to subscribe or unsubscribe
if ($smode=='subscribe')
{
if ($countCheck != 0) // if entry already exists in database,

do not add subscriber
{
die ("Error. Record already exist.");
}
else {
$query = "insert into subscribers VALUES

('','$name','$email','$format')";
$successmsg = "Thank you $name. Your email, $email has

been recorded.";
}
}
else { // smode= unsubscribe
if ($countCheck == 0) // entry does not exist, cannot

unsubscriber user
{
die ("No such record, cannot unsubscribe user.");
}
else {

$query = "delete from subscribers where name='$name' and

email='$email' ";
$successmsg = "Thank you $name. Your email, $email has

been unsubscribed.";
}
}

// now execute the query
$result = mysql_query($query);

if ($result)
{
echo $successmsg;

}

break;

}
?>[/PHP]

sindex.php
[PHP]<?php

// Subscriber Administration
// sindex.php

// MySQL Connection Variables (Enter the values)
$hostname='localhost';
$user='user';
$pass='pass';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");

if(!isset($mode))
{
$mode = 'list'; // set the default mode to list subscribers
}

?>Subscriber Administration


<?php

switch ($mode)
{
case 'list':
$q = "select * from subscriber order by sid desc limit 35 ";
$rs = mysql_query($q);

?>
NameEmailCommands
<?php

while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$name$email
Edit |
Delete";
}
?><?php


break;

case 'add':

// Display Adding Form.
?>
Name:

Email:

Format:
HTML
Plain TextMode:*
Subscribe UnSubscribe

<?php

break;

case 'insert':
// check that all fields are filled in
if (empty($name) || empty($email))
{
die ("Error! Please fill in all required fields.");
}
// check for duplicate entry in database
$qCheck = "select * from subscribers where name='$name' and email='$email' ";
$rsCheck = mysql_query($qCheck);

$countCheck = mysql_num_rows($rsCheck);

// determine whether user wants to subscribe or unsubscribe
if ($smode=='subscribe')
{
if ($countCheck != 0) // if entry already exists in database, do not add subscriber
{
die ("Error. Record already exist.");
}
else {
$query = "insert into subscribers VALUES ('','$name','$email','$format')";
$successmsg = "Thank you $name. Your email, $email has been recorded.";
}
}
else { // smode= unsubscribe
if ($countCheck == 0) // entry does not exist, cannot unsubscriber user
{
die ("No such record, cannot unsubscribe user.");
}
else {

$query = "delete from subscribers where name='$name' and email='$email' ";
$successmsg = "Thank you $name. Your email, $email has been unsubscribed.";
}
}

// now execute the query
$result = mysql_query($query);

if ($result)
{
echo $successmsg;
}

break;

case 'edit':
$q = "select * from subscribers where sid=$sid ";
$rs = mysql_query($q);

while ($row = mysql_fetch_array($rs))
{
extract($row);
// Display Editing Form.
?>
" method="post">
Name:
">
Email:
">
Format:
>HTML
>Plain TextMode:*
Subscribe UnSubscribe

<?php
}

break;

case 'update':
// check that all fields are filled in
if (empty($name) || empty($email))
{
die ("Error! Please fill in all required fields.");
}
// check for duplicate entry in database
$qCheck = "select * from subscribers where name='$name' and email='$email' ";
$rsCheck = mysql_query($qCheck);

$countCheck = mysql_num_rows($rsCheck);

// determine whether user wants to subscribe or unsubscribe
if ($smode=='subscribe')
{
if ($countCheck != 0) // if entry already exists in database, do not add subscriber
{
die ("Error. Record already exist.");
}
else {
$query = "update subscribers set name='$name', email='$email', format='$format' where sid='$sid' ";
$successmsg = "Success! Subscriber record has been updated.";
}
}
else { // smode= unsubscribe
if ($countCheck == 0) // entry does not exist, cannot unsubscriber user
{
die ("No such record, cannot unsubscribe user.");
}
else {

$query = "delete from subscribers where name='$name' and email='$email' ";
$successmsg = "Success. $email has been unsubscribed.";
}
}

// now execute the query
$result = mysql_query($query);

if ($result)
{
echo $successmsg;
}
break;

case 'delete':
$q = "delete from subscribers where sid='$sid' ";
$rs = mysql_query($q);

if ($rs)
{
echo "Success. Record deleted.";
}
break;

case 'search':
// display search box.
?>

Name:
Email:

<?php


break;

case 'results':
if (empty($name) && empty($email))
{
die ("Error. There is no search criteria.");
}
// if user enter both name & email search
if ($name !="" && $email !="")
{
$q = "select * from subscribers where name like '$name%' and email like '$email%' ";
}
else {
if (empty($name))
{
// user entered email option
$q = "select * from subscribers where email like '$email$' ";
}
else {
// user chose name option
$q = "select * from subscribers where name like '$name%' ";
}
}
$rs = mysql_query($q);
$rscount = mysql_num_rows($rs);

// display results
?>
NameEmailCommands
<?php
if ($rscount != 0)
{
while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$name$email
Edit |
Delete";
}
}
else {
echo "No Results returned.";
}
?><?php

break;
}

?>[/PHP]
nindex.php
[PHP]<?php

// Newsletter Administration
// nindex.php

// MySQL Connection Variables (Enter the values)
$hostname='localhost';
$user='user';
$pass='pass';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");

$mode = $_GET['mode']; // for globals off

if(!isset($mode) || empty($mode))
{
$mode = 'list'; // set the default mode to list subscribers
}

?>Newsletter Administration


<?php

switch ($mode)
{
case 'list':
$q = "select * from newsletter order by postdate desc ";
$rs = mysql_query($q);

?>
Newsletter TitlePost DateCommands
<?php

while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$title$postdate
Edit |
Delete";
}
?><?php

break;

case 'add':
// Display Adding Form.
?>
Newsletter Title:*

Content:*
HTML Code okay.


Dispatch Newsletter?



<?php

break;

case 'insert':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// insert into database
$newRecord = "insert into newsletter (news_id, title, content, postdate)
VALUES ('','$title','$content', now()) ";
$rsRecord = mysql_query($newRecord);

if ($rsRecord && $dispatch == 'yes') // administrator wants to send newsletter out
{
$lastid= mysql_insert_id();
// redirect administrator to dispatch mode
header("Location: nindex.php?mode=dispatch&news_id=$lastid");
}
else {
echo "Success! Newsletter recorded.";
}

break;

case 'delete':
$news_id = $_GET['news_id'];

$remove = "delete from newsletter where news_id='$news_id' ";
$rs = mysql_query($remove);

if ($rs)
{
echo "Success, newsletter deleted.";
}


break;

case 'edit':
$news_id = $_GET['news_id'];

$q = "select * from newsletter where news_id=$news_id ";
$rs = mysql_query($q);

while ($row = mysql_fetch_array($rs))
{
extract($row);
// Display Editing Form.
?>
" method="post">
Title:
">
Content:*
HTML Code okay.
<?php echo "$content"; ?>

Dispatch Newsletter?



<?php
}

break;

case 'update':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// Update query
$update = "update newsletter set title='$title', content='$content' where news_id='$news_id' ";
$rsUpdate = mysql_query($update);

if ($rsUpdate && ($dispatch=='yes'))
{
// Administrator wants to dispatch newsletter, redirect to dispatch mode
header("Location: nindex.php?mode=dispatch&news_id=$news_id");

}
else {
echo "Success, Newsletter updated.";
}

break;

case 'dispatch':
$news_id = $_GET['news_id'];
// dispatch newsletter to subscribers
// Obtain newsletter details
$select = "select * from newsletter where news_id='$news_id' ";
$result = mysql_query($select);

$row = mysql_fetch_array($result);

extract($row);
$plaintext = str_replace("
","\r\n",$content);
$plaintext = str_replace("","\r\n",$content);
$plaintext = strip_tags($content);

// obtain subscriber list
$getList = "select * from subscribers ";
$rsList = mysql_query($getList);

$headers = "MIME-Version: 1.0\r \n";
// edit the following 3 variables

$from = "Your Name Here";
$fromemail = "abc@yyy.com";
$subject = "Newsletter from ABC website";

while ($subrow = mysql_fetch_array($rsList))
{
extract($subrow);
if ($format == 't')
{
// plain text format
$headers .= "Content-type: text/plain; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $plaintext;

}
else {
// HTML format
$headers .= "Content-type: text/html; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $content;
}
// mail it out
mail($email,$subject,$message,$headers);

}
echo "Newsletter sent out.";
break;
}
?>
[/PHP]

Can somebody tell me my errors?

Yuki H.
Light Poster
26 posts since May 2005
Reputation Points: 10
Solved Threads: 0
 

I would guess it may be that you are running a query on newsletter but your database is called user_newsletter. :)

add or die(mysql_error()); onto all of your mysql_query($q) lines and see if that doesn't tell you whats up.

barnamos
Junior Poster in Training
50 posts since Mar 2005
Reputation Points: 15
Solved Threads: 0
 

That helped a bit, thank you.
But I still have errors and since I am new at php I do not know how to
correct them. (is there a such thing as a php validator?)

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/user/public_html/newsletter/sindex.php on line 92

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/user/public_html/newsletter/sindex.php on line 33
[PHP]<?php

// Subscriber Administration
// sindex.php

// MySQL Connection Variables (Enter the values)
$hostname='localhost';
$user='user';
$pass='pass';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");

if(!isset($mode))
{
$mode = 'list'; // set the default mode to list subscribers
}

?>Subscriber Administration


<?php

switch ($mode)
{
case 'list':
$q = "select * from subscriber order by sid desc limit 35 ";
$rs = mysql_query($q);

?>
NameEmailCommands
<?php

while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$name$email
Edit |
Delete";
}
?><?php


break;

case 'add':

// Display Adding Form.
?>
Name:

Email:

Format:
HTML
Plain TextMode:*
Subscribe UnSubscribe

<?php

break;

case 'insert':
// check that all fields are filled in
if (empty($name) || empty($email))

{
die ("Error! Please fill in all required fields.");
}

// check if email is valid
if(!eregi('^([._a-z0-9-]+[._a-z0-9-]*)@(([a-z0-9-]+\.)*([a-z0-9-]+)(\.[a-z]{2,3})?)$', $email))
{

echo 'That does not look like a valid email address.'; }


// check for duplicate entry in database
$qCheck = "select * from subscribers where name='$name' and email='$email' ";
$rsCheck = mysql_query($qCheck);

$countCheck = mysql_num_rows($rsCheck);

// determine whether user wants to subscribe or unsubscribe
if ($smode=='subscribe')
{
if ($countCheck != 0) // if entry already exists in database, do not add subscriber
{
die ("Error. Record already exist.");
}
else {
$query = "insert into subscribers VALUES ('','$name','$email','$format')";
$successmsg = "Thank you $name. Your email, $email has been recorded.";
}
}
else { // smode= unsubscribe
if ($countCheck == 0) // entry does not exist, cannot unsubscriber user
{
die ("No such record, cannot unsubscribe user.");
}
else {

$query = "delete from subscribers where name='$name' and email='$email' ";
$successmsg = "Thank you $name. Your email, $email has been unsubscribed.";
}
}

// now execute the query
$result = mysql_query($query);

if ($result)
{
echo $successmsg;
}

break;

case 'edit':
$q = "select * from subscribers where sid=$sid ";
$rs = mysql_query($q) or die(mysql_error());

while ($row = mysql_fetch_array($rs))
{
extract($row);
// Display Editing Form.
?>
" method="post">
Name:
">
Email:
">
Format:
>HTML
>Plain TextMode:*
Subscribe UnSubscribe

<?php
}

break;

case 'update':
// check that all fields are filled in
if (empty($name) || empty($email))
{
die ("Error! Please fill in all required fields.");
}
// check for duplicate entry in database
$qCheck = "select * from subscribers where name='$name' and email='$email' ";
$rsCheck = mysql_query($qCheck);


//here
$countCheck = mysql_num_rows($rsCheck);

// determine whether user wants to subscribe or unsubscribe
if ($smode=='subscribe')
{
if ($countCheck != 0) // if entry already exists in database, do not add subscriber
{
die ("Error. Record already exist.");
}
else {
$query = "update subscribers set name='$name', email='$email', format='$format' where sid='$sid' ";
$successmsg = "Success! Subscriber record has been updated.";
}
}
else { // smode= unsubscribe
if ($countCheck == 0) // entry does not exist, cannot unsubscriber user
{
die ("No such record, cannot unsubscribe user.");
}
else {

$query = "delete from subscribers where name='$name' and email='$email' ";
$successmsg = "Success. $email has been unsubscribed.";
}
}

// now execute the query
$result = mysql_query($query);

if ($result)
{
echo $successmsg;
}
break;

case 'delete':
$q = "delete from subscribers where sid='$sid' ";
$rs = mysql_query($q) or die(mysql_error());

if ($rs)
{
echo "Success. Record deleted.";
}
break;

case 'search':
// display search box.
?>

Name:
Email:

<?php


break;

case 'results':
if (empty($name) && empty($email))
{
die ("Error. There is no search criteria.");
}
// if user enter both name & email search
if ($name !="" && $email !="")
{
$q = "select * from subscribers where name like '$name%' and email like '$email%' ";
}
else {
if (empty($name))
{
// user entered email option
$q = "select * from subscribers where email like '$email$' ";
}
else {
// user chose name option
$q = "select * from subscribers where name like '$name%' ";
}
}
$rs = mysql_query($q) or die(mysql_error());
$rscount = mysql_num_rows($rs);

// display results
?>
NameEmailCommands
<?php
if ($rscount != 0)
{
while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$name$email
Edit |
Delete";
}
}
else {
echo "No Results returned.";
}
?><?php

break;
}

?>

[/PHP]
Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/newsletter/nindex.php:23) in /home/user/public_html/newsletter/nindex.php on line 159

Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/newsletter/nindex.php:23) in /home/user/public_html/newsletter/nindex.php on line 89

Warning: extract(): First argument should be an array in /home/user/public_html/newsletter/nindex.php on line 177


[PHP]<?php

// Newsletter Administration
// nindex.php

// MySQL Connection Variables (Enter the values)
$hostname='localhost';
$user='user';
$pass='password';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");

$mode = $_GET['mode']; // for globals off

if(!isset($mode) || empty($mode))
{
$mode = 'list'; // set the default mode to list subscribers
}

?>
Newsletter Administration



<?php

switch ($mode)
{
case 'list':
$q = "select * from newsletter order by postdate desc ";
$rs = mysql_query($q) or die(mysql_error());

?>
Newsletter TitlePost DateCommands
<?php

while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$title$postdate
Edit |
Delete";
}
?><?php

break;

case 'add':
// Display Adding Form.
?>
Newsletter Title:*

Content:*
HTML Code okay.


Dispatch Newsletter?



<?php

break;

case 'insert':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// insert into database
$newRecord = "insert into newsletter (news_id, title, content, postdate)
VALUES ('','$title','$content', now()) ";
$rsRecord = mysql_query($newRecord);

if ($rsRecord && $dispatch == 'yes') // administrator wants to send newsletter out
{
$lastid= mysql_insert_id();
// redirect administrator to dispatch mode
header("Location: newsletter/nindex.php?mode=dispatch&news_id=$lastid");
}
else {
echo "Success! Newsletter recorded.";
}

break;

case 'delete':
$news_id = $_GET['news_id'];

$remove = "delete from newsletter where news_id='$news_id' ";
$rs = mysql_query($remove);

if ($rs)
{
echo "Success, newsletter deleted.";
}


break;

case 'edit':
$news_id = $_GET['news_id'];

$q = "select * from newsletter where news_id=$news_id ";
$rs = mysql_query($q) or die(mysql_error());

while ($row = mysql_fetch_array($rs))
{
extract($row);
// Display Editing Form.
?>
" method="post">
Title:
">
Content:*
HTML Code okay.
<?php echo "$content"; ?>

Dispatch Newsletter?



<?php
}

break;

case 'update':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// Update query
$update = "update newsletter set title='$title', content='$content' where news_id='$news_id' ";
$rsUpdate = mysql_query($update);

if ($rsUpdate && ($dispatch=='yes'))
{
// Administrator wants to dispatch newsletter, redirect to dispatch mode
header("Location: nindex.php?mode=dispatch&news_id=$news_id");

}
else {
echo "Success, Newsletter updated.";
}

break;

case 'dispatch':
$news_id = $_GET['news_id'];
// dispatch newsletter to subscribers
// Obtain newsletter details
$select = "select * from newsletter where news_id='$news_id' ";
$result = mysql_query($select);

$row = mysql_fetch_array($result);

extract($row);
$plaintext = str_replace("
","\r\n",$content);
$plaintext = str_replace("","\r\n",$content);
$plaintext = strip_tags($content);

// obtain subscriber list
$getList = "select * from subscribers ";
$rsList = mysql_query($getList);

$headers = "MIME-Version: 1.0\r \n";
// edit the following 3 variables

$from = "Your Name Here";
$fromemail = "abc@yyy.com";
$subject = "Newsletter from ABC website";

while ($subrow = mysql_fetch_array($rsList))
{
extract($subrow);
if ($format == 't')
{
// plain text format
$headers .= "Content-type: text/plain; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $plaintext;

}
else {
// HTML format
$headers .= "Content-type: text/html; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $content;
}
// mail it out
mail($email,$subject,$message,$headers);

}
echo "Newsletter sent out.";
break;
}
?>
[/PHP]

Yuki H.
Light Poster
26 posts since May 2005
Reputation Points: 10
Solved Threads: 0
 

In sindex where it says:
$rs = "select from subscriber blah blah"
$rsCheck=mysql_query($rsQcheck);
make it say
$rsCheck=mysql_query($rsQcheck) or die (mysql_error());
and same for any mysql_query($whatever).
Its looking like your querys are returning any results. That can be because the dbs don't exist, or the syntax is bunged up or maybe permissions. Because I can't see your database structure I can't tell which. the mysql_error will tell you what the problem is.

on nindex put the same mysql_error on the insert block too. I don't use extract but once the other errors are cleaned up it should work. If not I'll rewrite that block for you to not use extract.


Its also possible you need to do the insert part of this script once to get some records in there.

Don't worry about the header errors, once the script runs clean they will probably go away.

barnamos
Junior Poster in Training
50 posts since Mar 2005
Reputation Points: 15
Solved Threads: 0
 

>......<
I think this script does not like me...

I do not know any alternative ways instead of the extract function because I am not so good with php.
But thank you for the help so far...

Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/newsletter/nindex.php:23) in /home/user/public_html/newsletter/nindex.php on line 159

nindex.php
[PHP]<?php

// Newsletter Administration
// nindex.php

// MySQL Connection Variables (Enter the values)
$hostname='localhost';
$user='user';
$pass='pass';
$dbase='user_newsletter';

$connection = mysql_connect("$hostname" , "$user" , "$pass") or die ("Can't connect to MySQL");
$db = mysql_select_db($dbase , $connection) or die ("Can't select database.");

$mode = $_GET['mode']; // for globals off

if(!isset($mode) || empty($mode))
{
$mode = 'list'; // set the default mode to list subscribers
}

?>
Newsletter Administration



<?php

switch ($mode)
{
case 'list':
$q = "select * from newsletter order by postdate desc ";
$rs = mysql_query($q) or die(mysql_error());

?>
Newsletter TitlePost DateCommands
<?php

while ($row = mysql_fetch_array($rs))
{
extract ($row);
// Display records into table rows.
echo "$title$postdate
Edit |
Delete";
}
?><?php

break;

case 'add':
// Display Adding Form.
?>
Newsletter Title:*

Content:*
HTML Code okay.


Dispatch Newsletter?



<?php

break;

case 'insert':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// insert into database
$newRecord = "insert into newsletter (news_id, title, content, postdate)
VALUES ('','$title','$content', now()) ";
$rsRecord = mysql_query($newRecord) or die (mysql_error());

if ($rsRecord && $dispatch == 'yes') // administrator wants to send newsletter out
{
$lastid= mysql_insert_id();
// redirect administrator to dispatch mode
header("Location: newsletter/nindex.php?mode=dispatch&news_id=$lastid");
}
else {
echo "Success! Newsletter recorded.";
}

break;

case 'delete':
$news_id = $_GET['news_id'];

$remove = "delete from newsletter where news_id='$news_id' ";
$rs = mysql_query($remove) or die (mysql_error());

if ($rs)
{
echo "Success, newsletter deleted.";
}


break;

case 'edit':
$news_id = $_GET['news_id'];

$q = "select * from newsletter where news_id=$news_id ";
$rs = mysql_query($q) or die(mysql_error());

while ($row = mysql_fetch_array($rs))
{
extract($row);
// Display Editing Form.
?>
" method="post">
Title:
">
Content:*
HTML Code okay.
<?php echo "$content"; ?>

Dispatch Newsletter?



<?php
}

break;

case 'update':
$title = $_POST['title'];
$content = $_POST['content'];
$dispatch = $_POST['dispatch'];
// check that all fields are filled in
if (empty($title) || empty($content))
{
die ("Error! Please fill in all required fields.");
}

// Update query
$update = "update newsletter set title='$title', content='$content' where news_id='$news_id' ";
$rsUpdate = mysql_query($update) or die (mysql_error());

if ($rsUpdate && ($dispatch=='yes'))
{
// Administrator wants to dispatch newsletter, redirect to dispatch mode
header("Location: newsletter/nindex.php?mode=dispatch&news_id=$news_id");

}
else {
echo "Success, Newsletter updated.";
}

break;

case 'dispatch':
$news_id = $_GET['news_id'];
// dispatch newsletter to subscribers
// Obtain newsletter details
$select = "select * from newsletter where news_id='$news_id' ";
$result = mysql_query($select) or die (mysql_error());

$row = mysql_fetch_array($result);

extract($row);
$plaintext = str_replace("
","\r\n",$content);
$plaintext = str_replace("","\r\n",$content);
$plaintext = strip_tags($content);

// obtain subscriber list
$getList = "select * from subscriber ";
$rsList = mysql_query($getList);

$headers = "MIME-Version: 1.0\r \n";
// edit the following 3 variables

$from = "Your Name Here";
$fromemail = "abc@yyy.com";
$subject = "Newsletter from ABC website";

while ($subrow = mysql_fetch_array($rsList))
{
extract($subrow);
if ($format == 't')
{
// plain text format
$headers .= "Content-type: text/plain; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $plaintext;

}
else {
// HTML format
$headers .= "Content-type: text/html; charset=iso-8859-1\r \n";
$headers .= "From: \"$from\" <$fromemail>\r \n";
$headers .= "Reply-To: \"$from\" <$fromemail>\r \n";
$headers .= "X-Mailer: Just My Server";
$message = $content;
}
// mail it out
mail($email,$subject,$message,$headers);

}
echo "Newsletter sent out.";
break;
}
?>
[/PHP]

Warning: extract(): First argument should be an array in /home/user/public_html/newsletter/nindex.php on line 177

Warning: Cannot modify header information - headers already sent by (output started at /home/user/public_html/newsletter/nindex.php:23) in /home/user/public_html/newsletter/nindex.php on line 89

I am still getting those errors... What did I do wrong?

Yuki H.
Light Poster
26 posts since May 2005
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You