Unsubscription script
This commit is contained in:
parent
6c39986f0c
commit
2fcaa9c973
9
config.php
Normal file
9
config.php
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
define('MYBB_ROOT', '../');
|
||||
define('MYBB_PREFIX', 'mybbfo_');
|
||||
define('FORUM_ID', 0);// 0 means all forums
|
||||
define('DATE_FORMAT', 'd/M/Y h:i A');
|
||||
define('DRY_RUN', true);
|
||||
define('DSN', 'mysql:host=localhost;dbname=mybb;charset=utf8');
|
||||
define('MYSQL_USER','root');
|
||||
define('MYSQL_PASSWORD', '123456');
|
15
digest.php
15
digest.php
|
@ -1,19 +1,12 @@
|
|||
<?php
|
||||
require_once "vendor/autoload.php";
|
||||
require_once "config.php";
|
||||
require_once "activethreads.php";
|
||||
require_once "email.php";
|
||||
define("MYBB_ROOT", "../");
|
||||
define("MYBB_PREFIX", "mybbfo_");
|
||||
define("FORUM_ID", 0);// 0 means all forums
|
||||
define("DATE_FORMAT", 'd/M/Y h:i A');
|
||||
define("DRY_RUN", true);
|
||||
$dsn = 'mysql:host=localhost;dbname=mybb;charset=utf8';
|
||||
$usr = 'root';
|
||||
$pwd = '123456';
|
||||
|
||||
$pdo = new PDO($dsn, $usr, $pwd);
|
||||
$pdo = new PDO(DSN, MYSQL_USER, MYSQL_PASSWORD);
|
||||
$threads = getLatestActiveThreads(FORUM_ID, 100, true);
|
||||
$users = $pdo->prepare("SELECT usergroup, email, username FROM ".MYBB_PREFIX."users
|
||||
$users = $pdo->prepare("SELECT usergroup, loginkey, email, username FROM ".MYBB_PREFIX."users
|
||||
WHERE usergroup = 4
|
||||
AND isSubscribed = 1");
|
||||
$users->execute();
|
||||
|
@ -51,7 +44,7 @@ foreach ($temp as $row) {
|
|||
|
||||
foreach ($users as $user) {
|
||||
$email = $user['email'];
|
||||
$message = print_email($user['username'], $url.'/unsubscribe', $threads, $forbidden[$user['usergroup']]);
|
||||
$message = print_email($user['username'], $url.'/digest/unsubscribe.php?email='.$user['email'].'&key='.$user['login.key'], $threads, $forbidden[$user['usergroup']]);
|
||||
if (DRY_RUN) {
|
||||
echo $message;
|
||||
}
|
||||
|
|
24
unsubscribe.php
Normal file
24
unsubscribe.php
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
require_once "config.php";
|
||||
$pdo = new PDO(DSN, MYSQL_USER, MYSQL_PASSWORD);
|
||||
$key = $pdo->prepare("SELECT loginkey FROM ".MYBB_PREFIX."users WHERE email = :email");
|
||||
$loginkey = $_GET['key'];
|
||||
$email = $_GET['email'];
|
||||
if (empty($loginkey) || empty($email)) {
|
||||
echo "Not enough parameters.";
|
||||
var_dump($_GET);
|
||||
return;
|
||||
}
|
||||
$key->execute([
|
||||
'email' => $email
|
||||
]);
|
||||
$key = $key->fetch()['loginkey'];
|
||||
if ($key === $loginkey) {
|
||||
$key = $pdo->prepare('UPDATE '.MYBB_PREFIX."users SET isSubscribed = 0 WHERE email = :email");
|
||||
$key->execute([
|
||||
'email' => $email
|
||||
]);
|
||||
echo "You were unsubscribed. Close this window.";
|
||||
} else {
|
||||
echo "Key is incorrect. No action made.";
|
||||
}
|
Reference in a new issue