• 締切済み

セッション変数

$_SESSION['name']=test $_SESSION['pass']=pass というようにセッション変数に、nameとpassを作成しました。 セッション変数とは、配列と考えてもいい物なのでしょうか それとも、一個一個の変数と考えるべきなのでしょうか。 よくセッション変数と言われますが、記述のされ方が配列と同じようにみえるので気になりました。 ・SESSION配列? ############################# | name = 'test'  | pass = 'aaa' | ############################# ・SESSION変数? ###############   ############# |  name = 'test' |   | pass = 'aaa' | ###############   ############# どちらが正解なのでしょうか?

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

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

#「配列」というのは「型」のひとつです。 $_SESSIONは変数です。そして型は配列です。$_POSTや$_SERVERもそうです。 $array= array(1, 2, 3); と書けば、$array は変数であり、型は配列ですよね(各要素の型は整数型)。もちろん変数ですから他の型を代入すれば型は変ります。 $array = 4; とすれば型は整数型に変わりますよね。 http://www.php.net/manual/ja/language.types.php (蛇足) 無理矢理 $_SESSION = 1; とすれば$_SESSIONは整数型になります。無意味なのでやりませんが(session_start()したら配列に戻ります)。

ShiftTail
質問者

お礼

>配列」というのは「型」のひとつです。 >$_SESSIONは変数です。そして型は配列です。$_POSTや$_SERVERもそうです。 >$array = 4; >とすれば型は整数型に変わりますよね。 なんとなく理解することはできました。 参考アドレスもみながら理解していきたいと思います。

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

言葉の定義の問題でしょうか? <?PHP session_start(); $_SESSION['name']="test"; $_SESSION['pass']="pass"; var_dump($_SESSION); ?> してみると構造としては配列だとわかります ただ、特性上「定義済の変数」として定義されています。 http://www.php.net/manual/ja/reserved.variables.php

ShiftTail
質問者

お礼

>特性上「定義済の変数」として定義されています。 構造は配列ですね。ただ定義上の変数ですか。 アドレスを参考にさせていただきたいと思います。 ありがとうございました。

関連するQ&A

  • セッション変数について

    48歳独学でプログラムを勉強しているものです。誰も教えてくれる人がいないので、教えてgooさんには大変お世話になっております。 現在PHPを使用して無料レンタルサーバーに会員画面を作ろうとしているのですが、一般的に無料レンタルサーバーでもセッション変数は使えるものなのでしょうか。どうも上手くセッション変数がフォルダに保存されません。無料レンタルサーバーでは不可なのでしょうか。 セッション保存先に「kaiintmp」というフォルダを作成しています。 そして、 session_start(); session_save_path("kaiintmp"); session_register("simei","pass"); $_SESSION[simei]=$simei; $_SESSION[pass]=$pass; のようにしていますが・・・。 自分のパソコンでは、セッション変数が作成されますがレンタルサーバーにUPしても作成されません。 レンタルサーバーにUPしたときのpathがダメなのでしょうか? レンタルサーバーでセッション変数を使用されている方おりましたら宜しくご教授お願いいたします。

    • ベストアンサー
    • PHP
  • SESSION変数の2次元配列

    ソースコードに $_SESSION[’place'][1][2] と記述されていました。 記述内容を考えていたのですが $_SESSION[’place']に、[1][2]=値 の2次元配列を格納するという 考え方で間違いないでしょうか? $_SESSION[’place'][1][2] は、3次元配列( =多次元配列)ではないと、いう考え方で あっていますでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • セッション変数と配列

    通常の変数であれば、 $var = array($_POST["var1"], $_POST["var2"], $_POST["var3"]); ですが、セッション変数を配列にするにはどうしたら良いのでしょう? (配列から取り出す方法も含め) $var = array($_POST["var1"], $_POST["var2"], $_POST["var3"]); $_SESSION["$var"]; や $_SESSION["$var"] = array($_POST["var1"], $_POST["var2"], $_POST["var3"]); としてみましたが、ダメなんですね。 よろしくお願いいたします。 *PHPバージョンは5です

    • ベストアンサー
    • PHP
  • セッション

    セッションについて教えて下さい。 指定のID、パスワードでログインしようと思っています。 ソースを記載しますので、お教え下さい。 ID:aaa パスワード:111とします。 [送り側フォーム] <form action="/test2.asp" method="POST" id=form1 name=form1> <input type="text" name="id" value=""><br> <input type="password" name="passwd" value=""> <input type="submit" value="LOGIN" id=submit1 name=submit1> </form> とし、 [受け取り側、認証 test2.asp ] <% If Session("user_test") <> "1" Then Response.Redirect "/test.asp" Response.End() End If %>ここで認証を判断し、認証できなければtest.aspへもどるとし、 Dim id, passwd id = Request.Form("id") passwd = Request.Form("passwd") Session("user_login") = "id" Session("user_login") = "passwd" IF id = "aaa" and passwd = "111" THEN Session("user_test") = 1 Response.Write ("OK") ELSE Response.Write ("ちがうよ") END IF %> ID、パスワードをセッション変数にいれ、各ページで認証すると言う事をやりたいのですが、うまくいきません。 どこがわるいか、お教え下さい。 ※以前にも似たような質問をしているのですが、改善されずお手上げです。

  • セッション機能で

    セッション機能を利用するときに、セッション変数を宣言しますよね。 セッション変数を配列として使いたい場合にはどのように宣言すればよいのでしょうか? 実際のスクリプト内では session_start(); session_cache_limiter('limit'); session_register("hoge"); のように記述していますが、どうもうまく動作しません。 何か間違っている点があればご指摘・アドバイスをいただければありがたいです。 よろしくおねがいします。

    • 締切済み
    • PHP
  • ログイン時で、php+sessionについて

    普通のページは静的なhtmlなのですが、1ページだけログインページを付けています。 ログイン自体は問題ないのですが、普通のページは静的なhtmlなので、アカウントやパスは普通、データは渡せません。 できるのはphp+session(+javascipt)だけかな?と考えています。 1ページだけログインを付ける為にphpで作成しました。 問題は、html内にphp+sessionを使える方法を知りたいです。 IDやPASSの暗号化は分かっているので、その部分は今回スルーしてます。 変数名も書き方もバカなぐらい簡易化してます。 とにかくデータの渡し方を知りたいです。 ○test.html <form method="post" action="test.php"> <input type="text" name="id" id="id" value=""> <input type="text" name="pw" id="pw" value=""> <input type="submit" value="submit"> </form> ○test.php session_start(); session_name("id"); session_name("pw"); $_SESSION["id"]=$_POST["id"]; $_SESSION["pw"]=$_POST["pw"]; このIDとPASSをどうやったら、test.htmlのフォーム内に自動的に入れられるか、それがわかりません。 やっぱりjavascriptで、SESSIONを取得し、document.getElementByIdのinputか何かを使ってやるのでしょうか? 時間がないのですが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • セッション変数にデータをセットする

    下記のPHPプログラムについて 1 <?php 2 // セッションを開始する 3 session_start(); 4 ?> 5 <html> 6 <head> 7 <title>セッション変数にデータをセットする</title> 8 </head> 9 <body> 10 <?php 11 // セッション変数にデータをセットする 12 if (!isset($_SESSION["name"])) { 13  echo "<p>セッション情報をセットしました"; 14  $_SESSION["name"] = "田中"; 15  } 16 echo "<p>名前:".$_SESSION["name"]; 17  18 // セッション変数にデータをセットする 19 if (!isset($HTTP_SESSION_VARS["name2"])) { 20  echo "<p>セッション情報をセットしました"; 21  $HTTP_SESSION_VARS["name2"] = "高橋"; 22 } 23 echo "<p>名前:".$HTTP_SESSION_VARS["name2"]; 24 25 ?> 26 </body> 27 </html> 実行すると 名前:田中 名前:高橋 となるのですが、なぜ13行目、20行目のecho文の内容が出力されないのか不思議です。 echo文の内容が表示がされない理由ついて教えてください。 よろしくお願いします!

    • ベストアンサー
    • PHP
  • actionscript 2.0 配列型変数をグローバル変数として扱いたい。

    action script2.0で ある変数を、共有しようと、ムービークリップに _global.hoge = _name(ムービーのインスタンス名); というような記述をしました。 すると、たしかにほかのどのムービークリップでも hogeという値は取り出すことができました。 ところが、インスタンスはひとつではなく複数あるため、 _global.hoge = _nameが記述されているムービークリップがいくつもあると、 次々上書きされ、結局hogeは、最後に読み込んだ _nameの値が入ってしまうという現象が起きたのです。 そこで _global.hoge[_name] = _name; というような、変数名がかぶらぬよう配列に変更してみました。 ところが、また問題が発生しました。 なぜか、配列だと頭に_globalとついていても グローバル変数として扱ってくれず、 ほかの場所で hoge[1] 等と記述しても全く値が取り出せないのです。 また、同ムービークリップ内ではちゃんと取り出せました。 どうすれば、配列変数をグローバル変数として 扱うことができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • SESSION受け渡し

    SESSION受け渡し 毎回大変お世話になっております。 PHP初心者なので、変な質問になっているかもしれないのですが、どうか分かる方はお付き合いください。 環境 PHP 文字コード:Shift-JIS SESSION01.php から SESSION02.php へSESSIONを受け渡した場合、統一されるはずのSESSION変数($_SESSION["name"])が2つ作成されてしまい、別々の変数として扱われてしまいます。 ・ソース SESSION01.php(SESSION送信側) <?php session_start(); $_SESSION["name"] = "1"; echo $_SESSION["name"];  ←変数の中身は[1] ?> SESSION02.php(SESSION受信側) <?php session_start(); echo $_SESSION["name"]; ←変数の中身は何も無し ?> ・SESSIONのディレクトリ sess_eo683vtfgl5qk6d2o31ghcjpn7     1KB sess_nq1cikn5uhdlnc9uvii6b8l281     0KB SESSION変数($_SESSION["name"])をSESSION01.phpとSESSION02.phpの両方で同じ変数として扱いたいのですが、別々の変数の様な扱いになっております。 なぜSESSION変数が統一されていないか分かる方がいらっしゃいましたら、どうかご意見をお聞かせください。

    • 締切済み
    • PHP
  • sessionの使い方

    PHP4でセッションに変数を入れる方法を教えて下さい! $nameという変数をセッションで持ちたいです。 宜しくお願いします。

    • ベストアンサー
    • PHP