- 締切済み
広告をクリックしないと指定されたことが行えないスクリプト
phpやperlで「広告をクリックしないと」ダウンロードできないしくみが作れるスクリプトをさがしています。探していて「ユーザー自体がへる」という意見などはありましたが、このしくみに関係のあるてがかりをつかむことができませんでした。携帯電話向けのサイトで使いたいと思っています。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- shimix
- ベストアンサー率54% (865/1590)
>スクリプトも記述してあったんですが、500エラーで動きませんでした。 500エラーは何らかの転記ミスかもしれませんね。ただ「やり方」はわかると思いますので、phpで書き直せばいいのではないでしょうか? 以下、あくまでも書き直しの一例として((整形のため日本語(いわゆる全角)の空白が混じっているので注意) ---------------------------------------------------------------------- <?php $cgi = "ad.cgi"; #CGI $datafile = "ac.dat"; #データファイル $url = "http://www.yahoo.co.jp/"; #広告のサイト $dwlfile = "xxx.html"; #ダウンロード用に表示させるページ $errmsg = ''; if ($_GET[mode] == 'ad') { $fp = fopen($datafile, 'a'); fwrite($fp, $_SERVER['REMOTE_ADDR'] . "\t" . date('Y/m/d H:i:s') . PHP_EOL); fclose($fp); header('Location: ' . $url); exit; } if ($_GET[mode] == 'download') { $click = false; $arr = file($datafile); $fp = fopen($datafile, 'w'); foreach($arr as $line) { list($ip, $atime) = explode("\t", trim($line)); if (strtotime($atime) < time() - 60*60) { continue; } if ($ip == $_SERVER['REMOTE_ADDR']) { $click = true; } fwrite($fp, $ip . "\t" . $atime . PHP_EOL); } fclose($fp); if ($click) { if (@readfile($dwlfile)) { exit; } $errmsg = "ダウンロードページが開けません"; } else { $errmsg = "先に広告をクリックしてください"; } } ?> <?= $errmsg; ?> <a href="?mode=ad">広告</a> <p> <a href="?mode=download">ダウンロード</a> ----------------------------------------------------------------------
- yambejp
- ベストアンサー率51% (3827/7415)
どういう構成にしたいのかいまいちわかりづらい・・・。 広告をクリックしてしまったら、広告のページにとぶので ダウンロードは当然できないとおもいますが?
補足
説明がはっきりしておらず、申し訳ありません。 Aのリンク先にアクセスしないとBのリンク先にアクセス出来ない機能です。(Aから一度戻ってBにアクセスする) 過去の質問を探していた処、このようなものが見つかりました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2134159 スクリプトも記述してあったんですが、500エラーで動きませんでした。
補足
遅れて申し訳ありません。ていねいにスクリプトを作ってくれてありがとうございます。 しかし、自分のau端末で試していて気付いたのですが、auはipアドレスが毎回変動しうまく認証できず、かといってdocomoではクッキーがつかえないのでip、クッキーは認証に使えないみたいです。 auではサブスクライバID、ドコモでは最近始まったiモードIDというものを使って認証することはできないでしょうか? iモードIDについて http://neta.ywcafe.net/000835.html