Hej alle
Det jeg gerne vil ha' lavet her er et mega simpelt nyhedsbrevscript, med en form til at til-/afmelde sig og en form til at sende nyhedsbreve...Alle de tilmeldte skal gemmes i en db med id, ip, tid/dato og self email.
På Forhånd Tak
Her er svaret på den første del, har endnu ikke sat mig så meget ind i mail funktionen.
Først skal du have oprettet en tabel.
SQL koden:
Hvis du bruger php myadmin, så skal du bare gemme denne kode som nyhedsbrev.sql, så kan du hente den via importerknappen i din php myadmin.
CREATE TABLE `nyhedsbrev` (
`id` int(9) NOT NULL auto_increment,
`email` varchar(250) character set latin1 collate latin1_danish_ci default NULL,
`time` datetime NOT NULL default '0000-00-00 00:00:00',
`ip` varchar(15) character set latin1 collate latin1_danish_ci NOT NULL,
PRIMARY KEY (`id`)
)
De 2 næste kodestumper indsætter du i en fil, der hedder fx tilmelding.php
Javascript kode:
Kontrollerer om der er intastet noget i email feltet. Det kan gøres meget mere smart, men bare for illustrationen. Dette script skal sættes mellem <head></head>tags.
<script>
function checkform()
{
if (document.form.email.value=='')
{
alert("Du mangler at skrive en emailadresse");
return false;
}
return true;
}
</script>
Du kan med fordel lægge HTML kodestumpen i et dir, der hedder HTML og gemme koden i en fil, der hedder form.html. Så kan du bruge PHP's funktion include til at hente den ind, der hvor du gerne vil have din tilmeldingsform.
Include funktion:
<? include(html/form.html); ?>
Jeg har brugt denne funktion i på den anden side, som du kommer til, når man trykker submit.
HTML kode:
Den form som folk skriver deres email i. Den kan sættes hvor på siden, bare det er mellem <body></body>tags.
<form action="tilmeldafmeld.php" name="form" method="post" onSubmit="return checkform();">
<div class="form"><label class="tagwalllabel" for="email">Email:</label><input id="email" type="text" name="email" size="25" maxlength="70" value=""></div>
<div class="form">Tilmeld: <input type="radio" name="status" value="tilmeld" checked="checked">
Afmeld: <input type="radio" name="status" value="afmeld"></div>
<div class="submit"><input type="submit" name="submit" value="Send"><input type="reset" name="submit" value="Fortryd"></div>
</form>
Resten af koden skal stå i tilmeldafmeld.php. Du skal indsætte din javascript kode fra før imellem <head></head>tags igen, da eventuelle fejl vil inkluderer din tilmeldingsform igen.
<?
if(isset($_POST['submit'])){
$email = ($_POST['email']);
$status = ($_POST['status']);
if(!eregi("^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\\.[a-z]{2,4}$", $email = $_POST['email'])) { // Tjekker om emailen er gyldig
echo "<p>Emailen indeholder ulovlige tegn. Du må lige prøve igen.</p>";
include('html/form.html');
} else {
if($status == 'tilmeld') { // Hvis brugeren har valgt tilmeld
$tjeck = mysql_query("SELECT email FROM nyhedsbrev WHERE email = '".$email."'") or die die(mysql_error());
$rows = mysql_num_rows($tjeck);
if ($rows > 0) {
echo "<p>Emailen er allerede tilmeldt.</p>";
include('html/form.html');
} else {
$data = mysql_query("INSERT INTO nyhedsbrev (email, time, ip)
VALUES ('$email',NOW(),'$ip')") or die(mysql_error());
echo "<p>Du er nu blevet tilmeldt vores nyhedsbrev.</p>";
};
} else { // Hvis brugeren vil afmeldes
$fjern = mysql_query("DELETE FROM nyhedsbrev WHERE email = '".$email."'");
$rowfjern = mysql_num_rows($fjern);
if ($fjern == 1) {
echo "<p>Din email er nu blevet slettet fra vores liste.</p>";
} else {
echo "<p>Der er desværre sket en fejl.</p>";
include('html/form.html');
};
};
};
};
?>
Håber du kan komme lidt videre med det her. Ellers må du spørge.
Mvh
Sol