ブラウザを開いていたら、ログインしてる。
ブラウザを閉じたら、ログインしてない。
これでいいのかな?
ログインしている = ログイン後ログアウトしていない
ログインしたらセッションを生成、ログアウトしたらセッションを破棄。
セッションの最も一般的な使い方。
自分で実装するならこんな感じ。
1.ユーザーがログインフォームにパスとIDを打ち込む
2.リクエストを受けたサーバーは、パスワードを照合。
あってたら、ランダム文字列をクッキーとしてユーザーに送りつける。
同時に、この値とユーザーのIDをセットにしてどこかに保存しておく。
一番シンプルなのは、クッキーの値をファイル名にして、中にユーザーID書き込んでおくとか。
((((((10年後))))))
3.ユーザーがアクセス時にクッキーを送りつけてくるので、そのファイルを探す。
あったらそいつはログインしているユーザー。
ファイルの中身を読み、ユーザーのIDを(=ユーザーが誰かを)特定し、処理を続ける。
この「クッキーを発行し、クッキーを送りつける」「ファイルがあるか確認する」をやってくれるのがPHPのセッション。
ファイルの中身がセッション変数に当たる。
955 :
nobodyさん:2009/03/05(木) 00:53:07 ID:Rp65yYdP
FlashDevelopみたいな補完機能が超強力なphpエディタってない??
出席簿みたいのを作りたいんですよ。
ブラウザを開いている間は、出席している。
ブラウザを閉じたら、退席した。
こういうロジックで、セッションを使って実装するのは
どうしたらいいですか?
フォームにIDとパスワード入れてログインするとかじゃなくてです。
IPアドレスだけで実現したいのです。
セッションが存在したら出席,
セッションが存在しなかったら退席
でいいんじゃないの?
958 :
nobodyさん:2009/03/05(木) 02:12:34 ID:SpoYISjY
あまり意味のない事かもしれませんが、同一の接続IDを使って
mysql_query()とmysqli_query()を混在させたり、
mysql_query()で問い合わせてmysqli_close()でクローズしたりする事は
可能でしょうか? 教えてください。
以下のページでは、mysqli_*()ではオブジェクトAPIを使用すると説明がありますが、
mysql_connect()はコネクションを再利用するが、mysqli_connect()は常に新規にコネクションを取得するように
connect以外でもmysql_*()とmysqli_*()では、動きが異なるようなものだったりするのでしょうか?
ttp://d.hatena.ne.jp/taiju1225/20080509/1210305274
学習1ヶ月程度の初心者です、よろしくお願いします。
入門本に、header("location:url")のみでリダイレクトされた先のスクリプトで、
$_GET["キー"]で値をとれていますが、GET送信の場合は値を
?で付けていかなければ駄目ですよね?
送り元は自身にPOSTでは値を送っています。
そして送り元も送り先もセッションでは値を送受信していますが。
意味不明なのでもう一度書き直してくれ
その程度の話、意味がわかるように書けたら答え出るだろ。
質問のふりして、入門本に文句つけてるだけじゃね?
意味不明なのでもう一度書き直してくれ
おれも、自分で書いた後そう思ったw
<?php
$a=0.97075300;
$b=0.97083700;
$c=$b-$a;
print $c;
?>
これを実行すると、
8.4E-5
とかって、出てきます。
Eとか不愉快なんで、ちゃんと数字で
結果を表示したいのですが、どうすればいいですか?
なんで下スレから移動してんの?
966 :
959:2009/03/05(木) 11:27:28 ID:???
書き直します。
header("location:url")でリダイレクトされた先のスクリプト内では、
$_GET["キー"]で値をとれています。
しかしheader内のurlの後に「?キー=値」は付けていません。
GET送信で値を送る時にはURLの後に値を付け足すとしか知識がありません。
headerで送り出す元となるスクリプトでは自身にPOST送信してあるのみです。
GETは環境変数QUERY_STRINGだから処理しても変数値は消えない
POSTは標準入力だから一度読み込み処理したらお終い
<?php
$a=0.97075300;
$b=0.97083700;
$c=$b-$a;
$d=sprintf("%.f", $c);
print $d;
?>
これを実行すると、
0.000084
ってなるんだけど、
0.000084秒
かかった、って理解でいいの?
マルチかコピペか、どっちにしても無意味。
質問になってないしw
またいつもの基地外君か
971 :
959:2009/03/05(木) 13:57:59 ID:???
>>967 調べるキーワードを教えてもらって有難うございます。
>956
ブラウザを閉じた事を検知する手段は存在しない。
無理やりやるなら、JavaScriptで10秒おきとかにリクエストを送って、それが切れたらブラウザを閉じた、という事にするくらいかな。
問題は誰かを特定するほう。一般論を言うと、IPアドレスと、それが誰かを紐付ける手段は存在しない。
つうかそんなもんあったらプライバシー上の大問題になる。
学校とかのどのPCを誰が使うか決まっている環境で、固定IPならば可能かな。
俺なら初回アクセスの1回だけログインさせてクッキー(セッション)を発行し、以降はそれで個人識別する。
成りすましが問題にならない案件ならこれでじゅうぶん。1月ごとに再ログインさせる必要はあるが。
(寿命が一ヶ月以上のクッキーは発行できないため。技術的制約)
1年以上のクッキーも余裕で発行できるだろ?
再読み込みの際にわかればいい程度です。
セッションの存在を検知するには、
どの関数を使えばいい?
セッション変数
jpgraph が使えない
なんで?
JpGraph Error: HTTP headers have already been sent
ってなる
header関数でリダイレクトした時に、元のスクリプトに送ってたパラメータ
(例えばテキストボックスで送った値)はそのままで、locationの値だけが変わるのですか?
>>980 GET値なら、変えて記述すれば変わる。
何もしなければ、リダイレクト先には渡らない。
>>982 fopenでもしてるの?
freadなりfgetsなりすればok
でもjavascriptの代入文のような気もするけど
phpでスクリプトを組んでいるんですけど、一般のフォームのファイル選択フォームで2MB以上のファイルをOPENしようとすると
サーバーがエラーを出します。2MB未満だと問題ないのですが・・・
phpinfoを見ると
post_max_size 8M 8M
upload_max_filesize 10485760 8M
にはなっています。
どうすれば2MB以上のファイルをアップロード出来るようになるのでしょうか?
サーバエラーのコード番号が重要だろwwwwww
なぜ書かないwwww
エラーコードは出ずに、単純に「ページを表示できません。」のエラーが出るだけです。
ちなみにIEです。
Firefoxでやっても同じ結果でした。
pearのモジュールをインストールするときに、
-aオプションと、-oオプションとあるじゃん。
これってどう違うの?
-a, --alldeps
install all required and optional dependencies
必須モジュールとオプションモジュールまとめて全部持ってくる
-o, --onlyreqdeps
install all required dependencies
必須モジールだけもってくる
ってことじゃない?
オプションモジュールが無ければ、どっちでもかまわないんだろうね
>>991 オプションモジュールってのは、
つけても、つけなくても、大差ないけど、
できればあったほうがいいモジュールって意味かな?
教科書でHTML_QuickFormってのを発見して、
試してみたら、すでに時代遅れで、
今は、HTML_QuickForm2になっているんだと。
セッションというのは、IPアドレスに対して
発行されるもの?
違うということだけ言っておく
セッションを取得して、IPを変えたら、
そのセッションはどうなるの?
どうもならん
NAT環境で別のPCが同じIPアドレスの場合のほうが気にならんか?
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。