Hej, dzięki za info. Tzn. bez potwierdzenia, link w mailu będzie miał anchor np. "Zgadzam się na dopisanie do listy subskrybentów (...)" i po jego kliknięciu już potwierdzenia nie potrzebuję, cała treść, fragment ustawy i takie tam będa w treści maila.
Chodzi o to, żeby po kliknięciu w htmlu mail dopisał się do bazy lub do byle jakiego pliku, bo to będzie łatwiejsze na pewno.
Wykona ktoś to dla mnie za pare złotych? Nie ważne jak, byle działało, może być nawet bałagan w kodzie.
Nie musi być super, chodzi o efekt, można nawet wykorzystać formularz newslettera, który jest na klapie, nie wiem, byle pobrać adres maila i go dopisać do listy.
Skrypt sklepu to niestety Shoper.pl
Adres sklepu podam przez PW.
Jeśli chodzi o formularz subskrypcji na sklepie to znalazłem w pliku index.php takie coś:
$timer->start('subsc.inc');
if (isset($_REQUEST['subsc']) || (isset($_GET['action']) and
isset($_POST['email'])) || isset($_GET['verifyorder']) || isset($_GET['verify_code'])) include ('subsc.inc');
$timer->stop('subsc.inc');
Poniżej zawartość pliku subsc.inc:
<?php
/*****************************************************************************
* *
* Sumcart.com,Shoper.pl *
* Copyright (c) 2005 DEVAREA s.c. *
* *
****************************************************************************/
$session = Zend_Registry::get('session');
$db = Zend_Registry::get('db');
if (isset($_POST['subsc'])) {
if (isset($_POST['email'])) {
if (verifyEmail($_POST['email']))
{
$adres_email = emailFiltr($_POST['email']);
$select = $db->select()->from(DB_PREFIX . 'subscribers', '*')->where('sub_email = ?',
$adres_email);
$result_sub = $select->query()->fetchAll();
$uri = Zend_Uri::factory(CONF_SHOP_URL);
if(isset($_SERVER['HTTP_HOST']) && strlen($_SERVER['HTTP_HOST'])>3
) {
$uri->setHost($_SERVER['HTTP_HOST']);
}
// jezeli nie istnieje to generuje unikalna liczbe
if (count($result_sub) == 0
) {
$wiadomosc = SUBSC_HELLO_TO . ' (' . $adres_email . ') ' . SUBSC_PLEASE_ADD;
$action = 'add';
if (substr((string
)$uri, -1) != "/") {
$slash = "/";
} else
{
$slash = "";
}
$link = (string)$uri . $slash . "index.php?verify_code=" . $losowa . "&email=" .
$adres_email . "&action=" . $action;
$select = $db->select()->from(DB_PREFIX . 'mail', '*')->where('mail_lang = ?', $session->
lang)->where('mail_name = ?', 'MAIL_SUBSC_ADD');
$mailSettings = $select->query()->fetch();
$lista_zam = array('_link', '_shop_name'); $lista_ok = array($link, CONF_SHOP_NAME
); $body = str_replace($lista_zam, $lista_ok, $mailSettings['mail_content']); $mailTitle = str_replace($lista_zam, $lista_ok, $mailSettings['mail_title']);
// dodaje do bazy
$insertData = array('sub_email' => $adres_email, 'active' => 0, 'verify_code' => $losowa, 'dateadd' => date("Y-m-d H:i:s"));
$db->insert(DB_PREFIX . 'subscribers', $insertData);
} else
{
// sprawdza czy podany email juz istnieje w bazie
$wiadomosc = SUBSC_HELLO_TO . ' (' . $adres_email . ') ' . SUBSC_PLEASE_DELETE;
$select = $db->select()->from(DB_PREFIX . 'subscribers', 'verify_code')->where('sub_email = ?',
$adres_email)->limit(1);
$result_code = $select->query();
$Aresult_code = $result_code->fetch();
$losowa = $Aresult_code['verify_code'];
$action = 'delete';
if (substr((string
)$uri, -1) != "/") {
$slash = "/";
} else
{
$slash = "";
}
$link = (string)$uri . $slash . "/index.php?verify_code=" . $losowa . "&email=" .
$adres_email . "&action=" . $action;
$select = $db->select()->from(DB_PREFIX . 'mail', '*')->where('mail_lang = ?', $session->
lang)->where('mail_name = ?', 'MAIL_SUBSC_DEL');
$mailSettings = $select->query()->fetch();
$lista_zam = array('_link', '_shop_name'); $lista_ok = array($link, CONF_SHOP_NAME
); $body = str_replace($lista_zam, $lista_ok, $mailSettings['mail_content']); $mailTitle = str_replace($lista_zam, $lista_ok, $mailSettings['mail_title']); }
} else
{
$wiadomosc = SUBSC_NOT_EMAIL;
}
$smarty->assign('notify', $wiadomosc);
{
// mail to custommer subsc
try
{
sendEmail($adres_email, $mailTitle, $body, $mailSettings["mail_from"], $mailSettings["mail_from_name"]);
}
catch (exception $e)
{
$error = PROBLEM_WITH_MAIL . " " . $e->getMessage();
$smarty->assign('notify', $error);
}
}
}
$smarty->assign('main_page', 'subsc.tpl');
}
if (isset($_GET['action'])) {
// sprawdza czy podany kod istnieje w bazie
$select = $db->select()->from(DB_PREFIX . 'subscribers', '*')->where('verify_code = ?',
$_GET['verify_code'])->where('sub_email = ?', $_GET['email'])->limit(1);
$result_check_code = $select->query();
if (count($result_check_code) == 1
) {
if ($_GET['action'] == 'add')
{
$d = $db->select()->from(TABLE_SUBSCIRBERS)->where('verify_code=?', (string )$_GET['verify_code'])->
where('sub_email=?', (string )$_GET['email'])->query()->fetch();
if ($d !== null)
{
if ($d['active'] == 0)
{
$db->query("UPDATE " . DB_PREFIX .
"subscribers SET `active` = 1 WHERE `verify_code` = ?", array($_GET['verify_code'])); $wiadomosc = SUBSC_EMAIL_ADDED;
} else
{
$wiadomosc = SUBSC_EMAIL_ALREADY_CONFIRMED;
}
} else
{
$wiadomosc = SUBSC_EMAIL_NOT_EXISTS;
}
}
if ($_GET['action'] == 'delete')
{
$d = $db->select()->from(TABLE_SUBSCIRBERS)->where('verify_code=?', (string )$_GET['verify_code'])->
where('sub_email=?', (string )$_GET['email'])->query()->fetch();
if ($d !== null)
{
$db->delete(DB_PREFIX . 'subscribers', $db->quoteInto('sub_email = ?', $_GET['email']));
$wiadomosc = SUBSC_EMAIL_DELETED;
} else
{
$wiadomosc = SUBSC_EMAIL_NOT_EXISTS;
}
}
} else
{
$wiadomosc = SUBSC_AUTH_ERROR;
}
$smarty->assign('notify', $wiadomosc);
$smarty->assign('main_page', 'subsc.tpl');
}
if (isset($_GET['subsc'])) {
$wiadomosc = SUBSC_CONFIRM;
$smarty->assign('notify', $wiadomosc);
$smarty->assign('main_page', 'subsc.tpl');
}
// Potwierdzanie zamowienia
{
$affected = $db->update(DB_PREFIX
. "orders", array('confirm' => 1
), array($db-> quoteInto("code = ?", $_GET['verifycode']), $db->quoteInto("order_id = ?", $_GET['verifyorder'])));
if ($affected > 0)
{
$notify = ORDER_CONFIRM_OK . $_GET['verifyorder'];
} else
{
$notify = ORDER_CONFIRM_ERROR;
}
$smarty->assign('notify', $notify);
$smarty->assign('main_page', 'notify.tpl');
}
?>