【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集

<?php
echo "ばなな";
echo '<form action="*****" method="*****">';
echo '<input type="hi**en" name="bnn" value="0">';
echo '<input type="submit" value="カートに入れる">';
echo '</form>';
?>
買い物カゴ
<?php
$a = array('ばなな','りんご','魚');
$s = $_POST['bnn'];
$k = $a[$s];
$_SESSION['ss'] = $k;
echo $_SESSION['ss'];
echo '<a href="ss.php">次へ</a>';
?>


上記でセッションしているはずなのに、違うページを経由してカートページに行くと何故か値が消えてます。どなたか問題点を御教授いただけないでしょうか。。。

A 回答 (3件)

>やはり確認ページがいるのでしょうか



いやダイレクトにもいけますが、確認ページはあった方がいいです。
ダイレクトで行く場合は、POSTされるデータともとのセッションデータが
競合しますので、POSTデータのチェックが必要です。

以下、入力→カゴ→別ページ→カゴで動作がわかると思います

//nyuryoku.php
<form action="kago.php" method="post">
<select name="bnn">
<option value="0">ばなな</option>
<option value="1">りんご</option>
<option value="2">魚</option>
</select>
<input type="submit" value="カートに入れる">
</form>

//kago.php
<?PHP
session_start();
$a = array('ばなな','りんご','魚');
$s = $_POST['bnn'];
print "ポストデータは".$_POST['bnn']."<br>\n";
$k = $a[$s];
if(!empty($k)) $_SESSION['ss'] = $k;
print "セッションデータは".$_SESSION['ss']."<br>\n";
?>
<a href="betu.php">別のページ</a>

//betu.php
<a href="kago.php">カゴに戻る</a>
    • good
    • 0

なにか勘違いがあるかと思うんですが


以下のようなフローをとっているか確認してみてください

//nyuryoku.php
<form action="kakunin.php" method="post">
<select name="bnn">
<option value="0">ばなな</option>
<option value="1">りんご</option>
<option value="2">魚</option>
</select>
<input type="submit" value="カートに入れる">
</form>
<a href="kago.php">kago</a>

//kakunin.php
<?PHP
session_start();
$a = array('ばなな','りんご','魚');
$s = $_POST['bnn'];
print "ポストデータは".$_POST['bnn']."<br>\n";
$k = $a[$s];
$_SESSION['ss'] = $k;
print "セッションデータは".$_SESSION['ss']."<br>\n";
?>
<a href="kago.php">kago</a>

//kago.php
<?PHP
session_start();
print "セッションにあるのは";
print $_SESSION['ss'];
?>
<a href="nyuryoku.php">nyuryoku</a>

この回答への補足

回数ありがとうございます。なるほど、やはり確認ページがいるのでしょうか。カートに入れるボタンを押したら、即カートページが表示されるサイトがありますが、あれはPHPじゃなくAJAXか何かですか?

補足日時:2012/01/26 19:17
    • good
    • 0

こんにちは。



えーと・・・、
ちゃんと
session_start()
してますか?

この回答への補足

しています。他に考えられる原因は何か無いでしょうか??

補足日時:2012/01/26 12:44
    • good
    • 0

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


おすすめ情報