- ベストアンサー
一度しか表示されないページを作るには?
一回だけしか表示されないページを作成するには、どのような設定を行えばよいでしょうか? サーバーはエックスサーバーを借りています。 どなたかわかりますか??
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
なんだ、男か、モチベーション下がるな。・・とか言いつつもう出来た。意外に簡単だった。phpは色々と便利で楽だね。 使い方: <?php から ?> までをメモ帳なりテキストエディタなりにコピー&ペーストして、拡張子をphpとして保存してください。 この際の注意としては・・・ 一番上の部分にある<?phpは、その直前に余分な改行などいれずファイルの先頭にくるようにしてください。表示するファイルの部分は当然、表示するファイルに書き換えてください。書き換えないままのデフォルトの設定では、保存したphpファイルと同じディレクトリに置かれたallow.htmlがはじめての訪問者に表示され、phpファイルと同じく同じディレクトリのdeny.htmlが二回目以降の訪問者に表示されます。 そして保存できた(なんとか).phpファイルと表示用ファイル(arrow.html&deny.html)をサーバに転送するだけです。 自分でちゃんと動いているか確認(テスト)したいときは、ブラウザの設定画面を開いて自分のホームページのあるサーバのクッキーを削除してください。・・すると初めての訪問とみなされます。 以下phpプログラム(コピぺして編集します) <?php //表示するファイルの設定 ここから▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ //$allow → 1回だけ許可するのファイル //$deny → 2回目以降表示するファイル $allow = "./allow.html"; $deny = "./deny.html"; //表示するファイルの設定 ここまで▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ $buff = ""; $cookie=$_COOKIE["Visiter"]; if(strcmp($cookie,"") == 0){ $cookie = 0; } $value = $cookie + 1; $timeout = time() + 365 * 86400; setcookie("Visiter","$value",$timeout,'/',$_SERVER["SERVER_NAME"] . ";"); if( $cookie ) { $read_file = $deny; }else{ $read_file = $allow; } if (! ($fp = fopen ($read_file , "r" ))) { die("ファイルが開けません。"); } while ($line = fgets($fp)) { $buff .= $line; } fclose($fp); print $buff; ?> //ここまで 以上です。試してみて動かなかったらご報告ください。
その他の回答 (8)
- JavaJavax2
- ベストアンサー率22% (68/305)
あ、多少の仕様変更だったら受け付けるかもしません。 気になるところがあったら言うだけいってみて。
- JavaJavax2
- ベストアンサー率22% (68/305)
私は独学です。 コンピュータ歴が長い(小学生の頃(CPUがMZ80の時代)から)& コンピュータ好きなので幅広く、ある程度の知識は習得しました。 だから普通の人とは少し違うでしょうね。あまり参考にならないかと思います。 じゃあ、あいた時間に作ってみます。一人一回は、全体で一回より 面倒ですね。少し時間がかかるかもしれません。それに、クッキー で恐らくやるので、 1.クッキーの削除されたら初めての訪問という事になりますが、よろしいですか? IPアドレスも一緒に調べても良いけど、変わるし、全く同じアドレスで、他の人が来ないとも限らない。その確率は低いですが・・ 2.ページのアドレスは同じで表示される内容が変わる(一回だけ)という事になりますが、それでよいですか? 3.ページから呼び出される画像等は、(アドレスが分かっている場合、(通常はアドレスを保存しておかない限りわかりませんが))アドレスを直接指定すれば見れることになりますが、それでもよいですか? 現時点で1、2、3の点が少し気になりますね。 あと、作っている間にしつこく聞いておきます。男性ですか?女性ですか?若いですか?多分、同世代くらいだとは思いますが・・
補足
1.2.3の件わかりました。まったく問題ありません。 ちなみに、私、若いつもりの男性です。 よろしくおねがいします。
- JavaJavax2
- ベストアンサー率22% (68/305)
まったくプログラムを組んだ事がないなら 今から参考サイトを読んでも、難しいでしょうね。 特にご紹介されているサイトは技術的な話なので 直接的に今回の問題を解決するものではないです。 だからやりましょうかと提案したのですけどね。 ・・だけど仕様が決定しない事には何も作れない。
補足
すみません・・・ 仕様ですが、一人一回だけ表示というのを考えています。 よろしくお願いします。 話し違いますが、javajavax2さんのように、プログラムを書いたりとか出来るようになるには、大学で勉強しないとだめなんでしょうか?
- JavaJavax2
- ベストアンサー率22% (68/305)
今日登録してるところ。。 あやしい。 IDを変えたのですか? 一応、補足要求: あなたのスキルはどれくらいですか? 女性ですか男性ですか?若い?
補足
javajavaxさん じつはid二つに分けることにしました。 スキルはhtmlでホームページ作りをしてきて、そのつど先輩からの要求をwebで調べて対応している程度のものです。 プログラムというのがさっぱり??です。
- JavaJavax2
- ベストアンサー率22% (68/305)
結局何かしらのプログラミングは必要という事でしょうね。 サーバーにはそういう機能は用意されていませんので。 あるいは出来合いのプログラムを入手するか。
- JavaJavax2
- ベストアンサー率22% (68/305)
なるほどね。ただ、それだと ソースみれば、簡単に何回でもアクセスできちゃうかな それでも要件をみたすならそれでもokかもしれませんね。 ※submitが良く分からなかったな。getかpostするって事? ajaxで書き換えるなんていう手もあるね。
htmlで実現したいのであれば first.html・・・1回だけのHTML、 default.html・・・2回目以降のHTML、javascriptでcookie読み書きし、訪問回数を取得。基本的にユーザにはこのHTMLファイルをアクセスさせる 初訪問ならばfirst.htmlをsubmitしなおしてページを表示 2回目以降ならば、default.htmlをそのまま表示 とかかな? javascriptはbodyのonLoadで実行かな javascriptでcookie読み書きは参考URLを見てみてね
お礼
ご回答ありがとうございます 参考URLなどで調べてみます(なんせ素人名物で・・・)
- JavaJavax2
- ベストアンサー率22% (68/305)
またか。エックスサーバ流行ってるのか? cgiかphpで書くしかないでしょうね。 他には方法は・・どうかな。たぶんないかな 書きましょうか? phpでよければ。 丁度こないだ書いたの変更すれば出来そうだし・・ 細かい仕様は? 全体を通して一回?一人一回? (一人一回ってのは違うコンピュータ使ったりされると 分かりようがないから、まず無理だけども擬似なら可) そういうページを沢山作りたい? まあ、でも、なんか・・めんどくさそうだな。
お礼
ごめんなさい!! 今やったら出来ました!! 本当にありがとうございました!!! 助かりました!!!!
補足
ありがとうございます。 昨日と今日とやってみたんですが、できません <?php //表示するファイルの設定 ここから▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ //$allow → 1回だけ許可するのファイル //$deny → 2回目以降表示するファイル $allow = "./test1.html"; $deny = "./test2.html"; //表示するファイルの設定 ここまで▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲ $buff = ""; $cookie=$_COOKIE["Visiter"]; if(strcmp($cookie,"") == 0){ $cookie = 0; } $value = $cookie + 1; $timeout = time() + 365 * 86400; setcookie("Visiter","$value",$timeout,'/',$_SERVER["SERVER_NAME"] . ";"); if( $cookie ) { $read_file = $deny; }else{ $read_file = $allow; } if (! ($fp = fopen ($read_file , "r" ))) { die("ファイルが開けません。"); } while ($line = fgets($fp)) { $buff .= $line; } fclose($fp); print $buff; ?> というように記述したんですが、間違ってますか? 何度もすみません。