带有$_SESSION和$_POST的阵列推送不起作用


Array push with $_SESSION and $_POST not working

所以我对PHP有点陌生,否则我就不会在这里了。不管怎样,我一直在努力练习,目前我正在建造一个Shoutbox。然而,除了之前的呼喊之外,我似乎什么都救不了。在数组的第一个条目中,它们似乎一直在替换对方。我尝试了我能想到的一切,可能是我对HTML表单名称所做的,但我一无所知。所以,我希望有人在看它的时候有一个发光的时刻

这是PHP:

session_start();
$_SESSION['shout'] = array();
array_push($_SESSION['shout'], $_POST['shout'][0]);
$arrayPlace = count($_SESSION['shout']);
foreach($_SESSION['shout'] as $key => $value)
    {
    $arrayPlace+=1;
    echo $arrayPlace;
    }

?>

以及HTML:

<form action="<?php $_SERVER['PHP_SELF'];?>" method="post">  
    <h2>Shoutbox Kevin</h2>  
<label for="text">Vul hier uw Shout! in:</label></br>
<input type="text" name="shout[]"/></br>
<input type="submit" value="Verzenden" />
</form>  

问题是:每次发布呐喊时,都会重新初始化呐喊数组:

$_SESSION['shout'] = array();

你应该只做一次(如果它不存在的话):

if (!isset($_SESSION['shout'])) {
    $_SESSION['shout'] = array();
}

BTW:如果你让用户一次只喊一条消息,你可以把$_POST['shout'][0]中的[0]name="shout[]"中的[]都留下。