初めて自分の家と他人の家が違う、と意識した時

登録画面の作成にて
a.php(基本情報入力ページ)→
b.php(基本情報の確認、次に進む)→
c.php(詳細情報入力ページ)→
d.php(a.phpの基本情報とc.phpの詳細情報の確認)

としたいのですが、
d.phpにa.phpの情報を持っていくにはどうしたらいいでしょうか?

//d.php
<?php
if (!isset($_SESSION['join'])){
die('stop');
header('Location: a.php);
exit();
}


if (!isset($_SESSION['join'])){
die('stop');
header('Location: c.php);
exit();
}
?>

c.phpの情報はきちんと送られてきていますが、a.phpの情報は送られてきません。
よろしくお願いします。

A 回答 (3件)

#2さまの発言を補足すると、$_POSTに入っている内容にもよりますが


$_SESSION['join'] = $_POST;

$_SESSION['join'] .= $_POST;
にしないといけませんね。
Cの$_POSTにAの情報が入っていないと、上書きされるのでなくなっても当然ですね。
    • good
    • 0

なぜ、c.phpで



$_SESSION['join'] = $_POST;
header('Location: d.php);

となっているのでしょうか?c.phpにはどこから何がPOSTされるんですか?この時点で$_POSTが空っぽなら$_SESSION['join']は空になってしまいます。
    • good
    • 0

C->Dに来ているのであれば、AからのSessionが引き継がれているはずなのですが。


(ドメインが変わったり、Sessionなどを消したりしていなければ)

A,B,CでのSessionの扱いはどうなっておりますか?
また、session_start()をちゃんとつけておりますか?

この回答への補足

回答ありがとうございます。
session_start();はつけております。

//a.php
if(empty($error)) {
$_SESSION['join'] = $_POST;
header('Location: b.php);
exit();
}


//b.php
if (!isset($_SESSION['join'])){
die('stop');
header('Location: a.php);
exit();
}

if (!empty($_POST)) {
header('Location: c.php);
exit();
}

//c.php
if(empty($error)) {
$_SESSION['join'] = $_POST;
header('Location: d.php);
exit();
}


としております。
c.phpにも
if (!isset($_SESSION['join'])){
die('stop');
header('Location: b.php);
exit();
}
aを引き継ぐためにはこのような表記が必要なのでしょうか?

補足日時:2012/05/30 14:00
    • good
    • 0

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


おすすめ情報