2013-12-08 1 views
-1

그래서 저는 PHP에 익숙하지 않습니다. 그렇지 않으면 여기에 있지 않을 것입니다. 어쨌든 연습을 해보았으며 Shoutbox를 만들고 있습니다. 그러나 이전의 외침 이외의 다른 것을 저장할 수 없습니다. 그들은 배열의 첫 번째 항목에서 서로를 계속 교체하는 것처럼 보입니다. 내가 생각할 수있는 모든 것을 시도해 보았는데, HTML 폼 이름으로했을 수도 있지만 우둔한 것일 수 있습니다. 그럼, 여기를 보니 전구를 볼 때 누군가에게 전구의 순간이 있기를 바랍니다.

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 :

는 PHP입니다

<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

세션이 shoutbox-contents를 저장하는 가장 좋은 방법은 아님을 알고 있습니까? 세션 만 가지고 놀면 괜찮습니다. 그렇지 않으면 내용이 표시 될 것입니다. 새 브라우저를 열면 내용이 사라질 것입니다 (실제로는 자체적으로 고함 배열이 있습니다). –

+0

아, 그래, 난 그냥 일시적으로 그들을 저장할 수있는 대안을 찾고 있었어. 그렇지 않으면 나는 사용자/소리 치기 데이터베이스와 함께 SQL을 사용해야한다고 생각한다. –

관련 문제