会话数组变量,表单检查和数组比较

时间:2015-07-31 11:27:41

标签: php arrays session

<html>
        <body>
<form method="post" >
    <h1> name</h1>
    <input type=text name="excel">
    </br>

    <input type=submit name="submit">

    </form><?php
session_start();
$_SESSION['people'] = array();
$var='';

if(isset($_POST['submit']))
    {

$var=$_POST['excel'];

    if (in_array($var, $_SESSION['people']))
  {
  echo "Already Exists.";
  }
else
  {
   array_push($_SESSION['people'],$var);
}
print_r($_SESSION['people']);

}
else
{
    session_destroy();
}


?>
</body>
</html>

在上面的代码中,我接受了人的名字,并希望将其存储在一个数组中。如果重复名称,则不能再将其添加到会话数组中。必须在会话数组的末尾添加连续的名称条目。

我希望输出为

Array ( [0] => Glenn)  // when first form entry is Glenn. 
Array ( [0] => Glenn [1] => Maggi) //when next form entry is Maggi. 

已经存在。添加其他名称。 //当在表单字段中再次输入名称Glenn或Maggi时。

1 个答案:

答案 0 :(得分:2)

您始终设置$_SESSION['people'] = array();。这将清空每次提交的会话值。添加支票 -

if(!isset($_SESSION['people'])) { // Check if the array is not set (for the first time)
    $_SESSION['people'] = array(); // Initialize the session value with empty array
}

并且始终尝试在页面开头添加session_start()