ベストアンサー session_startでクッキー範囲をパス指定 2012/05/19 10:38 session_start();する際、setcookieでパス指定するみたいに、クッキーの有効範囲をディレクトリで指定したいのですが、どうすれば良いでしょうか? みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー shimix ベストアンサー率54% (865/1590) 2012/05/19 11:59 回答No.1 RTFM. http://jp.php.net/manual/ja/function.session-set-cookie-params.php 質問者 お礼 2012/05/19 12:42 回答ありがとうございました 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A セッションについて 現在phpとMysqlで認証後、認証時に入力したID名のディレクトリを自動で作るシステムを作っています。 しかし、ID名のディレクトリにファイルをアップロードしたいのですが、なぜか指定よりひとつ上の階層にファイルが保存されてしまいます。 考えられることを以下に記します。 1、セッションがうまく渡ってきておらず、指定先のセッション変数が空である。 2、関数の使い方が間違っている。 この他に理由があるのかもしれません。 アップロード指定ディレクトリは以下のように指定しています。 $username = $_POST['user']; $_SESSION['username'] = $_POST['user']; $file_dir = "c:/xampp/htdocs/report/$username"; ちなみに認証時のID名のディレクトリを作るプログラムは以下の通りです。 <?php session_start(); $dirname = $_POST['user']; $_SESSION['dirname'] = $_POST['user']; $path = "c:/xampp/htdocs/report/$dirname"; if(!file_exists($path)){mkdir($path);} ?> こちらもセッション変数を利用しているので同じようにしたら 大丈夫だと思っていたのですが・・・ お分かりになる方ご回答お願いいたします。 クッキーの名前について はじめまして、PHPでクッキーを利用したいのですが、 クッキーの名前で悩んでいます。 Windowsに保存されているクッキーを見てみると、 クッキーの名前が、 Cookie:******@?????? ****:Windowsにログインしているユーザー名 ????:ドメイン となっているものがあります。 概して大手サイトより発行されたクッキーがこのようになっているように思えます。 自分で作成したPHPでクッキーを発行してみると、 setcookie()で指定したpathの部分が名前となるようです。 また、pathを指定しないと発行元のphpが存在するディレクトリ名に なります。 クッキーの名前が”Cookie:******@??????”となるのは、何か意味があるのでしょうか? セキュリティーなどにからんでこうなるとしたら、同じようにしないといけないのかな?でも、Windowsのユーザー名ということは、他のOSでは不都合が生じるのかな?と悩んでしまい、質問させていただきました。 お分かりになる方いらっしゃいましたらご回答よろしくお願いします。 session_startが使えない??? session_start();を使うと このようなエラーが出ます。 failed: No such file or directory sampleから取ってきても同じようになります。 何か解決方法はないでしょうか?よろしくお願いします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム session_start出来ません。 FreeBSD 4.11 Apache 1.3.33 PHP 4.3.11 の組合せでWebサーバをセットアップし、phpファイルにアクセスしたところ Fatal error: Call to undefined function: session_start() in /hogehoge/test.php on line 3 となってしまいます。 session.save_pathにはパーミッションを777にしていますが、session_startが出来ません。 どのように対応したらいいでしょうか? よろしくお願いします。 クッキーの利用について CGIのプログラムで、複数の異なるURLのファイルからJavascriptを介してクッキーを利用する仕組みを考えています。 SetCookieでpath、domainの値を指定していますが、SetCookie後、発行したフォルダから他のフォルダに移動して再びsetCookieを行おうとすると、Cookieに正しく値が設定されないという現象が起こって困っております。 おそらくSetCookieの値の書き方の問題かと思いますが、どなたかおわかりになる方はいませんか? セッション(session)ってクッキー(cookie)とどう違うの? セッションはクッキーが有効になってないと使えないと本で覚えました。そしてセッションの仕様として「そのウィンドウでのみ有効。閉じたら破棄される」ともありました。しかしこれではexpires(有効期限)を設定しないクッキーと違いがないように思うのですが・・・。セッションとクッキーの相違点はどのようなものなのでしょうか?またそれをどのように生かす方法があるのでしょうか? Perl+セッションクッキーの使い方 セッション管理のために良く使われる 「セッションクッキー」というものがあることを最近になって知りました。管理者画面などを作成する際に利用したいと思うのですが、使い方がよくわかりません。 Perlでセッションクッキーを利用する方法について詳しい情報が記載されている書籍やサイトなどの情報をご存知でしたら、教えてください。 (できれば書籍についての情報がありがたく思います) よろしくお願いします。 クッキーとセッション クッキーとセッションの違いは何ですか? クッキーは「WebサーバーがWebブラウザに渡すメモのようなもの」でセッションは「クライアントに関連する情報(データ)をWebサーバーに預けておくことが出来るもの」で合っていますか? 「セッション管理用のクッキーに secure 属性をつける」についてで 「セッション管理用のクッキーに secure 属性をつける」についてですが、 具体的には、 <?php session_start(); session_regenerate_id(TRUE); ?> とあった時に、どのようにコードを加えれば良いのでしょうか? ご教授、よろしくお願いします。 セッションIDがクッキーに渡るタイミングについて セッションIDが、クライアントPCのクッキーに書き込まれるタイミングについて、 教えてください ▼セッションを開始したとき ・session_start(); ▼セッション変数に、何かを格納したとき ・$_SESSION["HOGE"] =○○ ▼PHPの処理が終了したとき ▼セッションが終了したとき ▼それ以外 セッションの削除 例えば www.hoge.com/foo/index.php で session_start(); setcookie("bar",session_id(), time()+3600); として画面遷移を行いながら登録作業を行い、 完了画面regist.php で session_start(); $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000); } session_destroy(); としましたが$_COOKIE["bar"]が初期化されません。 どのようにしたら良いでしょうか? 教えてください。 宜しくお願いします。 setcookieで「path」に複数の値を指定 setcookie関数で値を設定したいのですが、「path」に複数の値って指定できるのでしょうか? (例えば、有効範囲を /ABC と /XYZ にしたいとか。。) 検索してみましたが、2つ以上の設定が見つからなかったので、できないのかな?とは思っているのですが…。 分かる方、教えて頂きたく宜しくお願いします! AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム クッキーに配列で値をいれた時にうまく取り出せないです 質問させていただきます。 setcookie()で画面の項目をクッキーに保存したいのですが、 項目が多いので項目制限のためか全部クッキーに保存されず配列にいれることにしました。 (implodeで一つの項目にしようかとも思いましたが、項目によっては一つの項目で複数の値をもつためやめました) その際保存,読み出すときは下記のように書いたのですが、うまく拾ってくれません。 しかしながらprint_r($_COOKIE)で見た時は値が入っているようです。 記述のミスなどがあればご指摘をお願いいたします。 //保存するとき $time = time() + 3600 * 24 * 30; setcookie("Item[a]",$_SESSION['a'],$time) setcookie("Item[b]",$_SESSION['b'],$time) setcookie("Item[c]",$_SESSION['c'],$time) //読み出すとき $_SESSION['a'] = $_COOKIE['Item[a]']; $_SESSION['b'] = $_COOKIE['Item[b]']; $_SESSION['c'] = $_COOKIE['Item[c]']; PHP SESSION変数の削除について PHPでブラウザを×で閉じた場合、SESSION変数 の廃棄はどうすればよいのでしょうか? ガーペジコレクション(PHP.INI等の設定)に任せておけばよいのでしょうか? ちなみにログアウトの際は下記のプロシジャを実行しています。 ----------------------------- <?php session_start(); // セッション変数を全て解除する $_SESSION = array(); // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } // 最終的に、セッションを破壊する session_destroy(); ?> ----------------------------- セッションの仕組み php初心者です セッションの仕組みを教えてください 質問1 セッションidとセッションクッキーは同じものですか? 質問2 セッションidやセッションクッキーはデフォルトでは、ブラウザを閉じた時に削除されますか? 質問3 レンタルサーバーのphp.iniを調べてみたところ 保存場所がsession.save_path no valueでした。この場合、訪問者のパソコンにクッキーが保存されてしまうのでしょうか?サーバーに保存する方法はありますか? 質問3 session_start();でセッションを開始したときセッションidが自動で付けられるのはわかりましたが、 セッションid(MD5で作られた数字)の使い道がわかりません 質問4 セッションidはどこに利用すればいいのでしょうか? session_start(); session_id(); //このセッションidの利用方法がわかりません $_SESSION['id'] = $_POST['id']; よろしくお願いします セッションとクッキーに関して おはようございます。 TomcatとJavaに関してですが、 通常(特別何もせず、ただ、sessionに格納する場合) sessionに格納したデータは、クッキーに出力されるのですか? それとも、サーバ上のメモリに格納されているのですか? ご回答お願い致しますm(_ _)m クッキーを使わないセッション はどういう風に構成されるのでしょうか? PHPにあるセッション関数はすべてクッキーを使うことが前提なのでしょうか? session_startについて質問 phpの公式マニュアル(オンライン版)のsession_startの解説(http://www.php.net/manual/ja/function.session-start.php)には「session_start — セッションデータを初期化する」とあります。 たとえば、$_SESSION[hoge] = hoge;として、他のページに遷移した際、セッションデータが初期化されるなら、$_SESSION[hoge]のデータも消えてしかるべきな気がするのですが、どういうことなのでしょうか? 解説できる方、いらっしゃいましたら平易に解説していただけると助かります。 PHPセッションIDの変更 お世話になります。 phpでのセッションIDの変更の処理(セッションの中身も初期化する)がうまくいかず困っております。 以下のようなコードでセッションの管理をしているのですが。。 現象としては、最初に発行したセッションIDを保持したクッキーが削除されていない。 下記のコードの中の2度目にsession_start()を実行している 部分の後のセッションIDを見ると 新しいIDになっているがブラウザのクッキーのセッションIDは 古いIDのまま。 という現状です。 どなたか、原因が判る方、ご教示頂ければ幸いです。 宜しくお願いします。 ------------------------------ session_start(); //セッションクッキーを破棄・ if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '',time()-42000, '/'); } //セッションを完全に破棄・ if('' != ($myid = session_id())){ $_SESSION = array(); //セッション変数を初期化・ session_destroy(); } session_id(md5(uniqid(rand(), true))); //新しいセッションID session_start(); $_SESSION['userid'] = 'hoge'; ------------------------------------------------- セッションについて セッションの管理について疑問があって質問させていただきます。 PHPの単一サーバでのセッション管理であれば、$_SESSIONを利用すれば良いと理解しています。 例えば複数のサーバで運用する場合はクッキーを利用するという方向で良いでしょうか?$_SESSIONだとセッションの引き渡しはできないですよね。(?) ただし、お金があってロードバランサーを使った場合はできると理解しています。 複数のサーバで運用する場合、会員登録の機能ではDBと連携して 入力画面でクッキーを発行 setcookie("regist","hogehoge","有効期限を設定"); 確認画面 Cookieの値をDBと通信して確認 登録完了の画面で Cookieの値をDBと通信して確認 会員登録がうまくいっていれば setcookie("regist","","有効期限を巻き戻し"); として重複登録を防ぐ。 こんな感じで良いでしょうか。 間違い、誤解があれば教えてください よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
回答ありがとうございました