【PHP】初心者コーナー 

このエントリーをはてなブックマークに追加
937nobodyさん:03/03/22 21:13 ID:UE3IynkO
931 です。

書き込むクッキーなのですが、

***[01][1]
***[01][2]
***[01][3]

***[02][1]
***[02][2]
***[02][3]

のような形で多次元配列(連想配列の配列)に入れています。

これってクッキーにそのまま書けますかね?

・PHPに多次元配列がある事
・クッキーに配列を書き込める事

それぞれはしばしば解説してあるのを見かけるのですが、
多次元配列がクッキーにそのまま書き込めるのかわかりませんでしたので。
ひょっとしたらそのせいかとも思いまして。

setcookie("***[01][1]","$value",time()+36000);
のような形で書き込んでいます。

どうぞよろしくお願いします。


938 ◆kaHG.XGS1s :03/03/22 21:18 ID:???
>935
そのあたりはPHP5以降に期待やね…。
939bloom:03/03/22 21:18 ID:d1IUlECS
940nobodyさん:03/03/22 21:23 ID:???
>>937
もちろん無理でしょう。
941935:03/03/22 21:49 ID:???
>>936>>938
ありがとん
PHP5に期待します。
942nobodyさん:03/03/22 21:50 ID:vD6RRe1J
perlのmyにあたるものは何ですか?
943nobodyさん:03/03/22 21:59 ID:???
そんなものはないです
944nobodyさん:03/03/22 22:02 ID:???
>>942
そもそもスコープが関数内に限定されるので必要なしです。
945nobodyさん:03/03/22 22:04 ID:???
変数のスコープはそれ以上狭くならないの?
946nobodyさん:03/03/22 22:06 ID:UE3IynkO
>>940

やはり無理ですか。

だとすると、多次元配列で扱った方がスマートに処理できるデータをクッキーで扱う場合、
みなさんはどうやって処理されてますか?

例えば
$tmp[01][1] = '111';
$tmp[02][2] = '222';

というような値を扱う場合、

デリミタを定めて、一旦下のような形にしてから書きこむしかないのでしょうか?
$tmp = '01#1#111###02#2#222';

だとするとまた後でsplit するしかないですよね・・・






947nobodyさん:03/03/22 22:12 ID:???
>>946
と、言うかcookieなんて不安定なストレージに多量のデータを書き込んだりしない。みたいな。
948nobodyさん:03/03/22 22:18 ID:UE3IynkO
>>947

なるほど、だとしたらやはりセッションですか?

例えば大きな買い物カゴのシステムを作る場合のデータは
どこに保存するのが望ましいでしょうか?


949nobodyさん:03/03/22 22:19 ID:???
>>948
セッションじゃないの?
950nobodyさん:03/03/22 22:21 ID:UE3IynkO
>>949
なるほど、例えばperl でユーザ側の挙動を記録する際は
どうすればいいですか? 仕方なくクッキーですか?
951nobodyさん:03/03/22 22:24 ID:???
>>950
>ユーザ側の挙動
定義して
952nobodyさん:03/03/22 22:43 ID:???
何故にセッションとクッキーを別に考えますかね?
クッキーもセッション管理の一つの手段でしょうに…。
953nobodyさん:03/03/22 22:45 ID:???
>>952
セッションを識別するためのな。
セッションで保存し続けるデータを丸入れするもんでは断じてないだろう。
954nobodyさん:03/03/22 23:06 ID:???
>>953
それは規模によるね。丸入れで十分な場合もあるし。

まあ例に挙がってる大きな買い物カゴでクッキーに丸入れは無謀以外の何者でもないが。
955nobodyさん:03/03/22 23:17 ID:???
ポストされたSJISのデータをファイルに保存するとソの文字に\\ていうのがつくんだけど
どうやって回避するのでしょうか?
956955:03/03/22 23:26 ID:???
悩むのめんどくさそうなのできっぱりEUC_JPで行く事にしました。
957nobodyさん:03/03/23 00:25 ID:???
>>931
ちょっと遅レスだけど、知らん人のために・・・・

> クッキーって個数制限はありますか?

(引用)
http://e-words.jp/w/Cookie.html

1つのCookieには4096バイトのデータを記録でき、最大で300のCookieを保存できる。1台のサーバが同じコンピュータに対して発行できるCookieの数は20個に制限されている。
958nobodyさん:03/03/23 01:23 ID:BBpu4hLb
私も検索していてこのようなログを見つけました。

(引用)
http://www.users.gr.jp/ml/archive/asp/4598.asp

やはり気になるのがブラウザを閉じてもセッションを
残すにはどうしたら良いかと言う事でして、

その際は上のページにありますように
(1)Application 変数に格納する。
(2)DB(やファイル)に格納する。

でいいのでしょうか?

他にもPHP独自のスマートなやり方がありましたらご指導お願いします。
959初心者:03/03/23 01:25 ID:???
リモート情報取得で$_SERVER["REMOTE_ADDR"]使うと
xxx.xxx.xxx.xxx 形式でしか取得できないんだけど
bbb.aaa.hogehoge.co,jp形式で取得できる方法ってどうやるのだろ。。
960nobodyさん:03/03/23 01:28 ID:???
age
961初心者:03/03/23 01:54 ID:???
っつーか、$_SERVER["REMOTE_HOST"]
が効かんのは何故だ。。
HostnameLookupsはOnにしてるのだが。。
962nobodyさん:03/03/23 02:06 ID:???
>>958
ブラウザを閉じても、ってことはcookie使うのを前提にしているとして、
1. cookieが消えないように設定
2. セッション情報がサーバから消えないように設定

1.は session_set_cookie_params()かな。またはphp.iniのsession.cookie_lifetime。
2.は php.iniのsession.gc_probability、session.gc_maxlifetimeを弄ると良さげ。
   または、session_set_save_handler()を使って消えないようにするとか。

>>959
gethostbyaddr($_SERVER["REMOTE_ADDR"])
963962:03/03/23 02:21 ID:???
と思ったけど、HostnameLookups onならgethostbyaddrしても出てきそうにないな・・
964959:03/03/23 02:29 ID:???
>962
>963
あんがとmOm
965nobodyさん:03/03/23 09:11 ID:gFyfJ3h7
phpでime.nu経由のリファラーを弾きたいのですが
記述方法を教えて下さい。
966nobodyさん:03/03/23 09:19 ID:???
>>965
PHPのマニュアル一回でも読めばそれくらい出来るだろ?
967nobodyさん:03/03/23 11:47 ID:???
一覧表示してみると$_SERVERと$_ENVが同じにみえるのですが、実際はどう違うのでしょうか。
968nobodyさん:03/03/23 12:00 ID:fA4gH2xG
グローバル変数とローカル変数の違いを
だれかおしえてください。
例を挙げてもらえると助かる
969nobodyさん:03/03/23 13:03 ID:???
>>968
どこからでもアクセス可能。
所属するスコープ内だけで有効。
970nobodyさん:03/03/23 13:39 ID:???
>>968
<?php
$グローバル
function(){$ローカル}
?>
971968:03/03/23 13:40 ID:fA4gH2xG
>>968
お返事どもでつ。
例をあげてくだつぁぃ。
カウンタとか掲示板で。
972nobodyさん:03/03/23 13:48 ID:???
>>970
その$グローバルは違うだろ!
973nobodyさん:03/03/23 14:04 ID:???
>>972
<?php
$global
function hoge() {
 global $global;
 $local;
}
974nobodyさん:03/03/23 15:22 ID:???
972 名前:nobodyさん 投稿日:2003/03/23(日) 13:48 ID:???
>>970
その$グローバルは違うだろ!

アホがいます。
975965:03/03/23 16:20 ID:gFyfJ3h7
>>966
分からないです…せめてヒントだけでも教えて下さい。。
976nobodyさん:03/03/23 16:24 ID:???
>>966
マニュアルだけでは足りん。

TCP/IPの常識HTTPの常識CGIの常識論理的思考力発想力気力体力

何より大切な自分で問題を解決するための手段を考える問題解決力。
977nobodyさん:03/03/23 16:50 ID:???
>>975
966じゃないが、
ヒント
if,ime.nu,Location
はい、完成。
978965:03/03/23 17:51 ID:???
>>977
うわぁありがとうございます。検索したら出来ました。感謝。
979nobodyさん:03/03/23 18:26 ID:???
>>967
同じもの
980nobodyさん:03/03/24 01:21 ID:???
>>978
ためしに検索してみたらJavaScriptの方法が目立つけど、
まさかJavaScriptで代用したなんてことはないよね・・・(笑)
981nobodyさん:03/03/24 03:11 ID:???
【PHP】初心者コーナー 2 Released
http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
982nobodyさん:03/03/24 03:36 ID:???
んじゃ998が999の質問の回答を含めた掲示板を作る。
983nobodyさん:03/03/24 07:29 ID:???
Flash板みたいなことを・・(*´∀`)
984nobodyさん:03/03/25 00:07 ID:???
実験的に
Apache PHP PostgreSQLで、セッション変数使ってDB上のIDとpasswordを
認証してからメンバーページにログインできるような会員制のサイトを
作ってみたんだけど、あとSSL使ってネット上に平文が流れないように
IDとpasswordを暗号化したくらいでセキュリティーが保てれるんでしょうか?


985nobodyさん:03/03/25 02:13 ID:???
>>984
とりあえずパスワードを伝送経路で盗聴される危険性は少なくなったと。
後はサーバ側のパスワードの管理とバカユーザがモニタにパスワードを張らないように見張ることとか。
986nobodyさん
>985
マジレスサンクス
>バカユーザがモニタにパスワードを張らないように見張ることとか。
これはある程度防ぎようがないっすね、パスワードを他人に漏らす
ってことですよね、漏らした人間が不利益をこうむらない限りしかたないっすね。