よろしくお願いします。
ホームページにSSLを導入しました。
通常のページとフォーム入力ページ(SSLを使用するページ)は、ホストが異なる為、セッションも異なります。
その為、通常ページで使用していたセッション変数が、フォーム入力ページでは、使う事が出来なくて困っています。
通常ページで使っていたセッション変数を丸ごと、フォーム入力ページへ安全に渡す方法はないでしょうか?
ご教授お願い致します。

A 回答 (1件)

>ホストが異なる為、セッションも異なります。


動いてるサーバも違いますか?だったらセッションを受け渡すのは無理です。

POSTとかで渡すのは無理ですか?
    • good
    • 0
この回答へのお礼

>動いてるサーバも違いますか?だったらセッションを受け渡すのは無理です。

やっぱりそうですよね
初めて導入したSSLが、指定されたサーバー上でフォーム送信をする事により、暗号化されるタイプのサービスだったので、今まで動いていたアプリケーションがSSL導入後動かなくなってしまい、ちょっと戸惑ってしまいました。
今までにセッション情報を、別のセッションに渡す事など考えてもいなかったので・・・

おっしゃるとおり、POSTで渡そうと思います。
回答ありがとうございました。

お礼日時:2007/02/02 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q非SSLページからSSLにセッション変数を引き渡すには

PHP4.3です
レンタルサーバーを借り、共有のSSLを利用します。

非SSLページは
http://***.com/a.php
というアドレスで、
SSLを使用したいページは
https://○○○○.ne.jp/~***-com/a.php
という指定にしてください。
とレンタルサーバーから指定されています。

PHPでセッション変数にユーザID等をもたせています。
非SSL同士のページでは引渡しがうまくいくのですが、
SSLのページには引数が引き渡せません。

どのようにしたらよろしいのでしょうか?

Aベストアンサー

自分、使った事ないのですが(==;

php.ini の
session.cookie_domain の設定
http://www.hizlab.net/app/portal.html
http://php.s3.to/man/ref.session.html


途中でdomainの設定を変更する場合? session_set_cookie_params()
http://php.s3.to/man/function.session-set-cookie-params.html

Q携帯サイトでセッションでのフォームで変数の受け取り方法

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']だと受け取れません。
入力するフォーム側で何らかの仕掛けが必要なのか分からないのです。
お手数ですが宜しくお願いします。

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...続きを読む

Aベストアンサー

> $_POST['name']だとうまく受け取れますが
> $_SESSION['name']だと受け取れません。

そちらが 書かれている HTMLを見る限り、極めて正常な動作をしているように見えます。
<form>で POST で name を送信しているのですから、$_POST でしか受け取れなくて正常かと。。
まぁ、$_REQUEST でも受け取れますが、細かい事は置いておくとして。

セッションは あくまでも サーバー側で持ってる変数で、
$_SESSION[name] = $_POST[name];
とか セッションに 書き込んでやらない限り 空っぽなはずです。
厳密には 空っぽではありませんが、別の話しなので置いておきます。
POST で 送ったものが そのまま セッションに入るのは 俺は知りません。
俺が知らないだけかもしれません。
あるなら誰か教えてください。
しょっぱなに $_SESSION = $_POST; ってのは 無しの方向で。

Qフォームに入力された内容を,次ページのフォームへ活かすには

 初心者ですのでよろしくお願いします。
 現在 php と MySQL でデータ検索システムを制作しております。
 データベースの検索は完成したのですが,利用者のために次のようなフォームを利用したいと思っています。

(1)フォームから検索語を入力したとします(例えば”北海道 小樽”)。
(2)するとデータベースから条件にあった内容が返されます(例えば小樽駅の写真など)。検索結果の上部には,検索入力フォームが配置しています(←ここがポイント)。
(3)しかし,検索結果が多すぎるため,新たに検索語を追加して検索しようとします。
(4)その時に,入力フォームには何も文字が入っていない状況になっています。ここに,今回の例であれば”北海道 小樽”というキーワードが残っていて,追加のキーワード入力を可能にしたいです。
 グーグルなどの検索エンジンでも,検索した後も入力フォームに検索キーワードが残っていますよね?それをしたいのですが,簡単そうでいろいろと本を調べても見つかりませんでした。どなたかご指導よろしくお願いします。
 ちなみに,HTMLだけで済めば良いのですが,phpでも勉強しますので,よろしくおねがいします。

 初心者ですのでよろしくお願いします。
 現在 php と MySQL でデータ検索システムを制作しております。
 データベースの検索は完成したのですが,利用者のために次のようなフォームを利用したいと思っています。

(1)フォームから検索語を入力したとします(例えば”北海道 小樽”)。
(2)するとデータベースから条件にあった内容が返されます(例えば小樽駅の写真など)。検索結果の上部には,検索入力フォームが配置しています(←ここがポイント)。
(3)しかし,検索結果が多すぎるため,...続きを読む

Aベストアンサー

formのactionがgetなら、
$_GET["検索Textのname値"]
formのactionがpostなら、
$_POST["検索Textのname値"]

で検索に入力された値を取得してきて、次の画面に渡せば良いかと・・。
例えばこんな感じで。(思いつきで書いたので間違ってるかも知れませんが・・)
<?php
if($_POST["word"] == null || (strcmp($_POST["word"] , "") == 0)) {
 echo("<input type='text' name='word' value='' />");
} else {
 echo("<input type='text' name='word' value='" . $_POST["word"] ."' />");
}
?>

QAからBへセッション変数の受け渡し(ページ間の移動うまくできない)

Aプログラム後半部分より
//下記をセッション変数に登録
//$_SESSION[セッション変数名] = 値;
$_SESSION[suid] = $uid;
print "uid = ".$_SESSION[suid]. "<br>"; //確認してます
//ページをadminpageに飛ばす
?><BR>
<a href="adminpage.php">認証されました。管理者ページへ</a>
</body>
</html>

Bプログラム前半部分/*管理者ページadminpage.php*/
session_start();
print "uid = ".$_SESSION[suid]. "<br>";//確認表示
// いきなりこのページにアクセスがあった場合
if( !$_SESSION[suid] ){
session_destroy();
header("Location: index.php");
exit;
}
?>
というプログラムですが、Bのプログラムの確認表示部分で"$_SESSION[suid]"が表示されません。Aプログラムでは表示されます。
プログラムの他の部分は個別に動作確認済みです。
エラーとして、ユーザーページの移動時(成功プログラム)に使った$_SESSION[suid]の値が表示されたりもします。原因を教えて下さい。

Aプログラム後半部分より
//下記をセッション変数に登録
//$_SESSION[セッション変数名] = 値;
$_SESSION[suid] = $uid;
print "uid = ".$_SESSION[suid]. "<br>"; //確認してます
//ページをadminpageに飛ばす
?><BR>
<a href="adminpage.php">認証されました。管理者ページへ</a>
</body>
</html>

Bプログラム前半部分/*管理者ページadminpage.php*/
session_start();
print "uid = ".$_SESSION[suid]. "<br>";//確認表示
// いきなりこのページにアクセスがあった場合
if( !$_SESSION[suid] )...続きを読む

Aベストアンサー

Aプログラムでも session_start() をしているでしょうか。

AとBで
print "<pre>";
var_dump($_SESSION);
print "</pre>";
とするとどうなるでしょうか。

> <a href="adminpage.php">認証されました。管理者ページへ</a>
Bプログラムにはリンクのクリックにより行っているようですね。
Bプログラムに移動したときにページを更新するとどうなるでしょうか。
(更新ボタン、もしくはF5)

Qテキストフォームの値を次のページのテキストフォームに入力しておくには?

僕はphpでデータベース検索の実装をしてる者です。


具体的には、検索ページにテキストフォームがあります。そしてそのフォームに「リボン」といった任意の値を渡してlike検索をします。

ページが飛んだ後に、この場合フォームに「リボン」と表示させたいのです。

グーグル等がそのような仕様になってる事だと思います。

それらをサンプルで示してくれると助かります。
勝手なお願いですが、よろしくお願いします。

Aベストアンサー

<?php
$keyword = $_POST['keyword'];
if(!empty($keyword))
{
// 検索処理
}
print("<form method='post' action='hoge.php'>");
print("<input type='text' name='keyword' value='".$keyword."'>");
print("<input type='submit' value='実行'>");
print("</form>");
?>

こんな感じで出力できます。
上記例ではprint文でタグ出力をしていますが、実際には
Smartyなどを使用して表示部を分離したほうがいいですね。


人気Q&Aランキング

おすすめ情報