bass-inu's blog

非IT企業Web担当者の孤独な雑記

PHP条件分岐を使ってHTMLを出し分けする

PHP初心者のメモ。
PHPでサイト作ってて、ここちょっと条件分岐できないかなぁ?って時にはこうする!

ユーザーエージェントを取得して、端末によってHTMLを変更する

例えば、スマートフォンでアクセスした時とそれ以外でリンク先を変える

<?php 
function ua_smt () { //適当に関数を作る
$ua = $_SERVER['HTTP_USER_AGENT']; //ユーザーエージェント取得
if (preg_match('/iPhone|iPad|iPod|Android|Windows Phone|BlackBerry/', $ua)) {
//ユーザーエージェントに含まれる文字列をここで指定
 $smt = true; //上記文字列が含まれていればTRUE
 } else {
 $smt = false; //なければFALSE
 }
return $smt;
}
?>

<a href="<?php if (ua_smt() == true): ?>
スマホの場合のURL
<?php else: ?>
それ以外の場合のURL
<?php endif; ?>
">
↑実際使う時は改行しないほうがいいかな?

ファイル名を取得して、とあるファイルの時だけHTMLを変更する

例えばトップページの時だけメニューリストのリンク先を変えたいとき

<?php
$toppage = 'index.php'; //トップページのファイル名
$self_name = basename($_SERVER['PHP_SELF']); //ファイル名を取得
if ($toppage == $self_name) {
 echo '<li><a href="ページ1">トップページのときはこのページへ飛ぶ</a></li>';
 } else {
 echo '<li><a href="ページ2">トップページ以外のときはこのページへ飛ぶ</a></li>';
 }
?>

画像を無断転載、無断使用されたこととその対策。

そのことが発覚したのが2013年12月。ある程度収束に向かったので記事アップ。

とあるまとめブログの記事を見ていると、どっかで見たことある画像が。


あれ…これ私の画像じゃねーか?!

その画像は会社で使っていたオリジナルのイラスト。私ではなく絵描きさんが描いたものなんですが。
そのイラストを使い、サイトやポスター、CDとかを制作していたんです。

そのイラストが、全く関係ないところで勝手に使用されていることが判明したのです。


急いでGoogle画像検索で調べると、他にも出てくるわ…
最終的にはスマホアプリにまで無断使用されている。

もうね、ポカーン( ゚д゚)

( ゚д゚#)なんやとー!

激ッッ!!!昂ッッ!!!

削除要請祭りじゃー

  • 最初に発見したまとめブログさん

連絡すると迅速に対応してくださいました。
好感度アップ!
でも使っていい画像なのかもロクに確認せず載せるって…結構有名なサイトなのに。
好感度ダウン。

  • 2ch系のアンテナサイトとかコピーサイトとかいうたぐいのやつ。

・メールを送ると何も返信がなく画像削除だけされていた。
・メールの返信がない。
ま、そういう感じですね。。
レンタルブログでやっているサイトならブログ会社に直接言うほうが早いかな。できれば当事者で解決したいところですが。

  • 一般ブログ

管理人にメッセージを送る。
管理人の連絡先がないパターンはレンタルブログ会社に直接言うしかない…。
無断転載・ブログが盗作された時の対処法・通報窓口一覧 - NAVER まとめ
画像だけ消してくれたらいいんだけど、そんなはずはなく記事ごと削除されます。まぁ仕方ない…。


該当ページの下部に通報フォームがあったのでそこから連絡。返信が来て対応してくれた。
でも不完全…再度メールを送る羽目に。
そしてようやく削除完了。
返信はそれなりに早かったので良かった。

通報フォームはあったが、返信はしない姿勢の模様。
天下のヤフーでござるぞ。おぬしの要望は聞かぬが、あるなら言ってみろ。
という感じでしたので、言ってみたんですが、まだ対応してくれてないです。
そして2014年になってしまいました。
ヤフーさんなにもしてくれないです。


  • fc2まとめ

通報報告するところが無い。何これ?
著作権ガイドライン」ってページに連絡先書いてあったけど、なんでベガスなの?
日本語でおkなの?
とりあえずメール送った。
すると「メールありがとう。受理したよ。あなたが書いた内容は、(以下空白)」という英文メールが返って来た…。これダメなパターンやん!

と思ったら、問い合わせフォームを発見!わかりづらいよー。
FC2まとめ お問い合わせフォーム
次の日には返信が来て、FC2から記事作成者へ警告をしてくれました。
記事作成者はすぐに対応してくれたようです。知らずに使っていたんでしょうね…。

後日ラスベガス(?)からもメールがあり、
「やっといたからチェックしてね!」と。
記事ごとなくなってました…(゚□゚;)

全体的にFC2は対応良かった。


作者の連絡先がなかったので、Appleに直接言うしかない。
専用ページがあった。
Apple - Legal - iTunes App Store Content Dispute
あれ?異議申し立てしたけど、App Store Legal Teamから来るはずのメールが来ないよ?
え、詰んだ…?\(^o^)/

諦めた頃にメールが来た。作者に連絡したよーって。
で、そのあと作者らしき人が、
無意識に権利侵害しちゃって大変ショックだ。出来るだけ早く対処する必要があるよね、するよ。あぁ大変ショックだ。ごめん。」みたいなメールが来た。
英文だからかなり適当な読みですが。ちなみに作者は日本人。

その後アプリは削除されていました。
全てのコンテンツが拾い物で構成されたアプリだったのでヤバッとなったのでしょう。


作者にメール。直ぐに画像を削除してアップデートするとの返信が。
著作権の確認していなかったんだーあなた株式会社なのにーやだー。
そんなダウンロードされてないっぽいけど使用料請求してイイー?
はぁ( ´Д`)=3
こちらも企業の人として強く訴えたからきっとアップデートしてくれるでしょう。
個人だったらどうだったんだろうね…。

ちなみにまだアップデートされていません。
年越してから見たらアプリごと消えていました。
ま、全てのコンテンツが拾い物(略)

どうしてこうなった

おそらくGoogleなどの画像検索が原因。
弊社のサイトにアクセスし、そこに載っている画像を保存して転載なんてさすがにしないだろうと思われる。
検索で見つけたそれを誰かが素材のごとく勝手に使用し、さらにまとめブログも何も考えずに使用。これが痛かった。そこに群がるアンテナサイトとかいうやつが画像を拡散させてしまうのだ。

今後の対策をする

Googleウェブマスターツールにて

該当画像の「URLの削除」を申請する。これで画像検索に載らなくなった。

bingウェブマスターツールにて

「URLブロック」というのを設定するとオッケー。
ただブロックできる期間が90日だけという謎仕様。
延長は出来るみたいだけど…うーん、謎?

ブロックしたいイメージフォルダに.htaccess

検索エンジン経由でのアクセスを禁止する。
つまり自分のサイト経由でないアクセスは拒否する。
リファラーが無い場合も拒否!( ・`д・´)
最近はあまり聞かなくなった「直リン防止」にも役立ちます。

SetEnvIf Referer "^http://www\.自分のサイト\.com" ref_ok
# リファラー無しでも許可するときは下の行のコメントアウトをはずす
#SetEnvIf Referer "^$" ref_ok
order deny,allow
deny from all
allow from env=ref_ok
サイトルートのrobots.txt

Google画像検索ロボットを弾く

User-agent: Googlebot-Image
Disallow: /ディレクトリ名(スラッシュだけだと全てに適応)/

msn(bing)画像検索ロボットも弾く

User-agent: msnbot-media
Disallow: /ディレクトリ名/

設定次第ではjpgだけ拒否、とかすることもできます。
ご興味があれば調べてね!私は全て拒否ですわよ( ・`д・´)

これでなんとか被害を最小限にできるのかも…?

なんだか疲れました

インターネットと無断転載…切っても切れない問題ではあります。
でもさぁ、もう少しライセンスを確認するとか、出処はどこなのかとか、調べ…ろよ…!!
画像検索で見つけてそのまま何も考えずに使う人が多すぎる。

あと出典示せばいいってもんではないので。
「出典」としてこちらにリンクはって画像載せてるところもあったけど、それしたら何でもOKって思ってるわけ?
元サイトと全く無関係な内容のサイトに出典としてドヤァと載せる根性がわかりません。
「画像パクリ元」とでも書いておいてくださいv(*'-^*)-☆

いや、書いてもダメだからな!

勝手に使ってさぁ、小遣い稼いでるんだよね。ほぼ全てそのパターンでした。
今回は私が直接被害を被ったわけじゃないけど、作品が無関係の他人の小遣い稼ぎに利用された絵描きさんのことを思うと悲しいです。
その方にはもちろん言わず私1人で対応しました。

こういう無断転載事件っていっぱいありますね。
転載した側が逆ギレするパターンもあるようで。
悩んでる方もたくさんいらっしゃるでしょう。辛いね…。

気づいてほしい

他人のイラスト、写真というものは
大部分が勝手に使ってはいけないものだ、という認識でいてほしい。

ぜひ使いたいと思うならば、作者に連絡して許可を得る。


素材として有料・無料でイラストや写真を公開しているサイトもたくさんあります。
ありがたいことです。しかしそこのものであってもライセンスの確認は必須です。
無条件に好き勝手使っていいものではありません。


そういう認識が当たり前になってほしい。

著作権侵害は犯罪です。親告罪だから、たまたま助かっているだけです。

より多くの人に気づいてもらいたいものです。

最後に

Yahoo!の対応はほんまに最悪です…
大手企業とは思えない…

LinkStationがおかしくなった時のメモ

BUFFALOのLinkStation LS-WXL/R1を使っている。

ある日突然ディスクエラー通知が。
本体を見ると赤いランプが点滅してるし、アクセスできないし。
こりゃダメだと思って電源OFFにしても、全然シャットダウンしてくれない!


最終手段の電源ケーブル引っこ抜き。。

再度ONにしても起動せず、今度は青ランプがずーっと点滅状態。


あーこんな年末に故障とか…ねぇ。
RAID1なのでデータの心配はしてないけど、初めての事態でよくわからんぞ(^□^;)

とりあえずHDD外して…USBでつないで…
しかしWindowsだと認識してくれない!ソフトウェアを使うか、Linuxだと読み取れるみたい。
ということで、今回は「KNOPPIX(クノーピクス)」というCDだけで起動するLinuxを使う。

ダウンロードや使い方はGoogleで!


USBでHDDをつなぎ、こちらを参考にすすめました。ありがとうございます♪
(Linux)故障したバッファローのLinkStation(RAID1)のデータ復旧 : 3流プログラマのメモ書き

まずターミナル(スーパーユーザーモード)で

# parted -s /dev/sdb print

するとずらっと何か出る!
おー!ちゃんと認識されているようだ!


適当にディレクトリを作って、
上記記事と同じで6番目のパーティションをマウントする

# mkdir /mnt/hdd
# mount -t xfs /dev/sdb6 /mnt/hdd/

できたー!
データはちゃんと残ってました。

じゃアンマウント

#umount /mnt/hdd

そしてもうひとつのHDDもやってみると…
おー?大丈夫じゃん!これってHDDは両方無事ってことだよね…?


ってことはダメだったのはLinkStation本体?!

とりあえず本体のホコリを掃除してみる…。
そしてHDDを元に戻す…。

あ、起動したっぽい。
なんだ…直った…。

と思ったら、まだおかしい。アクセスできない…。
なんと「EMモード」がどうとかでエラーとおっしゃっている!何それ!?

公式サイトに復旧方法がありました。
TeraStation・LinkStationをパソコンに直接接続してEMモードから復旧させる方法 | BUFFALO バッファロー

この通りにIPを変更しファームウェアを更新。


な、直ったぁぁー!ヽ(=´▽`=)ノ


結局ホコリが原因なのかなぁ。だいぶ遠回りした感じだけど無事直ってよかった!

FacebookのOGP画像の推奨サイズ

OGPって単語はなんとなく耳には入っていました。Facebook用の何かだよね。
Facebookやってる人多いからなんかそーゆー設定したほうがいいのかなぁとは思いつつ、結局どーでもいーーーとスルーしてたんですが。

ただサムネイル画像に関しては、設定していなかったらランダムに選ばれてしまうので、せっかく自分のサイトが「いいね!」されたのに変な画像がピックアップされてタイムライン(フィード?)に流れてしまう可能性が!
それはなんだかもったいない!
なので、きっちり設定しておこうと相成りました。


OGP画像について調べてみると、仕様がコロコロ変わっている模様。
今年の春には「1500×1500以上の正方形で!」と書いてるサイトがあったけど、
公式のドキュメントを見たら今は「1.91:1の横長」ですね。1200×630以上がいいね!だそうです。

やはりこういうのは随時公式を見ないとダメですね…。
ココに書いてました。「og:image」ってところに書かれています。
https://developers.facebook.com/docs/opengraph/creating-object-types/


で、head内にタグを記述して完了。

<meta property="og:image" content="http://画像のURL">

ちゃんと設定されているかはこちらでチェック。
公式のデバッカー
https://developers.facebook.com/tools/debug/

これでいい感じに画像が反映されます。
う~ん、とてもいいですね…もっと早くやっときゃ良かった。

コメントスパム対策!日本語を使用していない投稿を拒否

オープンソースCMSである「baserCMS」でサイト構築したんですが、
設置したブログからさっそくコメントスパムが…

最近のスパムってやつは、意味のない英語文字列だけ打ってきたりするんですよね。
何の意味があるのか…。
それだけなら半角英数のみの投稿を弾けばいいんだけども、巧妙に全角スペース1文字入れてきたりする。
キィーッ(#・∀・)


ということで、正規表現を用いて
全角文字(日本語)を連続2文字以上入れないと投稿できない!
としてみます。
国内向けサイトなので、普通にコメントすれば自然と2文字以上は入力するでしょう。
当然ですが日本語のスパムは防げません…。


今回はbaserCMSの例でやりますが、あらゆるフォームで応用出来ると思います。
やり方はわからないけど(笑)

下記ファイルを編集

/baser/plugins/blog/models/blog_comment.php

'message' => array(
array(	'rule'	=> array('notEmpty'),
'message'	=> "コメントを入力してください。")
)

この部分を、

'message' => array(
array(	'rule'	=> array('custom','/[ぁ-んァ-ヶー一-龠、。!?]{2,}/u'),
'message'	=> "コメントを入力してください。")
)

と変更します。

説明

ぁ-んァ-ヶー一-龠、。!?

この部分が許可する文字の範囲。
ひらがな、カタカナ、漢字、句読点、ー!?


数字も許可範囲に入れたいって場合は、0-90-9を追記する。

二字熟語が入っていれば許すって場合は、一-龠のみにする。ひらがな、カタカナのみの投稿はお断り。大人向け(?)

{2,}

上記範囲内の文字を2回以上繰り返せばOKという意味。
50文字未満のコメントなどコメントではないという場合は、{50,}とすれば完璧です。ハードルの高いサイト向け。

動作確認

こちらを使わせていただきました。
preg_match()正規表現チェッカー
正規表現の欄に「/[ぁ-んァ-ヶー一-龠、。!?]{2,}/u」と入れて色々な文字列でチェック!

baserCMSについて

シンプルで使いやすいCMSです。
ファイル構成がわかりやすく、私のようにあまりプログラムがわからない人にも優しめ(^O^)

baser CMS - 国産オープンソース!フリー(無料)で『コーポレートサイトにちょうどいいCMS』