使用表单和会话发送数组(PHP)

时间:2013-10-22 13:06:42

标签: php arrays session

我看过这篇文章PHP, pass array through POST 但是不能让它发挥作用。

我的表格如下:

<applications><h2>Applications</h2><br><input type="checkbox" name="apps[]" value="gg">gg<br><br>
<input type="checkbox" name="apps[]" value="aa">aa<br><br>
<input type="checkbox" name="apps[]" value="bb">bb<br><br>
<input type="checkbox" name="apps[]" value="cc">cc<br><br>
<input type="checkbox" name="apps[]" value="dd">dd<br><br>
    </applications>

<servers>
<h2>Servers</h2><br><input type="checkbox" name="serv[]" value="servera">servera<br><br>
<input type="checkbox" name="serv[]" value="serverb">serverb<br><br>

</servers>
<countries1><h2>Countries</h2><br><input type="checkbox" name="country" value="uk">UK<br><br>
<input type="checkbox" name="country[]" value="germany">Germany<br><br>
<input type="checkbox" name="country[]" value="france">France<br><br>

</countries1>
<countries2>
<input type="checkbox" name="country[]" value="spain">Spain<br><br>
<input type="checkbox" name="country[]" value="sweeden">Sweeden<br><br>
</countries2>

<submitb>
<?
session_start();

$_SESSION['country']=$country;
$_SESSION['serv']=$serv;
$_SESSION['apps']=$apps;?>
<input type="submit" value="Update">

</submitb>

</form>

然后在我的检索端:

 $apps=$_SESSION['apps'];

     $countries=$_SESSION['country'];
     $servers= $_SESSION['serv'];
编辑:有人可以告诉我这里我做错了什么吗?我收到: 未定义的索引:第41行的C:\ wamp \ www \ notifcation system \ done.php中的应用程序

2 个答案:

答案 0 :(得分:4)

<?php
  $apps=$_SESSION['apps']; /* fix missing semicolon */
  $countries=$_SESSION['country'];
  $servers= $_SESSION['serv'];
?>

对于您的其他问题:

Undefined index: apps in ...

简单地表示未定义$apps。这不是错误,而是通知。

试试这个

if(!isset($_SESSION['apps'])){
   $apps=$_SESSION['apps'];
} // etc

答案 1 :(得分:2)

请注意session_start();应始终位于页面的第一行,然后您将在稍后开始添加内容。

session_start();也应该在您需要访问会话的每个页面上。

如上所述@subzero,永远不会忘记PHP中所有重要的;分号,这些东西可能会破坏您的代码。