- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试配置 PHPList 3.012。我将使用自己的订阅和取消订阅页面。我在PHPList的新闻组里问的。不幸的是我没有得到任何回应。似乎没有人使用自己的订阅页面。如果登录页面上的输入字段为空,我将单击发送按钮,javascript 会说:“请输入有效的电子邮件地址。在我输入有效的电子邮件地址后,应该会出现另一个错误消息。相反,会显示来自 PHPList 的登录页面。请查看我的脚本和 PHP 代码。我想要拥有自己的弹出窗口,而不是来自 PHPList 的感谢页面。你们中有人运行 PHPList 并拥有自己的订阅、取消订阅和感谢页面吗?还必须对 PHPList 中的 index.php 进行更多更改。
感谢您的帮助
<div class="page-footer">
<div id="newsletter">
<div class="form-horizontal">
<form action="http://example.com/?p=subscribe&id=1" method="post" class="newsletter" name="subscribeform" id="subscribeform">
<div class="form-group">
<label class="col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">Form of address:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<label class="radio-inline">
<input type="radio" name="attribute1" value="1">Mr</label>
<label class="radio-inline">
<input type="radio" name="arttibute1" value="2">Ms</label>
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<div class="form-group">
<label class="subscriber_titel col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">Title:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<input type="text" class="form-control" name="attribute2" id="titel" placeholder="Title" value="" />
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<div class="form-group">
<label class="subscriber_vorname col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">First Name:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<input type="text" class="form-control" name="attribute3" id="vorname" placeholder="First Name" value="" />
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<div class="form-group">
<label class="subscriber_name col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">Last Name:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<input type="text" class="form-control" name="attribute4" id="name" placeholder="Last Name" value="" />
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<div class="form-group">
<label class="subscriber_email col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">E-Mail:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<input type="text" class="form-control" name="email" id="email" placeholder="email@example.com" value="" />
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<div class="form-group">
<label class="subscriber_land col-lg-2 col-md-2 col-sm-2 col-sx-2 control-label">Land:</label>
<div class="col-lg-6 col-md-6 col-sm-6 col-sx-6">
<input type="text" class="form-control" name="attribute5" id="land" placeholder="Land" value="" />
</div>
<!-- /.col-lg-6 col-md-6 col-sm-6 col-sx-6 -->
</div>
<!-- /.form-group -->
<input type="hidden" name="htmlemail" value="1">
<div class="form-group">
<div class="col-sm-offset-0 col-sm-12">
<div class="checkbox">
<label>
<input type="checkbox" name="list[1]" value="signup" checked />Newsletter</label>
</div>
<!-- /.col-sm-offset-0 col-sm-12 -->
</div>
<!-- /.checkbox -->
</div>
<!-- /.form-group -->
<div class="form-group">
<div class="col-sm-offset-0 col-sm-12">
<div class="checkbox">
<label>
<input type="checkbox" name="list[2]" value="signup" checked />Newsletter 2</label>
</div>
<!-- /.col-sm-offset-0 col-sm-12 -->
</div>
<!-- /.checkbox -->
</div>
<!-- /.form-group -->
<div class="form-group">
<div class="col-lg-8 col-md-8 col-sm-8 col-sx-8">
<input type="reset" name="reset" value="Reset" class="btn btn-default btn-sm" title="Formular zurücksetzen">
<button class="btn btn-success btn-sm" role="button" type="submit" name="subscribe" id="postname" onclick="return checkform();" value="Subscribe" title="Subscirbe">Subscribe Newsletter</button>
</div>
<!-- /.col-lg-8 col-md-8 col-sm-8 col-sx-8 -->
</div>
<!-- /.form-group -->
<hr class="style-red">
<div class="form-group">
<div class="col-lg-8 col-md-8 col-sm-8 col-sx-8"> <a class="btn btn-warning btn-xs" role="button" href="newsletter-unsubscribe.php" title="Newsletter unsubscribe">Unsubscribe</a>
<a class="btn btn-info btn-xs" role="button" href="newsletter-change-personal-information.php" title="Change personal information">Change personal information</a>
</div>
<!-- /.col-lg-8 col-md-8 col-sm-8 col-sx-8 -->
</div>
<!-- /.form-group -->
</form>
<!-- /.form action-->
</div>
<!-- /.form-horizontal -->
</div>
<!-- /.newsletter -->
</div>
<!-- /.page-footer -->
</div>
<!-- /.well-white-01 -->
</div>
<!-- /.lg-col-8 col-md-8 col-sm-8 col-sx-8 -->
<script type="text/javascript">
function checkform() {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.forms['subscribeform'].elements['email'].value;
if (reg.test(address) == false) {
alert('Bitte geben Sie Ihre gültige Email-Adresse ein!');
document.forms['subscribeform'].elements['email'].focus();
return false;
} else {
document.forms['unsubscribeform'].elements['unsubscribeemail'].value = document.forms['subscribeform'].elements['email'].value;
}
if (document.forms['subscribeform'].elements['attribute1'].value == "") {
alert('Bitte die Anrede auswählen!');
document.forms['subscribeform'].elements['attribute1'].focus();
return false;
} else {
document.forms['unsubscribeform'].elements['attribute1'].value = document.forms['subscribeform'].elements['attribute1'].value;
return true;
}
if (document.forms['subscribeform'].elements['attribute3'].value == "") {
alert('Bitte geben Sie Ihren Vornamen ein!');
document.forms['subscribeform'].elements['attribute3'].focus();
return false;
} else {
document.forms['unsubscribeform'].elements['attribute3'].value = document.forms['subscribeform'].elements['attribute3'].value;
return true;
}
if (document.forms['subscribeform'].elements['attribute4'].value == "") {
alert('Bitte geben Sie Ihren Nachnamen ein!');
document.forms['subscribeform'].elements['attribute4'].focus();
return false;
} else {
document.forms['unsubscribeform'].elements['attribute4'].value = document.forms['subscribeform'].elements['attribute4'].value;
return true;
}
if (document.forms['subscribeform'].elements['attribute5'].value == "") {
alert('Bitte geben Sie das Land ein!');
document.forms['subscribeform'].elements['attribute5'].focus();
return false;
} else {
document.forms['unsubscribeform'].elements['attribute5'].value = document.forms['subscribeform'].elements['attribute5'].value;
return true;
}
}
</script>
最佳答案
<?php
ob_start();
//$er = error_reporting(0);
require_once dirname(__FILE__) .'/admin/commonlib/lib/unregister_globals.php';
require_once dirname(__FILE__) .'/admin/commonlib/lib/magic_quotes.php';
## none of our parameters can contain html for now
$_GET = removeXss($_GET);
$_POST = removeXss($_POST);
$_REQUEST = removeXss($_REQUEST);
$_SERVER = removeXss($_SERVER);
$_COOKIE = removeXss($_COOKIE);
## remove a trailing punctuation mark on the uid
if (isset($_GET['uid'])) {
if (preg_match('/[\.,:;]$/',$_GET['uid'])) {
$_GET['uid'] = preg_replace('/[\.,:;]$/','',$_GET['uid']);
}
}
if (isset($_SERVER["ConfigFile"]) && is_file($_SERVER["ConfigFile"])) {
include $_SERVER["ConfigFile"];
} elseif (is_file("config/config.php")) {
include 'config/config.php';
} else {
print "Error, cannot find config file\n";
exit;
}
require_once dirname(__FILE__).'/admin/init.php';
$GLOBALS["database_module"] = basename($GLOBALS["database_module"]);
$GLOBALS["language_module"] = basename($GLOBALS["language_module"]);
require_once dirname(__FILE__).'/admin/'.$GLOBALS["database_module"];
# load default english and language
include_once dirname(__FILE__)."/texts/english.inc";
if (is_file(dirname(__FILE__).'/texts/'.$GLOBALS["language_module"])) {
include_once dirname(__FILE__).'/texts/'.$GLOBALS["language_module"];
}
# Allow customisation per installation
if (is_file($_SERVER['DOCUMENT_ROOT'].'/'.$GLOBALS["language_module"])) {
include_once $_SERVER['DOCUMENT_ROOT'].'/'.$GLOBALS["language_module"];
}
include_once dirname(__FILE__)."/admin/languages.php";
require_once dirname(__FILE__)."/admin/defaultconfig.php";
require_once dirname(__FILE__).'/admin/connect.php';
include_once dirname(__FILE__)."/admin/lib.php";
$I18N = new phplist_I18N();
header('Access-Control-Allow-Origin: '.ACCESS_CONTROL_ALLOW_ORIGIN);
if (!empty($GLOBALS["SessionTableName"])) {
require_once dirname(__FILE__).'/admin/sessionlib.php';
}
@session_start();
if (!isset($_POST) && isset($HTTP_POST_VARS)) {
require 'admin/commonlib/lib/oldphp_vars.php';
}
$req = Sql_fetch_row_query(sprintf('select id from %s where id = %d',$tables["subscribepage"],$id));
$id = $req[0];
$msg = "";
if (isset($_GET['p']) && $_GET["p"] == "subscribe") {
$_SESSION["userloggedin"] = 0;
$_SESSION["userdata"] = array();
}
if (!$id) {
# find the default one:
$id = getConfig("defaultsubscribepage");
# fix the true/false issue
if ($id == "true") $id = 1;
if ($id == "false") $id = 0;
if (!$id) {
# pick a first
$req = Sql_Fetch_row_Query(sprintf('select ID from %s where active',$tables["subscribepage"]));
$id = $req[0];
}
}
$pagedata = array();
if ($id) {
$GLOBALS['pagedata'] = PageData($id);
if (isset($pagedata['language_file']) && is_file(dirname(__FILE__).'/texts/'.basename($pagedata['language_file']))) {
@include dirname(__FILE__).'/texts/'.basename($pagedata['language_file']);
# Allow customisation per installation
if (is_file($_SERVER['DOCUMENT_ROOT'].'/'.basename($pagedata['language_file']))) {
include_once $_SERVER['DOCUMENT_ROOT'].'/'.basename($pagedata['language_file']);
}
}
}
include 'admin/ui/'.$GLOBALS['ui'].'/publicpagetop.php';
print $pagedata["header"];
if($_POST['email']!='' && isset($_POST['email']))
{
$email_address = $_POST['email'];
$query = sprintf('INSERT INTO %s (email,status) values("%s","%s")',
'phplist_user_unsubscriber',$email_address,"Block");
$result = Sql_query($query);
header("Location: unsubscribe.php?m=1");
die();
}
if($_GET['m']!='' && isset($_GET['m']))
{
print '<h4 class="pagetitle">You have been unsubscribed from our newsletters and you will receive a confirmation message shortly.</h4>';
}
if($_GET['emailid']=='' && !isset($_GET['emailid']))
{
print '<h3>'. $GLOBALS["strUnsubscribeInfo"].'</h3>';
print '<form method="post" action=""><input type="hidden" name="p" value="unsubscribe" />';
print '<p>'.$GLOBALS["strEnterEmail"].': <input type="text" name="email" value="'.$email.'" size="40" /></p>';
print '<input type="submit" name="unsubscribe" value="'.$GLOBALS['strContinue'].'"></form>';
print '<title>'.$GLOBALS["strSubscribeTitle"].'</title>';
print $pagedata["footer"];
}
?>
这是我的取消订阅页面。有一个输入字段电子邮件地址。N 请添加 unsubscribe.php 到 htaccess 文件中..
关于javascript - PHPList 拥有自己的订阅页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30119675/
PHPList 发送带有非常复杂的电子邮件标题的电子邮件。他们插入链接、消息、通知和各种不需要的标题。 有谁知道要编辑的文件名和代码行,以删除除最低限度电子邮件 header 之外的所有内容? 我不在
PHPList(版本 2.10.17)无法向匹配以下格式之一的地址发送消息: my..Name@domain.com myName.@domain.com .myName@domain.com 错误信
我尝试配置 PHPList 3.012。我将使用自己的订阅和取消订阅页面。我在PHPList的新闻组里问的。不幸的是我没有得到任何回应。似乎没有人使用自己的订阅页面。如果登录页面上的输入字段为空,我将
我需要一个 MYSQL 查询来识别 phplist 上仅位于一个列表(列表 ID 126)上的所有订阅者。 涉及两个表。 1.) phplist_user_user2.) phplist_listus
我将 PHPLIST 用于我的时事通讯系统,到目前为止它运行良好。 我还创建了一个工具,可以轻松地为时事通讯输入内容。因此,我使用自己的表单最终创建了一个网页。 此网页是通过 PHPLIST 中的常规
我在真机上托管的测试服务器中安装了 phplist,但无法初始化数据库。我按照以下步骤操作: 复制服务器主目录中的文件夹/列表。 从命令行 MySQL 创建数据库。 修改创建的数据库的访问数据。 访问
我正在尝试将用户添加到 phplist 数据库。添加用户正常,但他们没有被添加到列表中。 $uniqueId = md5(uniqid(mt_rand(0,1000).$email));
我刚刚配置 phplist 并将其上传到我的网页,当我尝试访问它时出现此错误: Database error 1146 while doing query Table 'tramvaji_mail.p
我目前正在将 Sendgrid(后端 API)与 Phplist(前端)集成。但是,我意识到 Phplist 不支持许多功能,例如自动回复、不同的管理级别(子/ super 用户)并且无法发送大量信息
我有一个非常简单的基于php的网站。 我想添加“订阅信息”框,并将其发送到某些列表管理工具。 我发现phplist是相当不错的。但是,我找不到任何允许我使用ajax订阅用户的api。 (我想避免使用p
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个来自 Digital Ocean 的 VPS。我在我的服务器上安装了 Phplist。 Digital Ocean 只提供了一个 IP 地址。我正在尝试通过浏览该 IP 地址直接从 phpLi
我是一名优秀的程序员,十分优秀!