Google モバイルAdSenseのPerlのコードがuse strictで動かないときの対処方法
スポンサーリンク
PerlのCGIにも試しに、モバイル用AdSenseを貼ってみました。
AdSenseからとりあえずコピペして動かしてみると、ブラウザの画面が真っ白に。
「なんでやろ」と思ってapacheのエラーログ(/var/log/httpd-error.log)を除いてみると
Google AdSenseの申し込み
AdSenseからとりあえずコピペして動かしてみると、ブラウザの画面が真っ白に。
「なんでやろ」と思ってapacheのエラーログ(/var/log/httpd-error.log)を除いてみると
Global symbol "@color_array" requires explicit package name at hoge.cgi line 18.,
たくさん、Global symbolだ、とPerlの怒りの叫びがありました。
コードを見直してみると、myで宣言されていない変数がたくさんあるのに、use
strict してるソースに貼り付けてしまったので、エラーが出ました。
というわけで、こんなカンジで直すと動きます。
channelやclientは各自の値にしてください。
ソース
#!/usr/bin/env perl
use strict;
use LWP::UserAgent;
use Time::HiRes qw(gettimeofday);
use URI::Escape;
sub google_append_color {
my @color_array = split(/,/, $_[0]);
return $color_array[$_[1] % @color_array];
}
my $google_dt = sprintf("%.0f", 1000 * gettimeofday());
my $google_scheme = ($ENV{"HTTPS"} eq "on") ? "https://" : "http://";
my $google_host = uri_escape($google_scheme . $ENV{"HTTP_HOST"});
my $google_ad_url = "http://pagead2.googlesyndication.com/pagead/ads?" .
"ad_type=text" .
"&channel=あなたのチャンネル" .
"&client=ca-mb-pub-あなたのコード" .
"&color_border=" . google_append_color("555555", $google_dt) .
"&color_bg=" . google_append_color("EEEEEE", $google_dt) .
"&color_link=" . google_append_color("0000CC", $google_dt) .
"&color_text=" . google_append_color("000000", $google_dt) .
"&color_url=" . google_append_color("0000CC", $google_dt) .
"&dt=" . $google_dt .
"&format=mobile_single" .
"&host=" . $google_host .
"&ip=" . uri_escape($ENV{"REMOTE_ADDR"}) .
"&markup=xhtml" .
"&oe=sjis" .
"&output=xhtml" .
"&ref=" . uri_escape($ENV{"HTTP_REFERER"}) .
"&url=" . $google_host . uri_escape($ENV{"REQUEST_URI"}) .
"&useragent=" . uri_escape($ENV{"HTTP_USER_AGENT"});
my $ua = LWP::UserAgent->new;
my $google_ad_output = $ua->get($google_ad_url);
my $google_ad = '';
if ($google_ad_output->is_success) {
print $google_ad_output->content;
}
Google AdSenseの申し込み
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12