2011-02-03 9 views
-1

ユーザーがログオンしているときにフォームからデータを保存するためにPHPセッションを開始しようとしましたが、ログオンした後にページに表示しています。これまでのすべての試みは失敗し、私は何が間違っているのか分かりません。あなたがどこに間違っているか教えていただけたら、これは私の手続きです。PHPセッションの難問

ステップ1

最初のページには以前のデータを受信したフォームがあります。このデータの一部はセッションに入る必要があります。他のものが出る前にページの一番上に表示されます。成功時に

ステップ3

<?php 

session_start(); 

$_SESSION['booking-form'] = array('GT_title' => $SEStitle, 'GT_actual_duration' => $SESactualduration, 'cal_startdate' => $SEScalstartdate, 'GT_picture' => $SESpicture, 'GT_total_duration' => $SEStotalduration, 'GT_total_dives' => $SEStotaldives, 'GT_total_price' => $SEStotalprice, 'GT_total_duration' => $SEStotalduration, 'GT_specifications' => $SESspecifications); 
?> 

ステップ2

ユーザがログインするには、ユーザーが今のbookinginitial.phpと呼ばれる別のページに向けられています。

ステップ4

予約初期の.phpのコードは次のとおりです。私はそれがどのように集めることができるの3つの可能性を設定しました

<?php 

session_start(); 

$_SESSION['booking-form']; 
    echo $_POST['SEStitle']; 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<?php $_SESSION['booking-form']; 

echo $_POST['SEStitle']; 
?> 

<?php 
     echo $_POST['SEStitle']; ?> 
</body> 
</html> 

明らかに間違っていることは明らかです。私がPHPで始まったばかりなので、私が気づいていないセッションの配列であるかどうか、私のベストを尽くしています。

ご協力いただければ幸いです。

素晴らしい、

+2

var_dump($ _SESSION)を試してみると、内部に – SergeS

答えて

0

これがあなたの悩みであるかどうかはわかりませんので、「私は3つの可能性を持って設定しました」という疑念について言及します。それ自体で

この行は何もしません:

$_SESSION['booking-form']; 

そして、私はあなたが実際に条件としてそれをラップするためのものと仮定します。構文は次のようになります。

<?php 
session_start(); 
print_r($_SESSION); ########### for debugging purposes ########### 

if ($_SESSION['booking-form']) { 

    echo $_POST['SEStitle']; 

    ?> 
    <!DOCTYPE html> 
    <html>... 
    <?php 
} 
elseif ($_SESSION['booking-form']) { 
    ... 

第2の条件は、おそらく他のものをチェックするためのものです。しかし、あなたのページが実際に何をしているのか分かりません。

+0

です。おそらく、私がしようとしていることを説明したのは、最高の象徴だろう。 1)クライアントはフォームを入力します。 2)暫定ページに提出して、注文した内容を確認します。 3)意味のあるフォームデータのクライアントログが失われます。セッションの使用は、フォームデータを保持し、ログインした後に別のページ(成功ページ)に表示することでした。ログインシステムはうまくいきました。単にこの日付を保持するだけです。以前はセッションを使用していませんでしたが、ドキュメントからこれを行う方法はわかりません。 –

+0

@RobinKnight:あなたは$ _SESSION配列の使用が実際にうまくいくと思います。私はここでの処理ロジックを心配していました。バイロン氏のように 'print_r()'テストを試してみてください。 – mario

+0

OK print_r()を受信側のページに配置しました。何も起こりません。私が言ったように、私はそれを置くはずの場所を知らない。ドキュメンテーションによると、すべてがより前のページの上部に表示されています。私はそこから何が見えるのかは分かりませんが、私はそこに置いて、他の場所で試してみました。何も起こりません。これは、私がそれを使う方法を知らないので、ドキュメンテーションは役に立たないので、私は尋ねます。ページ1「test」というページの入力値を保持したいと思います。 3ページに、私はそれを示したいと思います。それ、どうやったら出来るの。それから私は理解する必要があります。ありがとう。 –

2

あなたはセッション配列にアクセスする必要があります。フォームからフィールドを送信するとき

echo $_SESSION['booking-form']['SEStitle'];

$_POST配列のみが設定されています。

+0

OKチャプスが表示されますが、どこに行きますか?私は一時的に受け取った2つの場所にそれを入れましたが、何も起こりません。 –

+0

'print_r($ _ SESSION)'を実行してセッションの内容を確認します。あなたの配列をもう一度見てみると、実際には 'echo $ _SESSION ['予約フォーム'] ['GT_title'];' –