2012-04-01 2 views
2

PHP setcookie에 관한 한 가지 문제점이 있습니다.
사용자가 내 서버에 파일을 업로드하면 파일 이름을 저장할 쿠키가 설정됩니다.
setcookie ("user", $ filename, time() + 3600); 출력 코드about php setcookie

:
최근 업로드 : 에코의 $ _COOKIE [ "사용자"];
예 : 최근에 이미지를 업로드했습니다. abc.zip

사용자가 새 파일을 업로드하면 새 파일 이름이 이전 파일 이름을 포함합니다.
어떻게 할 수 있습니까? 이전 파일 이름은 다루지 않습니다.
예 :
당신이 최근에 업로드 된 이미지 :
def.zip

abc.zip ghi.zip
.........
.........


감사합니다. 여기

+1

쿠키가 아닌 세션에 저장하고 문자열 대신 배열을 사용해야합니다. – Corbin

+0

Corbin +1에 동의합니다. 쿠키에 저장하는 유일한 이유는 여러 세션에 걸쳐 유지하려는 경우입니다. –

+0

@heyman 질문은 가장 유용한 답변 옆에있는 눈금 표시를 확인하여 답변으로 표시됩니다. 자유롭게 답을 수락하고 질문 제목에서 "[해결]"을 제거하십시오. –

답변

0

당신이 가고,이 시도 :

$old_cookie = $_COOKIE["user"]; 
setcookie("user", $filename+"<br />"+$old_cookie, time()+3600); 
JSON 배열과 같은 직렬화 배열 구조에서
+0

고맙습니다. 나중에 다시 시험해 보겠습니다! – heyman

3

저장 파일 이름, : 당신은 특수 문자를 끝으로, 업로드 당 쿠키를 추가 할 수 있습니다

$files = !empty($_COOKIE['user']) ? json_decode($_COOKIE['user'], true) : array(); 
$files[] = $filename; 
setcookie('user', json_encode($files), time()+3600); 
+0

감사합니다. 나중에 다시 시험해 보겠습니다! – heyman

2

그렇게 "|" 화면을 작성할 때 분할됩니다. 다음

setcookie("cookie[".$i"."]", $filename); 

: 그리고 당신 저장

$uploaded = isset($_COOKIE['uploaded']) ? $_COOKIE['uploaded'] : ''; 
setCookie('uploaded', $uploaded . '|' . $newFileName,time()+3600); 

// when showing 

$uploaded = explode('|', $_COOKIE['uploaded']); 

foreach ($uploaded as $file) { 
    if(empty($file)) continue; 
    echo $file . '<br/>'; 
} 
+0

감사합니다. – heyman

0

배열에 이름을 파일

if (isset($_COOKIE['cookie'])) { 
    foreach ($_COOKIE['cookie'] as $name => $value) { 
    $number = htmlspecialchars($name); 
    $name = htmlspecialchars($value);   
    echo "File number $number : $value <br />\n"; 
    } 
    } 

그리고 당신은이 출력을 얻을 :

You recently uploaded images: 
File 1: abc.zip 
File 2: def.zip 
File 3: ghi.zip 
+0

감사합니다. 나중에 다시 시험해 보겠습니다! – heyman

0

당신은 session을 사용할 수를 . 쿠키를 직접 사용하는 것보다 간단하다는 것을 알았습니다.

//Start the session 
session_start(); 

//Save the uploaded filename 
$_SESSION["uploaded"][] = $filename; 

//Show uploaded files 
foreach($_SESSION["uploaded"] as $filename) 
{ 
    echo $filename."<br />"; 
}