提交 mailchimp subscribe php 后我有一个空白页
Posted
技术标签:
【中文标题】提交 mailchimp subscribe php 后我有一个空白页【英文标题】:I have a blank page after submitting mailchimp subscribe php 【发布时间】:2016-05-28 08:52:03 【问题描述】:我使用以下 html 代码使用 mailchimp API 在我的 mailchimp 帐户列表中提交用户电子邮件。
表格代码:
.....
<form id="signup-form" action="php/newsletter-subscribe.php" method="post">
<input type="email" name="email" id="email" placeholder="Email Address" />
<br>
<input type="submit" value="Go!" onclick="wating()" />
</form>
......
时事通讯订阅 PHP 代码:
require_once 'mailchimp/MailChimp.php';
use \DrewM\MailChimp\MailChimp;
// Email address verification
function isEmail($email)
return filter_var($email, FILTER_VALIDATE_EMAIL);
if($_POST)
$mailchimp_api_key = 'xxxxxxxxxxxxxxxxxxxxx-xx'; // enter your MailChimp API Key
$mailchimp_list_id = 'xxxxxxxxxx'; // enter your MailChimp List ID
$subscriber_email = addslashes( trim( $_POST['email'] ) );
if( !isEmail($subscriber_email) )
echo '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>';
else
$array = array();
$MailChimp = new MailChimp($mailchimp_api_key);
$result = $MailChimp->post("lists/$mailchimp_list_id/members", [
'email_address' => $subscriber_email,
'status' => 'subscribed',
]);
if($result == false)
$array = '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>';
else
$array = '<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>';
echo json_encode($array);
问题是在我提交表单后,我得到 空白页 没有任何错误日志,并且电子邮件添加到我的 mailchimp 帐户没有任何错误。
我尝试将 echo javascript in line 22, 35 and 38
更改为另一个 java 脚本警报,例如 alert("Text Here");
,它可以工作,除了我得到相同的东西 空白页
如何解决这个问题并在同一个 html 表单页面中回显 javascript 警报而不重定向到空白页面?
【问题讨论】:
如何检查页面是否为空白?你看过实际来源吗? @PeeHaa 在我提交表单后,它会将我重定向到带有空白页的 newsletter-subscribe.php,它应该在第 22、35 和 38 行回显 javascript 警报,而不会将我带到 newsletter-subscribe.php (空白页) 这个脚本只生成小的 javascript 代码。没有更多了。在浏览器中,您将看到空白页 - 这是正确的。 @newman 那么如何在同一个 html 表单页面中使用 php 运行 javascript 警报?这就是我现在需要做的。 你没有回答我的问题。 【参考方案1】:首先你要设置:
$array = array();
但后来,你这样做了:
if($result == false)
$array = '<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>';
else
$array = '<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>';
echo json_encode($array);
换句话说,您正在将数组更改为字符串。 尝试将代码更改为:
if($result == false)
$array = array('<script type="text/javascript">swal("Error!", "Please try again.", "error")</script>');
else
$array = array('<script type="text/javascript">swal("Great!", "Your email has been subscribed", "success")</script>');
echo json_encode($array);
另外,我会避免在那里使用<script type="text/javascript">
,我只会返回一个正确的 json 响应。然后,您使用 ajax (jquery) 调用此文件,解码 json 并显示警报。
也许这样的事情会给你一个想法: http://labs.jonsuh.com/jquery-ajax-php-json/
【讨论】:
以上是关于提交 mailchimp subscribe php 后我有一个空白页的主要内容,如果未能解决你的问题,请参考以下文章
TypeError: email.indexOf 不是 React 中使用 react-mailchimp-subscribe 的函数