1

私はこのコードを持っています:

<?php  
    define('ga_email', 'xxxxxxxxx@xxxxx.com');    // GA Email
    define('ga_password', 'xxxxxxxxxxx');         // 2-part authorization password
    define('profile_id', 'xxxxxxxxx');            // Analytics profile ID
    $gapi_url = 'gapi/gapi.class.php';
    require_once $gapi_url;
    $ga = new gapi(ga_email,ga_password);

    // here goes next code

?>

大丈夫です。ガピが読み込まれます。

ただし、ga_password を xxxxxxxxxxx から yyyyyyyyyyy に変更すると (GA にログインするための情報が正しくないため)、gapi がロードされていないなどの厄介なエラーが表示されます。

実装する if 条件が必要なので、オブジェクト $ga が作成されたかどうかをチェックし、その場合にのみコードを実行します。

例えば:

 <?php  
        define('ga_email', 'xxxxxxxxx@xxxxx.com');    // GA Email
        define('ga_password', 'yyyyyyyyyyyyyy');      // 2-part authorization password
        define('profile_id', 'xxxxxxxxx');            // Analytics profile ID
        $gapi_url = 'gapi/gapi.class.php';
        require_once $gapi_url;
        $ga = new gapi(ga_email,ga_password);

        if($ga  loaded) {
           // SUCCESS
           // here goes next code
        } else {
           // FAILURE
           echo "Your connection details are wrong.";
        }

 ?>

そのため、見栄えの悪い PHP エラーの代わりに、「接続の詳細が間違っています。」というより適切なメッセージが表示されます。

4

2 に答える 2

2

クラスのソースを見ると、エラーの詳細が間違っている場合、コンストラクターは例外をスローせず、資格情報が使用されている場合にのみスローされるようです。オブジェクトへのすべての呼び出しをtry...catchブロックでラップすると、いくつかのエラー処理機能が提供されます。

try {
    $ga = new gapi(ga_email,ga_password);
    // here goes next code
} catch (Exception $ex) {
    // FAILURE
    echo "Your connection details are wrong.";
    // $ex->getMessage() has a detailed message
}

また、次のように見えるコンストラクター メソッドの正しいシグネチャを知っていることを確認する必要があります。

public function __construct($auth_method)
于 2013-03-18T19:23:48.667 に答える
0

あなた__construct()のgapiで、ユーザー名とパスワードが有効かどうかを確認してください。また、有効なログインであるかどうかを返す別のパブリック関数または変数を作成します。

于 2013-03-18T19:24:16.687 に答える