Php 如何正确设置逻辑以使用post变量

Php 如何正确设置逻辑以使用post变量,php,html,forms,logic,Php,Html,Forms,Logic,您好,我对每页标题上的以下代码有问题: 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'])

您好,我对每页标题上的以下代码有问题:

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>
此部分仅显示echo:会话已存在。整个帖子短语都不起作用。 页脚将根据某些变量嵌入。因此,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>
     ...';
改变你的形式

   <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>
需要发送的值

编辑1:

在我的系统中,这工作正常

        <?php
        session_start();

        if (!isset($_SESSION['a'])){
           $var='hi';
        $_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>
编辑2

再试一次。。。
        if (!isset($_SESSION['a'])){
           $var='hi';
        $_SESSION['a'] = $var;
        $var = $_SESSION['a'];
        }else{
            $var = $_SESSION['a'];
            $what = "some text";

            if (isset($_POST['one']) ){
                $var = "new input1";
                    $_SESSION['a'] = $var;
                echo "one was posted";
                print_r($_SESSION);
            }
            if (isset($_POST['two']) ){
                    $var = "new input2";
                    $_SESSION['a'] = $var;
                echo "two was posted";
                print_r($_SESSION);
            }   
        }
        ?>
        <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>

此处会话打印正确

此部分需要澄清。你到底想干什么

if (!isset($_SESSION['a'])){
...create the session from some variables...
$_SESSION['a'] = $var;
$var = $_SESSION['a'];
}else{
$var = $_SESSION['a'];
$what = "some text";
试试这个:

    <?PHP
session_start();
if (isset($_POST['one']) )
    {
      $_SESSION['a'] = "langauage one";
      echo "one was posted";
    }
    elseif (isset($_POST['two']) )
        {
            $_SESSION['a'] = "langauge two";
            echo "two was posted";
        }   
        else
            {
                if (!isset($_SESSION['a']))
                    {
                        $_SESSION['a'] = "default langauge";
                    }

            }
下面是SELECT的示例

表格:

Php:


它是存在的,但忘记添加问题。这似乎也是错误的,它不起作用。在我尝试之前,这篇文章没有价值。这是不必要的。html是在php解析器上设置的,因此它将回显html。您好,谢谢您回答这个问题。我尝试了编辑2,但根本不起作用。请检查您的php.ini以获取会话支持..:我将在会话中保存语言设置。因此,如果给定,它将从浏览器中读取首选语言,如果没有,它将手动设置默认语言。该设置保存在$var中。在下一步中,将设置会话,如果特定于post的id要更改会话中保存的语言,它将回显/header。此外,如果您尝试设置语言,使用a将更好地工作,并且需要更少的代码。
    <?PHP
session_start();
if (isset($_POST['one']) )
    {
      $_SESSION['a'] = "langauage one";
      echo "one was posted";
    }
    elseif (isset($_POST['two']) )
        {
            $_SESSION['a'] = "langauge two";
            echo "two was posted";
        }   
        else
            {
                if (!isset($_SESSION['a']))
                    {
                        $_SESSION['a'] = "default langauge";
                    }

            }
    <?PHP
    session_start();
    if (isset($_POST['language']) )
    {
      $_SESSION['a'] = $_POST['language'];
      echo "Language has ben set to ".$_POST['language'];
    }
    else
        {
            if (!isset($_SESSION['a']))
                {
                    $_SESSION['a'] = "default langauge";
                }

        }
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<select title="Please choose your Language" name="language">    
     <option value="langauage one">langauage one</option>
     <option value="langauge two">langauge two</option>
</select>
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">      
    <input type="submit" id="one" name="one" value='one'/><div>set one</div>
</form>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">  
    <input type="submit" id="two" name="two"value='two' /><div>set two</div>
</form>
<?php

    session_start();

    if (!isset($_SESSION['a'])){
        $var = 1;
        $_SESSION['a'] = $var;
        //$var = $_SESSION['a']; this is unnecessary 
    }else{
        $var = $_SESSION['a'];
        $what = "some text";

        if (isset($_POST['one']) ){
            $var = "one";
            $_SESSION['a'] = $var;
            echo "one was posted";
        }
        if (isset($_POST['two']) ){
            $var = "two";
            $_SESSION['a'] = $var;
            echo "two was posted";
        }   
    }

?>