Jag håller på lägger upp ett nyhetsbrev som jag hittade i interneworld tidningen och har stött på patrull!
Problemet: när jag har fyllt i uppgifterna personuppgifterna och epost adessen i formen som ska registrera så läggs det i databasen dock så skickas inte det iväg ett bekräftelsemail till det registrerade e-post kontot för aktivering av det och jag förstår inte varför, är det så att jag måste göra något i sql db?
så här ser koden ut:
<?
require("common.inc");
//-----Läs in variablerna från formuläret
$fornamn = $_POST['fornamn'];
$efternamn = $_POST['efternamn'];
$epost = $_POST['epost'];
$action = $_POST['action'];
//-----Kollla om e-posten redan finns i listan
$sql = "SELECT epost FROM mejladresser";
$result = mysql_query($sql) OR DIE(mysql_error());
$rows = mysql_numrows($result);
for($index=0; $index<$rows; $index++)
{
$check_email = mysql_result($result,$index,"epost");
if ($check_email==$epost){
//-----Om besökaren valt att avbeställa, plockas posten bort ---
if($action=="stop"){
$sql = "DELETE FROM mejladresser WHERE epost='$epost'";
$result = mysql_query($sql) OR DIE(mysql_error());
DIE ("Adressen $epost är nu borttagen från listan.");
}
else DIE("Adressen $epost finns redan.<br><br><a href=\"form.htm\">Tillbaka</a>");
}
}
if($action=="stop") DIE ("Adressen fanns inte i listan");
$message = "Adressen $epost har blivit anmäld till vår prenumerantlista.
\nKlicka på följande länk för att aktivera din prenumeration:\n http://www.xxxxxxx.xx/confirm.php?epost=$epost";
$datum = date("Y-m-d");
//-----Posten läggs in i databasen
$query = "INSERT INTO mejladresser (epost,fornamn,efternamn,datum)
VALUES('$epost','$fornamn','$efternamn','$datum')";
$result = mysql_query($query) or die(mysql_error());
//-----Bekräftelsemejl skickas till e-postadressen.
mail("$epost", "Bekräfta din beställning", "$message", "Wrom: WFAOBUZXUWLSZLKBRNVWWCUFPEGAUTFJMVRESKPN
//-----Kontrollera om det finns inaktiva poster som är äldre än 7 dagar, och rensa bort dessa ----
$exp_month=date("m");
$exp_day=date("d")-7;
$exp_year=date("Y");
$expires=date( "Y-m-d", mktime(0,0,0,$exp_month,$exp_day,$exp_year) );
$sql = "DELETE FROM mejladresser WHERE aktiv='no' AND datum<'$expires'";
$result = mysql_query($sql) or DIE(mysql_error());
?>
<html>
<head>
<title>Tack för din amnälan!</title>
</head>
<body bgcolor="#FFFFFF" link="#CC0000" vlink="#999999" alink="#CC0000">
Tack för din anmälan. <b><?= $epost; ?></b> är nu med i vårt prenumerantutskick.<br>
Ett bekräftelsemejl skickas till dig nu. Där står hur du gör för att aktivera din prenumeration.<br>
</body>
</html>
Beroende på olika inställningar så är det svårt att skicka mail från vissa webbhotell. Kan vara något sådant som är problemet. För övrigt så kan det kanske göra skillnad om du ändrar
mail("$epost", "Bekräfta din beställning", "$message", "Wrom: WFAOBUZXUWLSZLKBRNVWWCUFPEGAUTFJMVRESKPN
till
mail("$epost", "Bekräfta din beställning", "$message", "From: [email]din@epost.se[/email]
Testa att lägga in din epostadress och se om det hjälper.