2013-12-08 62 views
-1

所以我是一種新的PHP,否則我不會在這裏我猜。 無論如何,我一直在努力練習,而我目前正在建立一個喊話器。但是,我似乎無法保存除了以前的留言以外的任何其他內容。他們似乎在陣列的第一個入口處不斷替換對方。我嘗試了所有我能想到的東西,這可能是我用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> 
+0

哦,是的,我嘗試了沒有[0]鍵的$ _POST ['shout']。 –

回答

4

的問題是:你每次張貼留言時,你重新初始化喊陣列:

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

你應該只做一次(如果它不存在):

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

BTW:您可以留下無論是在$_POST['shout'][0][0]name="shout[]"[]如果允許用戶一次只喊一個消息。

+0

你是先生,是天才。我永恆的感激之情! –

+0

您知道會話不是存儲留言箱內容的最佳方式嗎?如果你只是在玩會話,那麼它可以脫離課程,但除此之外:只有你能看到內容,如果你打開一個新的瀏覽器,內容將會消失(或者實際上它有它自己的數組)。 –

+0

啊,是的,我只是在尋找一種替代方式來臨時存儲它們。否則,我想我應該用一個用戶/留言數據庫使用SQL。 –