Dear friends,
Mailing list installation is giving error,(Php, Mysql)
posted below are
error message
Script of subscribe and unsubscribe
script to send newsletter.
mysql table structure
Also is there any way I put check box on web page against each email, and
those which user or I check only newsletter will be send to those and code
needed
for same.
------------------
Error message
------------------
Warning: mysql_connect(): Access denied for user: ' @localhost' (Using
password: YES) in /home2/wwwabcde/public_html/manage.php on line 6
Access denied for user: ' @localhost' (Using password: YES)
--------------------------------------------------------------------------
Script code
--------------------------------------------------------------------------
<?php
//set up a couple of functions
function doDB() {
global $conn;
//connect to server and select database; you may need it
$conn = mysql_connect("localhost", " ", " ") or die(mysql_error());
mysql_select_db("wwwabcde_agbook1 ",$conn) or die(mysql_error());
}
function emailChecker($email) {
global $conn, $check_result;
//check that email is not already in list
$check = "select id from subscribers where email = '$email'";
$check_result = mysql_query($check,$conn) or die(mysql_error());
}
//determine if they need to see the form or not
if ($_POST[op] != "ds") {
//they do, so create form block
$display_block = "
<form method=POST action=\"$_SERVER[PHP_SELF]\">
<p><strong>Your E-Mail Address:</strong><br>
<input type=text name=\"email\" size=40 maxlength=150>
<p><strong>Action:</strong><br>
<input type=radio name=\"action\" value=\"sub\" checked> subscribe
<input type=radio name=\"action\" value=\"unsub\"> unsubscribe
<input type=\"hidden\" name=\"op\" value=\"ds\">
<p><input type=submit name=\"submit\" value=\"Submit Form\"></p>
</form>";
} else if (($_POST[op] == "ds") && ($_POST[action] == "sub")) {
//trying to subscribe; validate email address
if ($_POST[email] == "") {
header("Location: manage.php");
exit;
}
//connect to database
doDB();
//check that email is in list
emailChecker($_POST[email]);
//get number of results and do action
if (mysql_num_rows($check_result) < 1) {
//add record
$sql = "insert into subscribers values('', '$_POST[email]')";
$result = mysql_query($sql,$conn) or die(mysql_error());
$display_block = "<P>Thanks for signing up!</P>";
} else {
//print failure message
$display_block = "<P>You're already subscribed!</P>";
}
} else if (($_POST[op] == "ds") && ($_POST[action] == "unsub")) {
//trying to unsubscribe; validate email address
if ($_POST[email] == "") {
header("Location: manage.php");
exit;
}
//connect to database
doDB();
//check that email is in list
emailChecker($_POST[email]);
//get number of results and do action
if (mysql_num_rows($check_result) < 1) {
//print failure message
$display_block = "<P>Couldn't find your address!</P>
<P>No action was taken.</P>";
} else {
//unsubscribe the address
$id = mysql_result($check_result, 0, "id");
$sql = "delete from subscribers where id = '$id'";
$result = mysql_query($sql,$conn) or die(mysql_error());
$display_block = "<P>You're unsubscribed!</p>";
}
}
?>
<HTML>
<HEAD>
<TITLE>Subscribe/Unsubscribe</TITLE>
</HEAD>
<BODY>
<h1>Subscribe/Unsubscribe</h1>
<?php echo "$display_block"; ?>
</BODY>
</HTML>
------------------------------------------------------------------------------
--
script which brings up user interface to send newsletter
------------------------------------------------------------------------------
<?php
if ($_POST[op] != "send") {
//haven't seen the form, so show it
print "
<HTML>
<HEAD>
<TITLE>Send a Newsletter</TITLE>
</HEAD>
<BODY>
<h1>Send a Newsletter</h1>
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
<P><strong>Subject:</strong><br>
<input type=\"text\" name=\"subject\" size=30></p>
<P><strong>Mail Body:</strong><br>
<textarea name=\"message\" cols=50 rows=10 wrap=virtual></textarea>
<input type=\"hidden\" name=\"op\" value=\"send\">
<p><input type=\"submit\" name=\"submit\" value=\"Send It\"></p>
</FORM>
</BODY>
</HTML>";
} else if ($_POST[op] == "send") {
//want to send form, so check for required fields
if (($_POST[subject] =="") || ($_POST[message] == "")) {
header("Location: sendmymail.php");
exit;
}
//connect to database
$conn = mysql_connect("localhost", " asifqureshi", "asif") or
die(mysql_error());
mysql_select_db("wwwabcde_agbook1 ",$conn) or die(mysql_error());
//get emails from subscribers list
$sql = "select email from subscribers";
$result = mysql_query($sql,$conn) or die(mysql_error());
//create a From: mailheader
$headers = "From: Your Mailing List <[EMAIL PROTECTED]>\n";
//loop through results and send mail
while ($row = mysql_fetch_array($result)) {
set_time_limit(0);
$email = $row['email'];
mail("$email", stripslashes($_POST[subject]),
stripslashes($_POST[message]), $headers);
print "newsletter sent to: $email<br>";
}
}
?>
------------------------------------------------------------------------------
-------------------
mysql structure
-------------------------------
mysql> create table subscribers(
id int(11) No null primary key auto_increment
email varchar(150) unique not null
);