重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

自分でお問い合わせフォームを作ってみようと思い、
PHPでちょこちょこと色々なサイトを参考に作成してみています。
なかなか進まず、今つまずいているのが、sessionです。
お問い合わせを書き込んだ画面から確認画面に移行したいのですが、
移行した後の入力情報がうまく表示できません。

<?php
session_start();

$check = 1;
$em = "";

$name = $_POST["name"];
$mail = $_POST["mail"];
$tel = $_POST["tel"];
$naiyo = $_POST["naiyo"];

//エラーチェック
if ($name == "") {
$check = 0;
$em = "<li>お名前をご記入ください。</li>";
}

if ($mail == "" && $tel == "") {
$check = 0;
$em .= "<li>メールアドレスまたは、電話番号をご記入ください。</li>";
}

if ($mail != "") {
if (!ereg("[a-zA-Z0-9_.¥-]+@[a-zA-Z0-9_.¥-]+", $mail)) {
$check = 0;
$em .= "<li>メールアドレスをお確かめください。</li>";
}
}

if ($naiyo == "") {
$check = 0;
$em .= "<li>お問い合わせ内容をご記入ください。</li>";
}

if (!$check) {
$em = "<ul>".$em."</ul>";
}

else {

$_SESSION["name"] = $name;
$_SESSION["mail"] = $mail;
$_SESSION["tel"] = tel;
$_SESSION["naiyo"]= naiyo;

header("Location: confirm.php");
}
?>


確認ページ
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 10.0.0.0 for Windows">
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
名前 <?php echo($_SESSION["name"]); ?><br>
メールアドレス<?php echo($_SESSION["mail"]); ?><br>
</BODY>
</HTML>

全くの初心者ですので根本的に分かっておらず、教えがいがないかも
知れませんが...。すみません。よろしくお願いします。

A 回答 (1件)

>header("Location: confirm.php");


header関数で遷移させるときは自分でセッションIDを付与してやらないとセッションが継続できません。
例えば以下のようにしてみてください。

$location = sprintf("confirm.php?%s=%s", session_name(), session_id());
header("Location: {$location}");

余談ですがheader関数での遷移について、ブラウザによっては絶対URLで遷移先を指定しないとうまく動作しない場合もあります。
    • good
    • 0
この回答へのお礼

色々と規則があるんですね!やってみます!ありがとうございます。
昨日、PHPの絵本という初心者向けの参考書を買ってきたのですが、
分かりやすい分、詳しく載っていなくて...。
どうもありがとうございます!

お礼日時:2009/11/25 13:55

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