携帯のホームページ制作における時間制限の解決方法

このQ&Aのポイント
  • 携帯のホームページ制作において、アクセスしてから60秒間は「A」と表示し、60秒を過ぎると「B」と表示させる方法を求めています。
  • 現在の実装では、更新するたびに時間が動いてしまい、常に「B」と表示されてしまいます。
  • 初回アクセス時の時間を固定する方法を教えてください。
回答を見る
  • ベストアンサー

時間制限について

携帯のホームページをつくっています。 アクセスしてから60秒間は「A」と表示し、60秒を過ぎるとは「B」と表示させようと考えています。 そこで <?php $file = "test.dat"; $a = file ($file); $fp = fopen ($file , 'w'); fwrite ($fp , date ('Y/m/d H:i:s')); foreach ($a as $line) { list($time) = $line; if (strtotime($time) > time() - 60) { echo 'A'; }else { echo 'B'; } } fclose($fp); ?> というような感じにしてみました。 けれど、更新するたびに$timeも動いてしまい、常にBと表示されてしまいます。 最初にアクセスした時間を固定する良い方法はございませんでしょうか? よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • nick9090
  • ベストアンサー率26% (102/378)
回答No.1

sessionを使う。

masarin16
質問者

お礼

糸口を教えていただきまして、まことにありがとうございます。 nick9090さまのおかげで、無事に完成いたしました。

関連するQ&A

  • 変数部分の書き方について

    PHPでcsvファイルに書き込む形の掲示板を作っています。 最後のfputについては、下記で、1301-T.dat に書き込む形としました。 $fp = fopen('../../data/1301-T.dat', 'w'); foreach($lines as $line) fputs($fp, $line); fclose($fp); 【やりたいこと】 この掲示板の、1301-T.datを変数としたいと考えています。変数は<?php echo $row_id['uni_id']; ?>という形でSQLファイルから取得可能です。 【問題点】 下記のようにするとエラーとなります。 $uni_id の部分の書き方について教えていただきたくお願いいたします。 $uni_id = "../../data/"$row_id['uni_id']".dat"; $fp = fopen($uni_id, 'w'); foreach($lines as $line) fputs($fp, $line); fclose($fp);

    • ベストアンサー
    • PHP
  • 他のサーバーのファイルを大量に読み込んだら迷惑?

     他のサーバーにアクセスして、大量のhtmlファイルを開き、fgets()でそれらを読み込んだら、相手方のサーバーには迷惑になるでしょうか?  (以下のような感じです。URLの部分は、hを大文字で記述しています) <?php $fp = fopen("http://somewhere.org/page1.html","r"); while(!feof()){ $line = fgets($fp); fwrite($fp,$line); } fclose(); $fp = fopen("http://somewhere.org/page2.html","r"); while(!feof()){ $line = fgets($fp); fwrite($fp,$line); } fclose(); //・・・これを数十回くらい。 ?>  又、迷惑になる場合、ファイルを1つ読み込んだあと、sleep();で何秒か停止すれば迷惑かけずに済むでしょうか? もしそうなら、大体何秒くらいでしょうか?

    • ベストアンサー
    • PHP
  • PHPでのファイル操作

    Phpで一覧画面を作成しています。 フォームからの情報をリストごと各行でテキストファイルに書き込ませています。 管理画面で削除、変更を行いたいんですが、特定のファイルの行数を削除できないので困っています。 $garls_list = file("./dat/garls_list.php"); $fp = fopen("./dat/garls_list.php", "w"); foreach ($garls_listt as $dat_line => $new_list) { if ($dat_line == $_POST["list"]) { // 何も書き込まない→この行を削除したと同一 } else { fwrite($fp, $new_list); } } fclose($fp); これだとファイルが真っ白になってしまいます。 詳しい方がいらっしゃいましたらご教授お願いします。 . グレード この質問に補足する.

    • 締切済み
    • PHP
  • 新規ファイルを作成する

    にはどうしたらいいのでしょうか? <?php $file='gomi.dat'; $in=isset($_POST['in'])?$_POST['in']:'bad'; if(file_exists("$file")) { $a=file("$file"); foreach($a as $value) { echo "$value<br/>"; } } $fp=fopen("$file","w"); // <-------------- fwrite($fp,"$in\n"); fclose($fp); ?> <form method="post" action="<?= $_SERVER['PHP_SELF'] ?>"> <input type="text" name="in"/> <input type="submit" value="send"/> </form> は動きませんが $fp=fopen("$file","w"); // <-------------- を $fp=fopen("$file","r+"); // <-------------- としてあらかじめ空の gomi.dat (モード777)を作っていれば動きます どうしたら $fp=fopen("$file","w"); // <-------------- にしても動くようになるでしょうか?

    • ベストアンサー
    • PHP
  • PHPのデータをCSVファイルに保存

    PHPで入力された情報を、CSVファイルに保存したいのですがうまくいきません。 $list=array($name,$jyusyo,$mail,$tel,$text); $fp=fopen('dat/dat.csv','a+'); foreach($list as $line){ fputcsv($fp,split(',',$line)); } fclose($fp); ウェブで調べてこのような形のものを作成してはみたんですが、 エラーが出てしまいます。CSVファイルに保存したい時は、 CSVファイルを先に作るべきなのでしょうか?そうでしたら、 作成の仕方を教えていただきたいです。 初心者ですがよろしくお願いします。

    • 締切済み
    • PHP
  • 他サーバのテキストへの書き込みができません。

    サーバから別のサーバへ書き込みがしたいのですが、 ファイルを読み込むことができません。ソースは以下になります。アクセス権限なども設定しているのですが、他にどういった問題が考えられるでしょうか? $accesstxt = "http://www.ecstee.jp/rss/login_log.txt"; $fp = fopen($accesstxt,'a'); fwrite($fp,$url.",".$time.","); fclose($fp); どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • ファイルの入力、出力

    #include<stdio.h> int main(){ int a,b; FILE *fp0, *fp1;   fp0 = fopen("test1.dat", "r"); if( fp0 == NULL ){ printf("Cannot open test1.dat"); exit(1); } fp1 = fopen("file.txt", "w"); while((fscanf(fp0, "%d %d", &a,&b)) != EOF){ fprintf(fp1, "%d %d\n", a*a,b*b); } fclose(fp0); fclose(fp1); return(0); } test1.datファイルを読み込んで、変数a,bに値をいれ、 その二乗結果をfile.txtに書き込むプログラムなのですが test1.datファイルに書き込まれてる値をどのようにa,bに代入されているのかわかりません。 例えば test1.datが 1 2 3 4 5 であると、 file.txtには 1 4 9 16 25 16 と書き込まれています。 test1.datが 1 1 2 2 3 3 であると file.txtには 1 1 4 4 9 9 となっています。 どのように、変数に値が入るのでしょうか??

  • この先困っています。

    この先困っています。 あるサイトで下記プログラムを見つけましたが その先で困っております。ご教授お願い致します。 ------------------------------ <?php //書き込みファイル設定 $filename = "log.txt"; $fp = fopen($filename, "w"); //ログファイル配列処理 $arr = file("./manager/data.dat"); //書き込み開始 foreach ($arr as $line) { $lines = explode("&&", $line); fwrite($fp, $lines[1]); $lines[1]= mb_convert_encoding($lines[1], "Shift_JIS", "EUC"); //echo "<a href=$lines[1]>".$lines[1]."</a></br>\n\n\n"; } //書き込み終了 fclose($fp); ?> ------------------------------ 1.EUCでかかれた下記ログを読み込みShift_JISに文字変換したい。       $arr = file("./manager/data.dat");//EUC       $filename = "log.txt";//shift_JIS に変換したい 2.書き込んだログがべたでつながっているので改行したい。        fwrite($fp, $lines[1]);//改行で保存したい あるプログラムのログを活用して別のプログラムで利用したいのですが 文字コードで困っています。 どうかよろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのfrrite関数

    お世話になります。 PHPのfwrite関数について質問です。 下記の様な記述で、アクセスがあった際に$lineをdata.txtに保存する場合、同じタイミングで複数のアクセスがあった場合などにエラーは起きないのでしょうか? エラーが起こりうるのであれば、その対処方法を教えて頂きたいです。 $fp = fopen("data.txt", "w"); fwrite($fp, $line); fclose($fp);

    • 締切済み
    • PHP
  • c言語についての質問です

    あるdatファイルに時間と振幅のデータが入っているんですが振幅のデータのみを2乗してから2乗したものに1/2乗し正のものだけから振幅の最大値を求め、振幅の最大値の2割に達した時間を出力したいのですが、どのようにすればよいか分かりません。 サンプルプログラムを載せますのでおねがいします。 ちなみにdatファイルには 時間 振幅 時間 振幅 … となっています。 #include <stdio.h> int main(void) { const char * fname = "C2.dat"; char line[BUFSIZ]; double amp, time,arrival, max=0,max20; FILE *fp = fopen(fname, "r"); while (fgets(line, BUFSIZ, fp)) { sscanf(line, "%lf%lf", &time, &amp); if (amp > max) { max = amp; } } fclose(fp); printf("max: %.7lf\n", max); fp =fopen(fname,"r"); while (fgets(line, BUFSIZ, fp)){ sscanf(line, "%lf%lf" , &time, &amp); if(amp > max*0.2){ arrival = time; break; } } fclose(fp); printf("arrival:%.16lf\n",arrival); return 0; }

専門家に質問してみよう