• ベストアンサー

更新頻度のスクリプト

PHP初心者です。 こんなスクリプトがほしいので 参考になるページとかあったら教えて下さい。 submitが押される回数をカウントして 月に20回までしか押せないプログラムです。 また1日1回とかでもいいです。 submitが押される回数は $POST["count"]の値に1を入れて、 $count += $POST["count"]; 数えていくことができましたが、 月に29日の日もあれば、31日の日もある 月に○○回という、細かい部分まで作れませんでした。 どなたかおわかりになるから教えて下さい。 宜しくお願い致します

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ポストでいくら送っても、次回のアクセスの際には データは残っていません。 ポイントはデータの保存でしょうね 一つはクライアント側でクッキーに保存する・・・ しかし別のマシンからやると消えてしまいます。 であれば、サーバー側にセーブデータを作っておく 履歴を20回分とっておけば、20個前のデータが 1ヶ月前かどうかを調べればいいでしょう。

future-boy
質問者

補足

そうなんですね。ありがとうございます。 データベースに回数は保存したいと思います。 あとは月の回数とか、日の回数なんですけど・・・・ やっぱり難しいそうですね・

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • koke29
  • ベストアンサー率58% (114/196)
回答No.2

date("t", mktime()); で毎月の日数を取得してから、その日数をリミットにすればよいのでは? あと、保存させるデータにsubmitされた日付を入力しておいて 再度submitした時にチェックさせるとかすれば1日一回の制限が出来ると思います (今日の日付が既に保存データに入っているならsubmit出来ないように) データの保存形式とか、submitされたデータで何をするのかが良くわからないのであんまり参考にならないかもしれませんが。

future-boy
質問者

お礼

どうもありがとうございます。 $データベースに入力した日付 == date("t", mktime()); こんな感じでできました。 あとは一ヶ月に10回とか20回とかの方法が・・・ どなたかお願い致します。 mktime()で作ってみたんですが、+30とで日付を足すと どんどん日付がおかしくなりました。 けど、これって違う質問になりますので いったんこれで締め切ります。

future-boy
質問者

補足

ご返答ありがとうございます。 言われたことをやってみます。 実は会員制のページを作成しているんですが、 更新を一ヶ月に10回とか1日1回とか制限をしたいんですよ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • こんなスクリプト探してます。

    phpスクリプトで、 htmlのページに <a href="hoge">hoge</a> というリンクがあるとして、このリンクをクリックした回数を調べれるスクリプトを探しています。

    • ベストアンサー
    • PHP
  • PHPスクリプトでperlスクリプト

    はじめまして。PHP初心者です。助け舟をお願いします。 PHPスクリプトで、formの表示からデータの受け取り→ファイルに書込み→終了画面の表示ができるスクリプトを書くことが出来ました。 これをphpスクリプト1とします。 POSTで受け取った変数を元に処理した変数を返すperlスクリプトがあります。 これをperlスクリプト1とします。 perlスクリプト1をphpスクリプトにすることは私には困難なため、phpスクリプト1のファイルに書き込む前に、perlスクリプト1を実行→返った変数をphpスクリプトで使用しファイルに書込み→終了画面の表示を行いたいです。 こんなことってできますか?

    • 締切済み
    • PHP
  • 画面の更新無しでフォームデータを送信する

    送信した値は外部ファイルに書き込むため、ページの更新は避けたいのですが、何か方法はありませんでしょうか? 送信完了のチェックとかも必要ないです。 <form name="my_form" method="post" action="./index.php"> <input type="text" name="count" value="1"><br /> <input type="submit" value="送信" /> </form>

    • 締切済み
    • PHP
  • JavaScript アクセスカウントの取得したい

    サーバー側に保管されているアクセスカウントをJavaScriptで取得したいです。 以下のようなコードを書きましたが、これでは、get_access_count.phpから、得たアクセスカウントの情報を得ることができません。(このPHPではサーバー上のアクセスカウントのデータを取得して、その値をechoします) // インデントは全角スペースです function getAccessCount(){   var sentdata = {        };   $.ajax({     type: 'post',     url: 'php/get_access_count.php',     cache: false,     data: sentdata,     success: function(count) {       // このcount の 値を getAccessCount()の戻り値にしたい     },     error: function() {      alert("エラー");     }   }); } (アクセスカウントはページを読み込んだあとに定期的に呼び出すため、Ajaxを使うのが、いいのかなと思いました。) 同期通信に変えたら、取得できますか?解決方法を教えて下さい。 よろしくお願いします。

  • php入力画面から確認画面へ情報の受け渡しについて

    php 参考書を見て、入力フォームを作成しているのですが、入力画面から確認表示画面へ情報の受け渡しについて。コードは下に記載してます。 最初の入力画面ではmethod=postで送信した値を$name = $_POST['name'];に格納して次ページに値を渡すそうですが、 しかし最初の入力画面のコードに$name = $_POST['name'];と、もうひとつ、$name = $_SESSION['name'];でセッションに保存して、次ページに送るそうですが、 保存したSESSIONの値は次ページの確認表示画面から戻る際に値を保持する際に使うからだそうですが、値を次ページに送る役割が$_POSTやSESSIONにあるならば、SESSIONの記述のみで 次ページに送れると思うのですが、なぜこのコードの場合、$_POSTに値を格納する必要があるのでしょうか? 以下のような解釈で正しいでしょうか?? 「$_POSTは送られた値をフォームのvalue内にechoで出力するため、SESSIONはページから戻る場合に値を保持するため」 回答よろしくお願いいたします。 コード 入力初期画面 <?php session_start(); $errors = array(); if(isset($_POST['submit'])){ $name = $_POST['name']; if($name === ""){ $errors['name'] = "お名前が入力されていません。"; } if(count($errors) ===0){ $_SESSION['name'] = $name; header('Location:https:次ページへform2.php'); exit(); } } ?> <body> <form action="form1.php" method="post"> お名前 <input type="text" name="name" value="<?php if(isset($name)){echo $name;}?>"> <input type="submit" name="submit" value="確認画面へ"> </body> コード 確認表示画面 <?php session_start(); if(isset($_SESSION['name'])){ $name = $_SESSION['name']; } <body> <form action="form3.php" method="post"> お名前 <?php echo $name;?> <input type="submit" name="submit" value="送信する"> p><a href="form1.php?action=edit">入力画面へ戻る</a></p> </body>

    • ベストアンサー
    • PHP
  • フォーム送信後の更新ボタンでも$_POST変数が初期化されない

    フォームのサブミット後にプログラムが走るようになっているtest.phpがあるのですが、フォーム送信後に更新ボタンを押しても再度ポストされるようになってしまっています。 ブラウザの更新ボタンを押したときには、ポストせずにフォームをクリアしたいのですが、どうすればできますでしょうか? <form method="post" action="<?php print($_SERVER['PHP_SELF']); ?>"> <input type=text name=aaa> <input type="submit" name="submit" value="submit"> </form> <?php if($_POST['submit']) { 処理 } ?>

    • ベストアンサー
    • PHP
  • Xampp環境でのsession_start()がうまく行きません。

    OS:WindowsXP HomeEdition Xampp:Version2.3 この環境でテストを行っております。 以下のサンプルページにて、session_strat()のテストを行ったのですが、表示は、するのですが、リロードしても、カウントが増えません。 どなたか原因ご存知の方、いらしましたら宜しくお願いします。 http://www.scollabo.com/banban/php/ref/ref_session_start.html?PHPSESSID=0a2d8c8950664d0de51e27ae544d0cec 念の為、以下にソースも書いておきます。 -------------------------------------------------- <?php session_start(); if(isset($_session["count"])) { $_session["count"]++; } else { $_session["count"] = 1; } ?> <body> <p> こスページの訪問回数は <?php print $_session["count"]; ?> 回目です! </p> </body> -------------------------------------------------- ※13行目の"print"だけ、間違っていたので修正しています。 ※リロードすれば、以下のように出力させたいのですが、"1回目"のままです。 このページの訪問回数は 1回目です! このページの訪問回数は 2回目です! このページの訪問回数は 3回目です! このページの訪問回数は 4回目です! : このページの訪問回数は n回目です! 宜しくお願いします。

    • 締切済み
    • PHP
  • 送信データの受け取りについて

    ご教授願います。 ページ1からMETHOD="get"で値をSubmitして ページ2で受信したいのですが、 ページのURLバーのアドレスの最後に「?ACT=3」と 記載されているにもかかわらず、 ページ2内での$_get['ACT']で 値を拾えませんし、$ACTも確認できません。 どの様な原因が考えられるのでしょうか。 <環境> IE 7.0.5730.13 PHP 5.2.6 <プログラム> *ページ1 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script type="text/javascript"><!-- function Cli_Submit(){ ListForm.action = "Test_submit2.php"; ListForm.submit(); } // --></script> </head> <BODY> <FORM NAME="ListForm" METHOD="get"> <TD><INPUT TYPE="text" NAME="ACT"></TD> <TD><INPUT TYPE="button" VALUE="Submit" onClick="Cli_Submit()"> </FORM></BODY></HTML> *ページ2 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=Shift_JIS"> <script type="text/javascript"><!-- // --></script> </head> <BODY> <FORM NAME="ListForm" METHOD="post"> <TD><INPUT TYPE="text" NAME="ACT" VALUE="<?php print $_get['ACT'] ?>"></TD> <TD><INPUT TYPE="button" VALUE="Submit" onClick="Cli_Submit()"> </FORM></BODY></HTML>

    • 締切済み
    • PHP
  • ボタンのクリック数を合計保存するPHPプログラム

    サイト訪問者が任意でボタンをクリックしてくれた数をカウントし、合計にするPHPをどなたか教えていただけないでしょうか。 (PHPをはじめたばかりです、よろしくお願いいたします。) index.phpのボタンをクリックすると、クリック回数をnumber.phpに上書き保存し、更にクリックされたら新しくクリックされた回数+number.phpの数の合計を上書きする、というスクリプトを書こうとしています。 index.php ここから---------------------------------------- <html> <body> <form action="index.php" method="get"> <input type="submit" value="クリック"> 合計<input type="text" name="munber" value="<?php $file = "munber.php"; @readfile($file);?> "> </form> </body> </html> index.php ここまで---------------------------------------- number.phpは単に数が一行あるだけです。(例として 5 ) 上記のindex.phpでは、ただボタンがあり、ただnumber.phpの数(5)を表示しているだけで、足し算は行われません。(画像参照) これをどのように書き換えると、ボタンをクリックしたらnumber.php + 1 を行い、number.phpの値も書き換える、というプログラムになるでしょうか。 ※アクセス解析ではないので、IPやリファラなどは関係なく、(誰が何回でも)ボタンをクリックした回数を単純にカウントする数式が欲しいです。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 以下のスクリプトの「?」とか「: null」とか

    ↓このページのベストアンサーのスクリプトについて質問です。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1042945020 スクリプトの中の↓の行の中に「?」とか「: null」とか出てくるんですが、これってどういう構文なんですか? $post->$value = isset($_POST[$value]) ? $_POST[$value] : null; 参考ページでも構いませんので教えていただければと思います。

    • ベストアンサー
    • PHP