こんにちは、すべてのページの先頭にある次のコードに問題があります。
session_start();
if (!isset($_SESSION['a'])){
...create the session from some variables...
$_SESSION['a'] = $var;
$var = $_SESSION['a'];
}else{
$var = $_SESSION['a'];
$what = "some text";
if (isset($_POST['one']) ){
$var = "new input";
$_SESSION['a'] = $var;
echo "one was posted";
}
if (isset($_POST['two']) ){
$var = "new input";
$_SESSION['a'] = $var;
echo "two was posted";
}
}
投稿するフォームはフッターに配置されます。
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="one" name="one"/><div>set one</div>
</form>
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="two" name="two"/><div>set two</div>
</form>
上記のコードの背後にあるロジックに何か問題があるようです。ページを呼び出して投稿の問題を送信すると、エコーされず、セッションが新しい値に変更されません。
私を助けてくれる人がいれば、本当に感謝しています。
どうもありがとう。
アップデート:
わかりました、コードは「else」部分まで完全に機能します:
else{
$var = $_SESSION['a'];
if (isset($_POST["one"]) ){
echo "post one was send";
}
if (isset($_POST["two"]) ){
echo "post en was send";
}
echo "session already exists.";
}
この部分は echo: session already exists のみを示しています。投稿フレーズ全体が機能しません。フッターは、いくつかの変数に応じて埋め込まれます。したがって、html のコンテンツ全体がエコーされます。
echo '...
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="one" name="one value="one"/><div>set one</div>
</form>
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<input type="submit" id="two" name="two" value="two"><div>set two</div>
</form>
</ul>
...';