/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn 

Kodeord  


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Færdigt nyhedsmail system med database
Fra : mpjc
Vist : 887 gange
50 point
Dato : 04-06-05 16:52

Hej!

Jeg søger et nyhedsmail system til min hjemmeside.

Flg. krav

1. Skal kunne køre via php
2. Skal køre via en database
3. Tilmeld/afmeld funktion

Håber nogle kan hjælpe.

 
 
Kommentar
Fra : Hammerhead


Dato : 04-06-05 17:21
Kommentar
Fra : miritdk


Dato : 04-06-05 18:03

http://phpmailer.sourceforge.net/ måske noget for dig ????

Kommentar
Fra : anetteogjesper


Dato : 04-06-05 18:46

Hej

Jeg ville bruge bogen: http://www.libris.dk/Images/SiteImages/Omtale_top.gif

Her er der på side 337

Kode 1: manage.php

<?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", "joeuser", "somepass") or die(mysql_error());
mysql_select_db("testDB",$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>


Kode 2: sendmymail.php

<?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", "joeuser", "somepass") or die(mysql_error());
mysql_select_db("testDB",$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 <you@yourdomain.com>\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>";
}
}
?>

Kommentar
Fra : anetteogjesper


Dato : 04-06-05 18:48
Kommentar
Fra : mpjc


Dato : 04-06-05 19:28

Nej, ikke helt det...

Skulle bare høre om nogen havde et script + database som bare skal uploades ændres i host og det...

Kommentar
Fra : anetteogjesper


Dato : 04-06-05 19:39

Hvis du har en hjemmeside er det ellers det nemmeste

Kommentar
Fra : mpjc


Dato : 04-06-05 20:16

Hej!

Forstår ikke lige din besked.

Jeg kan sagents sætte den kode ind i mit php dokument, men problemet er at jeg ikke er specielt øvet i databaser og jeg derfor vil mene at jeg har svært ved at få lavet de forskellige tabeller så de passer... til scriptet.

Kommentar
Fra : rfh


Dato : 04-06-05 22:16

davs mpjc

Hvis du skal have lidt hjælp til database oprettelse, så har du min email.

mvh
rfh

Kommentar
Fra : mpjc


Dato : 05-06-05 15:41

Tror sgu at jeg har fået slettet den send en mail til martin @ mpjc . dk

Accepteret svar
Fra : rfh

Modtaget 50 point
Dato : 17-06-05 11:56

Der mangler lig opsætning af database

Her er SQL koden.
Kode
create table subscribers (
id int not null primary key auto_increment,
email varchar (150) unique not null
);


>mpjc

Login i PHPmyAdmin, vælg SQL øverst til venstre, indsæt SQL kode, tryk send.
du skulle nu have opretning SQL tabel til det ovenstående nyheds script

mvh
rfh

Godkendelse af svar
Fra : mpjc


Dato : 17-06-05 13:39

Tak for svaret rfh.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177409
Tips : 31962
Nyheder : 719565
Indlæg : 6407776
Brugere : 218874

Månedens bedste
Årets bedste
Sidste års bedste