php表单和会话分配在同一文件中


php form and session assignment in the same file

我正在尝试使用表单中的post将下拉列表中的表单数据作为会话保存在与表单相同的文件中

<?php
session_start();
if(isset($_SESSION['post-data']['surnameid']))
  unset($_SESSION['post-data']['surnameid']);
?>     

然后在html 的主体中

<form action="" method="post">
<?php
include 'connect.inc';
$sql = "SELECT surnameid FROM customer";
$result = mysql_query($sql);
echo "<select name='surnameid'>";
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['surnameid'] . "'>" . $row['surnameid'] .    </option>";
}
include 'close.inc';
?>
<br/> 
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php    
$_SESSION['post-data'] = $_POST;
echo $_SESSION['post-data']['surnameid'];
?>

$_SESSION的赋值不起作用

试试这个:当你放置回显时,你忘记了双引号

确保数据库中有行(我们不能测试),但我用预定义的数据进行了测试,这个版本可以使用

form.php

    <?php
session_start();
?>
<form action="" method="post">
<?php
echo "<select name='surnameid'>";
    echo "<option value='1'>test</option>";
    echo "<option value='2'>test2</option>";
?>
<br/> 
<input type="submit" name="Submit" value="Submit!" />
</form>
<?php    
if( !empty($_POST)){
    $_SESSION['post-data'] = $_POST;
}

if(isset($_SESSION['post-data']['surnameid']))
echo $_SESSION['post-data']['surnameid'];
?>

testrongession.php

<?php
session_start();
print_r($_SESSION['post-data']['surnameid']);
?>