提交邮件黑猩猩订阅 php 后,我有一个空白页

I have a blank page after submitting mailchimp subscribe php

本文关键字:有一个 空白 php 黑猩猩 提交      更新时间:2023-09-26

我使用下面的html代码在我的mailchimp帐户列表中提交用户电子邮件使用mailchimp API。

表单代码:

    .....
    <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 帐户中没有任何错误。

我尝试使用另一个 java 脚本警报(如 alert("Text Here");(更改echo javascript in line 22, 35 and 38,它的工作,除了我得到同样的东西空白页

如何解决此问题并在同一个 html 表单页面中回显 javascript 警报而不重定向到空白页面?

首先,您要设置:

$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/