Ik heb een script nodig dat mensen in staat stelt zich af te melden van een maillist.

De maillist is opgeslagen in een mysql database.
Daarbij worden tabellen "naam" en "mail" gebruikt.

In het script moet dus de naam en mail ingevuld worden, pas als dit overeenkomt mag deze uit de database verwijderd worden.

Ik ben al een aantal weken aan het zoeken en proberen geweest, maar kan niets vinden.

Hoop dat iemand zo'n script heeft of mij kan helpen...

Maar buiten het feit dat hij de mail niet verstuurd, verwijderd hij ook de ingevulde mailadres niet uit de database...
Heb hier het complete script...

Halverwege staat een deel dat het mailadres verwijderd uit de mysql database, alleen hoeft daar geen naam bij ingevuld te worden en wordt er geen afmeld mail toegestuurd, wat wel de bedoeling is...

Wie kan mij helpen om er dus een werken unsubscribe script van te maken ?


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">;
<html>
<head>
<title>Mailing Verwijderen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body,td,th {
font-family: verdana;
font-size: 10pt;
color: 000000;
}
-->
</style></head>

<body>
<?

$hostname = "localhost";
$username = "derodehaan_nl";
$password = "********";
$database = "derodehaan_nl_5";

mysql_connect("$hostname","$username","$password");
mysql_select_db("$database");


if (!$action) {
echo "<br><br>Vul hier de naam en e-mail in van degene die je wilt toevoegen aan de lijst:<BR><BR>\n";
if ($toevoegen) {
if ($naam != "" && $email != "") {
$query = mysql_query("SELECT * FROM mailing WHERE email = '$email'");
if(mysql_num_rows($query) >= 1) {
echo "<FONT COLOR=\"#FF0000\">De <B>E-mail</B> die U opgaf is al geregistreerd!</FONT>\n";
} else {
if (preg_match("/(?i)^([a-z0-9._-])+@([a-z0-9.-])+\.([a-z0-9]){2,4}$/",$email)) {
$query2 = "INSERT INTO mailing (naam, email) VALUES ('$naam','$email')";
mysql_query($query2) or die(mysql_error());
$name = "De Rode Haan";
$myemail = "[email protected]";
$subject = "Toegevoegd Mailinglist";
$message = "Beste $naam,
Je bent toegevoegd aan de mailinglist van: $name.

----------------------------------------
Je gegevens:

Naam: $naam
E-mail: $email
----------------------------------------

Om jezelf weg te halen van de mailinglist kun je via
de website contact opnemen met de webmaster in het menu -contact-


Met Vriendelijke Groet, $name";
mail("$email","$subject","$message","From: $name <$myemail>");
echo "Okey, U bent toegevoegd aan de mailings list.<BR>Controleer uw email voor de zekerheid!\n";
} else {
echo "<FONT COLOR=\"#FF0000\">De <B>E-mail</B> die U opgaf is geen goed email adres!</FONT>\n";
}
}
} else {
echo "<FONT COLOR=\"#FF0000\">Geen <B>Naam</B> en/of <B>E-mail</B> ingevult</FONT>\n";
}
}
echo "<FORM METHOD=\"post\" ACTION=\"index.php\">\n";
echo "<TABLE BORDER=\"0\" CELLPADDING=\"5\" CELLSPACING=\"0\" WIDTH=\"400\">\n";
echo "<TR>\n";
echo "<TD>Naam:</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"naam\" SIZE=\"20\" CLASS=\"form\"></TD>\n";
echo "</TR>\n";
echo "<TR>\n";
echo "<TD>E-mail:</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"email\" SIZE=\"20\" CLASS=\"form\"></TD>\n";
echo "</TR>\n";
echo "<TR>\n";
echo "<TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" NAME=\"toevoegen\" VALUE=\"Voeg mij toe!\" CLASS=\"button\"></TD>\n";
echo "</TR>\n";
echo "</TABLE>\n";
echo "</FORM>\n";
}

if ($action == "remove") {
echo "<BR><BR>\n";
echo "Voer hier het email adres in dat verwijderd moet worden uit de mailinglist:<BR><BR>\n";
if ($verwijder) {
if ($email != "") {
$query = mysql_query("SELECT * FROM mailing WHERE email = '$email'");
if(mysql_num_rows($query) >= 1) {
while ($obj = mysql_fetch_object($query)) {
$naam = $obj->naam;
$sql ="DELETE FROM mailing WHERE naam = '$naam' AND email = '$email'";
mysql_query($sql);
echo "Okey, deze is verwijderd van de mailinglist.\n";
}
} else {
echo "<FONT COLOR=\"#FF0000\">De opgegeven <B>E-mail</B> bestaat niet!</FONT>\n";
}
} else {
echo "<FONT COLOR=\"#FF0000\">U moet wel een <B>E-mail</B> invullen!</FONT>\n";
}
}
echo "<FORM METHOD=\"post\" ACTION=\"index.php?action=remove\">\n";
echo "<TABLE BORDER=\"0\" CELLPADDING=\"5\" CELLSPACING=\"0\" WIDTH=\"400\">\n";
echo "<TR>\n";
echo "<TD>E-mail:</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"email\" SIZE=\"20\" CLASS=\"form\"></TD>\n";
echo "</TR>\n";
echo "<TR>\n";
echo "<TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" NAME=\"verwijder\" VALUE=\"Verwijder\" CLASS=\"button\"></TD>\n";
echo "</TR>\n";
echo "</TABLE>\n";
echo "</FORM>\n";
}
?>
</body>
</html>
Ik krijg na enig stoeien met dit script te horen dat iksuperglobals moet gebruiken...

Hoe vul ik dat in, aangezien ik daar erg weinig van weet

$_POST['var'] ???
Om een bestaand script aan te passen aan superglobals is het het makkelijkst als je de vars gewoon bovenin je script even overzet.
Dus even een voorbeeld:

<?php
$naam=$_POST['naam'];
$plaats=$_POST['plaats'];
$PHP_SELF=$_SERVER['PHP_SELF'];
?>
Ik snap er helemaal niets meer van.
Kom er ook niet meer uit verder...

:-S
Het is gelukt.....!!!

(Deels dan...)
Ik heb het script zo in elkaar dat je je naam en mail moet invullen.Als je de juiste naam en juiste mail invult wordt deze verwijderd uit de database en wordt er een mail verstuurd.

Echter,

als je de verkeerde naam invult geeft ie ook aan dat de mail verstuurd is en dat je uit de database gehaalt bent, alleen is dit niet zo...

Wat is er nog fout ?

Hier het script...

<?

$hostname = "localhost";
$username = "derodehaan_nl";
$password = "********";
$database = "derodehaan_nl_5";

mysql_connect("$hostname","$username","$password");
mysql_select_db("$database");

if ($action == "remove") {
echo "<BR><BR>\n";
echo "Voer hier de naam en email adres in dat verwijderd moet worden uit de mailinglist:<BR><BR>\n";
if ($verwijder) {
if ($naam != "" && $email != "") {
$query = mysql_query("SELECT * FROM mailing WHERE email = '$email'");
if(mysql_num_rows($query) >= 1) {
if (preg_match("/(?i)^([a-z0-9._-])+@([a-z0-9.-])+\.([a-z0-9]){2,4}$/",$email)) {
$query2 = "DELETE FROM mailing WHERE naam = '$naam' AND email = '$email'";
mysql_query($query2) or die(mysql_error());
$name = "De Rode Haan";
$myemail = "[email protected]";
$subject = "Afmelding Mailinglist";
$message = "Beste $naam,
Je bent verwijderd van de mailinglist van: $name.

----------------------------------------
Je gegevens:

Naam: $naam
E-mail: $email
----------------------------------------

Heb je niet zelf je mailadres van de maillijst verwijderd?
Meld je dan weer opnieuw aan op http://www.derodehaan.nl


Met Vriendelijke Groet, $name";
mail("$email","$subject","$message","From: $name <$myemail>");
echo "Okey, U bent verwijderd van de mailings list.<BR>Een bevestigingsmail is naar u verstuurd!\n";
} }}
}
echo "<FORM METHOD=\"post\" ACTION=\"index.php?action=remove\">\n";
echo "<TABLE BORDER=\"0\" CELLPADDING=\"5\" CELLSPACING=\"0\" WIDTH=\"400\">\n";
echo "<TR>\n";
echo "<TD>Naam:</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"naam\" SIZE=\"20\" CLASS=\"form\"></TD>\n";
echo "</TR>\n";
echo "<TR>\n";
echo "<TABLE BORDER=\"0\" CELLPADDING=\"5\" CELLSPACING=\"0\" WIDTH=\"400\">\n";
echo "<TR>\n";
echo "<TD>E-mail:</TD>\n";
echo "<TD><INPUT TYPE=\"text\" NAME=\"email\" SIZE=\"20\" CLASS=\"form\"></TD>\n";
echo "</TR>\n";
echo "<TR>\n";
echo "<TD COLSPAN=\"2\"><INPUT TYPE=\"submit\" NAME=\"verwijder\" VALUE=\"Verwijder\" CLASS=\"button\"></TD>\n";
echo "</TR>\n";
echo "</TABLE>\n";
echo "</FORM>\n";
}
?>
Na lang stoeien is het uiteindelijk gelukt om alles werkend te krijgen.

Zonder jullie had me dat niet gelukt...

Mijn dank is groot...

Reageren