PHP5で携帯サイトでクッキーが使えないという条件でセッションを使ってのformのやりとりでプログラミングしています。
クッキーが使えないのでPHPの先頭で
ini_set('session.use_trans_sid', '1');
としていて
入力フォームはセッションをして後は名前を入力するだけの
ごく普通です(簡単に書きます)。
session_start();
<form action=onamae.php method=post>
実際にはここに以下の1行が入る
<input type="hidden" name="PHPSESSID" value="XXXXXXXXXXXX" />
おなまえ<br><input type=text name=name size=15>
<input type=submit value="投稿する">
問題は受け取りですが
$_POST['name']だとうまく受け取れますが
$_SESSION['name']だと受け取れません。
入力するフォーム側で何らかの仕掛けが必要なのか分からないのです。
お手数ですが宜しくお願いします。
No.1ベストアンサー
- 回答日時:
> $_POST['name']だとうまく受け取れますが
> $_SESSION['name']だと受け取れません。
そちらが 書かれている HTMLを見る限り、極めて正常な動作をしているように見えます。
<form>で POST で name を送信しているのですから、$_POST でしか受け取れなくて正常かと。。
まぁ、$_REQUEST でも受け取れますが、細かい事は置いておくとして。
セッションは あくまでも サーバー側で持ってる変数で、
$_SESSION[name] = $_POST[name];
とか セッションに 書き込んでやらない限り 空っぽなはずです。
厳密には 空っぽではありませんが、別の話しなので置いておきます。
POST で 送ったものが そのまま セッションに入るのは 俺は知りません。
俺が知らないだけかもしれません。
あるなら誰か教えてください。
しょっぱなに $_SESSION = $_POST; ってのは 無しの方向で。
返答ありがとうございます。
やはり$_SESSION[name]に入れてやらないとダメなのですね。
複数ページでフォームデータをやりとりするなら
便利そうですね。
勉強になりました。
No.3
- 回答日時:
<?/*
え~と、#1です。
自分で読んでみて、意味不明な事を書いてるなと思ってしまいました。
俺が言いたかったのは、要は「セッションは入れてやんない限り、自動では入んないはずですよ」って事です。
なんか見当はずれな事をしている気もしたのですが、ゴミプロ作ってみました。
ソースは読めると思いますので、説明は はしょります。
何度か繰り返してみると、セッションの動きが分かるかと思います。
逆に 混乱しちゃったら すみません。
セッションで間違いやすいのは、session_destroy() しても、
その時点では $_SESSION の 中身は残ってるってトコですかね。
*/?>
<?
session_start();
$me = $_SERVER[PHP_SELF];
if ($_SERVER[QUERY_STRING] == "kill") {
session_destroy();
print "sessionを破壊ました。<hr>";
}
//------------------------------------------------
$Session = "";
foreach($_SESSION as $name => $value) {
$Session.= "[$name] $value<br>\n";
}
print "sessionの中身<hr>$Session<hr>\n";
//------------------------------------------------
if ($_POST) { $_SESSION[name] = $_POST[name]; }
$_SESSION[count]++;
print "
<form action=$me method=post>
name <input type=text name=name>
<input type=submit value='send'>
</form>
<hr>
<a href=$me?kill>sessionを破壊する。</a>";
?>
No.2
- 回答日時:
>POST で 送ったものが そのまま セッションに入るのは 俺は知りません。
>しょっぱなに $_SESSION = $_POST; ってのは 無しの方向で。
予期しないデータの上書きや、POSTで送られていないデータの削除が発生する可能性を考えると、あり得ない仕様という事で知らないのは当然だと思います。
私は、携帯の契約者ID(各社で呼び方は変わりますがSIMカード毎に割り当てられた、契約者番号のようなもの、機種変更しても番号は変化しない)をセッションIDとして割り当てて、セッション管理を実現しています。
※完全ではないものも、セッションハイジャック対策としては有効ではないかと思っています。
なるほど、セッションIDとして割り当てるのは
自分なりに細工できるのですね。
セッションハイジャックとかも聞いたことがありますが
なにかしら勉強してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのセッション有効期限について
-
URLのパラメータをGETのままで...
-
PHPのセッションについて
-
$_SESSION = array() と sessio...
-
ブラウザを閉じた後もセッショ...
-
ログインしたら他からログイン...
-
ログアウトする際にセッション...
-
【PHP】SESSION変数の競合を...
-
PHP cookieの値が更新されない...
-
vodafoneの古い携帯(P3P4など...
-
セッション ID とセッション名...
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
switch()文で値の大小比較
-
DTOとEntityの差は何ですか。
-
shシェルスクリプト 空白行の...
-
【C#】DataGridViewの最大列数...
-
バッチファイルでpingの結果を...
-
phpでcookieがうまく保存されない
-
C#で特定LANアダプタの状態を取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
URLのパラメータをGETのままで...
-
ログイン画面をはさんだ後、自...
-
PHPのセッション有効期限について
-
セッションのスコープ(有効範...
-
Sessionの上限について
-
セッション変数にパスワードを...
-
ブラウザを閉じた後もセッショ...
-
ログインしたら他からログイン...
-
別ブラウザ間でセッションの値...
-
Cookieを利用したユーザ管理
-
複数のサーバで運営する場合の...
-
学校の授業で困っていることが...
-
sessionとcookieの設定内容の区別
-
「ログイン機能を持たせる」説...
-
301リダイレクトはセッション引...
-
PHP cookieの値が更新されない...
-
セッション ID とセッション名...
-
sessioncookieをではなくcookie...
-
管理者としてログイン
-
セッションのタイムアウト管理
おすすめ情報