
無料でPHPを使えるレンタルサーバーでのセッション変数の使い方について教えていただきたく投稿いたしました。PHPインフォで調べてみますと、セッション変数は使える模様でした。セッション変数の保存先をsession_save_pathを使って自分のフォルダに変更しようとしているのですが、上手く行きませんでした。セッションに関する情報は下記の通りです。この中で/var/lib/php/sessionというパスがありますが、デフォルトの状態ではこのsessionというフォルダに保存されると思うのですが、レンタルサーバーですので多数の人が使っていますので、これを自分が作成した自分だけのフォルダに保存したいのですが、どうすればよいのでしょう。色々と試してみましたが上手く保存できませんでした。ちなみにセッションの保存先のパスのしていを、w7.oroti.com/~****/*****/sessionと言うようにしてみたり、指定されたファイルの置き場所がpublic_htmlというフォルダなので、
public_html/sessionとしてsessionフォルダを作ってみたり、したのですが保存できませんでした。詳しい方がおりましたら宜しくお願いいたします。セッションでの管理ができないので、クッキーで対応しております。でも、勉強のためになんとかこの課題を克服したいと思っています。宜しくお願いします。
<?php
session_save_path("w7.oroti.com/~****/session");
session_start();
if(isset($_SESSION["cout"])){
$_SESSION{"count"]++;
}
else{
$_SESSION{"count"]=!;
}
?>
-------------------------------------------------------
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/lib/php/session /var/lib/php/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
No.4ベストアンサー
- 回答日時:
session_save_path()の場所は、
session_start()の前にしてください。
#ただ、最初の例示では、この順番になっているので
#そこが原因ではないような気がしますが。
この回答への補足
皆様ありがとうございました。解決しました。
保存ファルダをtempに変えて実行してみたら、きちんと保存されていました。FFFTPでもファイルが確認できました。理由は分かりませんが、すっきりしました。ご教授してくださった皆様に感謝いたします。ありがとうございました。
<?php
session_save_path("./temp");
session_start();
session_register("sesdata1");
$_SESSION[sesdata1]=10;
print "session_save_path = " . session_save_path() . "<br>";
print $_SESSION[sesdata1];
if(isset($_SESSION[sesdata1])){
echo "格納済み";
}
echo nl2br(shell_exec("ls -la ./session"));
?>
ありがとうございます。session_save_path()を、session_start()の前に持ってきました。でも、やはり^^・・・。見えません。
なんとなく、サーバー管理者がセキュリティー上間違って第3者に見られたりしないように、何か設定しているのかなという気がしてきているんですが・・・。サーバーさんはorotiさんです。
No.5
- 回答日時:
パーミッションは755とのことですが、これだと所有者しか書き込みできないですよね。
実行ユーザが誰かによってはこれでは書き込めないです。あと、FTPクライアントが最新の情報を取得できていない可能性もあるので、
echo nl2br(shell_exec("ls -la ./session"));
とでもして、sessionディレクトリの内容を出力してみた方が良いかもしれません。
それから本題からはそれますが、エラーを出力するかどうかは自分で設定できます。
.htaccessでPHPの設定ができるならそこでdisplay_errors、error_reportingなどの値を設定してみてください。
.htaccessでの設定が無理ならばini_set()でも設定できることになっています。
http://jp.php.net/manual/ja/errorfunc.configurat …
http://jp.php.net/manual/ja/ini.php#ini.list
この回答への補足
ありがとうございました。下の様に実行してみました。
<?php
session_save_path("./session");
session_start();
session_register("sesdata1");
$_SESSION[sesdata1]=10;
print "session_save_path = " . session_save_path() . "<br>";
print $_SESSION[sesdata1];
if(isset($_SESSION[sesdata1])){
echo "格納済み";
}
echo nl2br(shell_exec("ls -la ./session"));
?>
実行結果の出力は
session_save_path = ./session
10格納済みtotal 8
drwxrwxrwx 2 **** custom 4096 Sep 28 19:11 .
drwxr-xr-x 3 **** custom 4096 Sep 28 15:56 ..
-rw------- 1 apache apache 0 Sep 28 19:11 sess_t9gvcli1m0hdt7pkbf1u1pu8e5
となって、セッション変数は保存されていました。
デフォルトでは、session.save_path →/var/lib/php/session というパスになっています。もしかして、ここに保存されているような気がしています・・・。
フォルダのパーミッションは777にしました。
でも、FFFTPソフトでは見えないんです^^。
なんか、悔しいです。
No.3
- 回答日時:
print "session_save_path = " . session_save_path() . "<br>";
を、スクリプトに組み込んで、session_save_pathが変更されているか確認をしてみてはいかがでしょう。
あと、No.2の方が回答されているように、セッション格納用のフォルダのパーミッションを確認してください。
ありがとうございます。
以下の様に実行してみました。
実行(1)session.php
<?php
session_start();
session_save_path("./session");
session_register("sesdata1");
$_SESSION[sesdata1]=10;
print "session_save_path = " . session_save_path() . "<br>";
print $_SESSION[sesdata1];
?>
実行(1)の表示結果
session_save_path = ./session
10
実行(2)test.php
<?php
session_start();
print $_SESSION[sesdata1];
?>
実行(2)の表示結果
10
ということは、セッション変数は保存されて読み込まれている
と言うことになると思うのですが・・・。
でも、FFFTPソフトで保存先のsessionフォルダを覗いてみても
何もファイルがありませんでした。
sessionフォルダのパーミッションは755で、書き込み、読み込み、実行とも全てOKになっています。
レンタルサーバーということでセキュリティー上表示されないのでしょうか?やはり、分かりません・・・。なぜ、見えないのかな^^。
No.2
- 回答日時:
単純にパスの指定の仕方に誤りがあるのではないかと思います。
もしくはディレクトリのパーミッションに問題があるとかかもしれませんね。
何かエラーメッセ-ジは出ていませんか?
エラーメッセージを出力しない設定になっているのならば出力するように設定して再度確認してみるのが良いと思います。
あとはパスの指定は絶対パスで、可能ならば.htaccessなどで設定しておくのがよいかと思います。セッションの保存先が複数あっても管理が煩雑になるだけでしょう。特別な理由があるのならばこの通りではありませんが。
ありがとうございます。エラーが表示されると良いのですが、無料のレンタルサーバーでエラーの表示設定がoffになっているので、エラーが表示されないんです。このエラーが表示されないことにより、かなり苦戦していました。単純なスペルミスを見つけるだけでも、いつも一苦労しています。
No.1
- 回答日時:
session_save_pathの指定は、サーバ内の絶対パスか
相対パスを指定をしてください。
例えば、
session_save_path("./session");
とすれば、実行されるphpスクリプトと同階層にある
sessionディレクトリの中に、セッションファイルが
作成されると思います。
ありがとうございました。試してみました。実行するPHPファイルと
同階層にsessionフォルダを作成して下記の様に書き換えたのですが、やはりセッション変数が保存されたファイルはありませんでした・・・・。自分のPCのローカル上でテストではきちんと保存されるのですが。レンタルサーバーではそれが上手くいきません。でも、PHPinfoではsession enableとなっていますし・・・。
どうしても、これがクリアーできないです^^。
<?php
session_save_path("./session");
session_start();
if(isset($_SESSION["cout"])){
$_SESSION{"count"]++;
}
else{
$_SESSION{"count"]=!;
}
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで入力フォームでデータを確認表示画面まで送る流れを日本語で理解したいのです。 1 2023/05/29 19:12
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- PHP sessioncookieをではなくcookieを使わなければならない理由について… 4 2022/11/07 13:01
- PHP php 確認表示画面で値をSESSIONから取り出す理由の解釈は正しいでしょうか? 1 2023/06/09 17:39
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- 教えて!goo アプリで締め切った質問に追加回答の手続きは可能ですか? 2 2023/04/09 19:08
- Chrome(クローム) Chromeで検索するたびにウイルス感染(?)の警告がでます。 どうすれば解決しますか? 5 2023/02/06 14:40
- 防犯カメラ・監視カメラ・小型カメラ 以下に最適なドローン探してます 3 2022/06/16 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのセッションについて。
-
PHP 文字列 操作
-
以下プログラム(php)のバ...
-
セッションとGCに付いての検証
-
セッション管理について
-
PHPでpaypal支払後のセッション...
-
サブディレクトリを使っている...
-
セッションとヘッダーの順序に...
-
php→mysqlへの接続が出来ない(...
-
<A HREF="bg.php" target="_bl...
-
functionに括弧を使用するとエラー
-
3人の旅人が
-
このサイトの作成技術は何ですか?
-
設定した時間だけ実行されるプ...
-
コメントフォームの設定方法
-
O/Rマッパーの選定
-
HTMLについて質問ですが。
-
メールを受信で文字化け
-
メール送信できない
-
nl2bの代用関数を何か知ってい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHP session_destroyとsession...
-
$_SESSION 有効期限をブラウザ...
-
session_start();について
-
IE11でページ遷移時にセッショ...
-
ブラウザの戻る ページ遷移PHP...
-
セッションファイルの場所
-
formの複数action指定について
-
sessionの扱いがこれで合ってい...
-
レンタルサーバーのセッション...
-
教えてgooはPHPで作られている
-
PHPからリアルタイムにデータを...
-
session_start出来ません。
-
PHPでセッションが切れない
-
jqueryの$.ajaxでPHPに値を渡し...
-
phpのクッキーセッションの寿命...
-
自動ログアウト
-
検索結果に対する絞込み
-
fsockopenを使った証明書付きの...
-
PHPでセッション管理
-
phpのセッションについて
おすすめ情報