-2

http://apidocs.mailchimp.com/api/downloads/から入手した 「MCAPI Simple Subscribe Example code」と呼ばれるコード (jQuery を使用したコード) を使用しています。

PHP のバージョンが 5.3.5 のローカルでは、問題なく動作します。しかし、PHP バージョンが 5.2.17 である本番環境にデプロイすると、次のエラーが発生します。

解析エラー: 構文エラー、1 行目の /home/myperf7/public_html/inc/store-address.php の予期しない T_FUNCTION

http://myperfectbicycle.com/で実際の動作を確認してください。おわかりのように、このエラーは美的だけではありません。フォームが電子メール アドレスを正常に収集できなくなります。

何がそれを引き起こしているのでしょうか?必要に応じて、さらに phpinfo() の詳細を提供できますが、皆さんに迷惑メールを送りたくありません。store-address.php の内容は次のとおりです。

    <?php

    function storeAddress(){

        // Validation
        if(!$_GET['email']){ return "No email address provided"; } 

        if(!preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$/i", $_GET['email'])) {
            return "Email address is invalid"; 
        }

        require_once('MCAPI.class.php');
        // grab an API Key from http://admin.mailchimp.com/account/api/
        $api = new MCAPI('XXXXXXX');

        // grab your List's Unique Id by going to http://admin.mailchimp.com/lists/
        // Click the "settings" link for the list - the Unique Id is at the bottom of that page. 
        $list_id = "XXXXXXX";

        if($api->listSubscribe($list_id, $_GET['email'], '') === true) {
            // It worked!   
            return 'Success! Check your email to confirm sign up.';
        }else{
            // An error ocurred, return error message   
            return 'Error: ' . $api->errorMessage;
        }

    }

    // If being called via ajax, autorun the function
    if(isset($_GET['ajax'])){ echo storeAddress(); }

    ?>

このコードのどの部分が PHP バージョン 5.2 で正しく動作しないでしょうか? うーん...

コメントで、誰かが store-address.php ファイルがどのように含まれているかを尋ねました。これが私の index.php ページからのものです。

    <form id="signup" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
        <input type="text" value="" name="email" class="email" id="email" placeholder="email address" required="required" />
        <div class="clear">
            <input type="submit" value="Notify me" name="subscribe" class="button"/>
        </div>
        <span id="response"><?php require_once('inc/store-address.php'); if(isset($_GET['submit'])){ echo storeAddress(); } ?></span>
    </form>
4

1 に答える 1

0

エラーが1行目にあり、サイトを見ると次のように表示されます。

解析エラー: 構文エラー、1 行目の /home/myperf7/public_html/inc/store-address.php の予期しない T_STRING

store-address.php を開いて、ファイルの最初の行でランダムな文字列、スペース、改行などを探すことをお勧めします。また、storeAddress()複数の行に応答ブロックを配置することをお勧めします。

<span id="response"><?php 
require_once('inc/store-address.php'); 
if(isset($_GET['submit'])){ 
    echo storeAddress(); 
} 

?></span>

require_once()確かに別の行にある必要があります。

于 2011-08-23T01:45:54.653 に答える