Beste,
Ik had graag een soort uitschrijf formulier gemaakt, dat men via het invullen van zijn email adres op de site een mail krijgt met daarin een delete link.
Hoe start ik daaraan, of zijn er ergens voorbeelden van ?

[size=xsmall]Toevoeging op 14/11/2012 13:36:49:[/size]

Dendeze ikke op 14/11/2012 11:22:41

Beste,
Ik had graag een soort uitschrijf formulier gemaakt, dat men via het invullen van zijn email adres op de site een mail krijgt met daarin een delete link.
Hoe start ik daaraan, of zijn er ergens voorbeelden van ?

zoiets heb ik in elkaar gekregen, graag opmerkingen ivm veiligheid.Kan ik dit testen op localhost ? Thx.
<?php
include('system/config.connection.php'); /*verbinding databank*/

if(isset($_POST['formulier']))
{
$email = $_POST['email'];
$adminemail = '******' ; /*hier email adres invullen*/
$mailtime = date("d/m/Y H:i");
if(!$email)
{
$allfields = 'neen';
// 1 = NOT_ALL_FIELDS_FILLED_IN
$error = 1;
}

if(!$error)
{
$sql = "SELECT * FROM uw tabel WHERE email='$email'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
$bericht = "hier uw boodschap";
$bericht = $bericht . "hier komt delete link";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\nFrom: hier uw gegevens of email";
mail($row["email"], "nog een gegeven", $bericht, $headers);
}
Echo "hier bla,bla";
}
}
?>
Controleren of een formulier verzonden is doe je met

if($_SERVER['REQUEST_METHOD'] == 'POST'

Je kopieert nu op regel 6 een variabel en op regel 9 ga je controleren. Doe deze controle eerder
Wat is het nut van $allfields? Je doet er verder niets mee (in dit stukje code).
Gebruik in je query geen * maar geef het veld/de velden op
Variabelen buiten quotes.
Ik hoop dat uw tabel niet de echte tabelnaam is.
Je gebruikt $email zonder enige controle -> risico / lek.
Foutafhandeling van je query mist.
Waarom mysql_fetch_array en geen mysql_fetch_assoc? Je maakt nl. geen gebruik van de array-mogelijkheid.
Een mailadres kan maar 1x voorkomen (ga ik van uit). Dus een while-lus is niet logisch.
Je controleert niet of de mail verzonden is.
Zelf zou ik niet vertrouwen op de mailfunctie van php, maar kiezen voor phpmailer of swiftmailer.
Dank je, ik ga er mee aan de slag.
De array is inderdaad omdat het email adres wel meerdere malen in de database kan staan.
Maar hoe controleer ik of de mail wel echt is verzonden ?
Dendeze ikke op 14/11/2012 17:20:02

De array is inderdaad omdat het email adres wel meerdere malen in de database kan staan.

Array heeft niets te maken of een mailadres meerdere keren voor kan komen. Ik vermoed dat je het over de while-lus hebt...

Hoe kan er eigenlijk meerdere keren hetzelfde mailadres in komen te staan?
Straks krijgt iemand dus een mailtje met mogelijk meerdere afmeldlinkjes, omdat het mailadres meerdere keren voor komt?!?
Hoe verwacht je dat iemand weet welke van die links hij moet aanklikken?
Het gaat om het opvragen en verwijderen van advertenties. Dus ja, het email kan meerdere malen voorkomen.al staat er een limit op daar er maar 20 pagina's van 10 advertenties per rubriek getoond worden.
Ik geef in de mail de titel en een stukje tekst mee vanuit de database.

Reageren