通过会话传递变量 - php

时间:2013-08-09 11:13:30

标签: php forms session variables session-variables

我是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

2 个答案:

答案 0 :(得分:0)

这非常令人困惑

 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_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);

答案 1 :(得分:0)

首先您更改以下代码

 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"];

我认为它会对你有所帮助。感谢。