【问题标题】:passing variables through session - php通过会话传递变量 - php
【发布时间】:2013-08-11 07:28:00
【问题描述】:

我是 php 新手,我正在尝试通过会话传递提交按钮的值。

到目前为止,我的代码如下所示:

main_page.php

     session_start();
     echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';
     $value_to_pass = $_POST[submit];
 echo $value_to_pass;
     $_SESSION['value'] = $value_to_pass;

}

details_page.php

session_start();
    echo $value_to_pass = $_SESSION['value'];
    echo $value_to_pass;

我需要它在 details_page.php 中打印 $value_to_pass

【问题讨论】:

  • 删除echo $value_to_pass = $_SESSION['value']; 中的回显,离开作业即可。其余代码看起来不错。
  • 这与问题无关,而是与您的示例相关:$value_to_pass = $_POST[submit]; 应该是:$value_to_pass = $_POST['submit'];

标签: php forms session variables session-variables


【解决方案1】:

首先你改变你的下面的代码

 echo '<form method="post" action="details_page.php">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
 echo '</form>';

下面有

 echo '<form method="post" action="details_page.php">';
 echo '<input type="hidden" name="ip_address" id="ip_address" value="'.$ip_address.'">';
 echo '<li><a href="ifconfig.php> <input type="submit" name=submit /></a></li>';
 echo '</form>';

这实际上是最佳实践。我也跟着这个。所以尽量避免在“提交”按钮中传递值。将其传递给“隐藏”字段。

然后得到如下值:-

 $value_to_pass = $_POST["ip_address"];

我认为它会帮助你。谢谢。

【讨论】:

    【解决方案2】:

    这很混乱

     session_start();
     echo '<form method="post" action="details_page.php">';
     echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
     echo '</form>';
     $value_to_pass = $_POST[submit];
     echo $value_to_pass;
     $_SESSION['value'] = $value_to_pass;
    

    考虑将其更改为这样,以便您的 POST 代码仅在实际提交表单时执行。如果没有此检查,您的 SESSION 将在未提交表单时被分配一个空白值,这可能会给您带来奇怪的结果。

     session_start();
     echo '<form method="post" action="details_page.php">';
     echo '<li><a href="ifconfig.php> <input type="submit" name=submit value='."$ip_address".' /></a></li>';
     echo '</form>';
    
     // Note also you need single quotes in the $_POST array around 'submit'
     if(isset($_POST['submit']))
     {
       $value_to_pass = $_POST[submit];
       echo $value_to_pass;
       $_SESSION['value'] = $value_to_pass;
     }
    

    并将 details_page.php 更改为

    session_start();
    // Do not echo this line, as you are echoing the assignment operation.
    $value_to_pass = $_SESSION['value'];
    var_dump($value_to_pass);
    

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2011-06-12
      • 1970-01-01
      相关资源
      最近更新 更多