
無料で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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP session_destroyとsession...
-
session_start();について
-
$_SESSION 有効期限をブラウザ...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
*.php、*.php3、*.phtmlの違い
-
Subversionのリポジトリの削除
-
CFileDialogの最初のディレクト...
-
ビットマップ画像を読み込むプ...
-
ボタンのクリック数を合計保存...
-
phpの条件文について
-
別ファイルの変数を呼び出した...
-
2つの画像ファイルが異なるファ...
-
ループの中で mailItemObj.Disp...
-
PHPを使ってRSSコードから画像...
-
SQLiteに画像を格納したい
-
PHPでメールを受信するには?
-
inputタグでphpを呼び出す際、...
-
「クラウドにアップロード」」...
-
さくらインターネットでメール...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
$_SESSION 有効期限をブラウザ...
-
PHP session_destroyとsession...
-
セッションとヘッダーの順序に...
-
ドコモのセッション機能について
-
PHPのセッションについて。
-
PHP 文字列 操作
-
以下プログラム(php)のバ...
-
sessionが分かりにくいです
-
セッションの変数の受渡しについて
-
session_start();について
-
セッションとGCに付いての検証
-
携帯サイトのセッションについて
-
さくらサーバーでsessionが使え...
-
セッションファイルの場所
-
phpでのログアウトについて
-
PHPでpaypal支払後のセッション...
-
セッション機能が使えない
-
セッションが変数が取得できません
-
PHPからリアルタイムにデータを...
-
セッション管理について
おすすめ情報