Mailinglist – php example code – part 4 – unsubscribe by e-mail
Article focus on mechanism for unsubscribing users from mailinglist by their e-mails. Because this part is meant to by available for admin, full list of subscribers are shown after all removing action for further look.
Form part
Form part is simplest ever, because sonsist only from one inputfiled gaining e-mail address to usubscribe from mailinglist.
<form method=“post“ action=“<?php echo $_SERVER[‚PHP_SELF‘]; ?>“>
<div class=“form-group“>
<label>e-mail to unsubscribe:</label>
<input type=“text“ onfocus=“this.value=’@'“ name=“email“ class=“form-control“ value=“<?php echo isset($_POST[‚email‘]) ? $email : ‚Write e-mail address to unsubscribe here‘; ?>“>
</div>
<button type=“submit“ name=“submit“ class=“btn btn-warning“> Unsubscribe </button>
Unsubscribe by e-mail php code
For finding and removing unwanted subscribers from a database table is used simple matching e-mail adress.
<?php
// two variables for message and styling of the mesage with bootstrap
$msg = “;
$msgClass = “;
// default values of auxiliary variables
$email =““;
$is_removed = false; //before hitting submit button no result is available
if(filter_has_var(INPUT_POST, ‚submit‘)){
// Data obtained from $_postmessage are assigned to local variables
$email = htmlspecialchars($_POST[‚email‘]);
// Controll if all required fields was written
if(!empty($email) ) {
// If check passed – all needed fields are written
if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
// E-mail is not walid
$msg = ‚Please use a valid email‘;
$msgClass = ‚alert-danger‘;
} else {
// E-mail is valid – now delete row with matching e-mail
// make database connection
$dbc = mysqli_connect(„localhost“, „admin“, „test*555“, „test“);
// Check connection
if($dbc === false){
die(„ERROR: Could not connect to database. “ . mysqli_connect_error());
}
// create DELETE query
$sql = „DELETE FROM mailinglist WHERE email = „.“‚$email'“ ;
if(mysqli_query($dbc, $sql)){
$msg = ‚Subscriber with e-mail: ‚.$email. ‚ has been succesfully removed from mailinglist.‘;
$msgClass = ‚alert-success‘;
$is_removed = true;
// clear entry fields after sucessfull deleting from database
} else {
$msg = „ERROR: Could not able to execute $sql. “ . mysqli_error($dbc);
$msgClass = ‚alert-danger‘;
$is_removed = false;
}
// end connection
mysqli_close($dbc);
};
} else {
// Failed – if not all fields are fullfiled
$msg = ‚Please fill in all fields‘;
$msgClass = ‚alert-danger‘; // bootstrap format for allert message with red color
};
};
// if reset button clicked
if(filter_has_var(INPUT_POST, ‚reset‘)){
$msg = “;
$msgClass = “; // bootstrap format for allert message with red color
$subject =“;
$email =“;
};
?>
Full code of mailinglist app can be obtained from here.