2013-01-04 61 views
-1

我是一名php初學者。我希望每當我運行我的項目創建一個獨特的文件,併爲此我使用uniqid()。每次當我的頁面被重新加載以顯示從服務器接收到的新數據時,它將創建具有統一名稱的新文件。但我想保留創建的第一個文件,直到應用程序關閉。需要一種方法來檢測頁面回發

這是我的代碼:

$uniq = uniqid(); 
if(!isset($_COOKIE['firsttime'])){ 
    setcookie('firsttime', 'no'); 
    $num = $uniq; 
    $myfile = 'file/'.$num.'.txt'; 
    if(file_exists($myfile) == FALSE){ 
    $fo = fopen($myfile, 'w')or die(); 
    $code = '<form action = "" method = "post">'; 
    fwrite($fo, $code, strlen($code)) ; 
    fclose($fo); 
    }else{ 
    unlink($myfile); 
    $file = new File(); 
    } 
} 

能someoane幫助我嗎?

+0

什麼不工作? – Madbreaks

+0

我寫的代碼工作的問題是它運行的每一個頁面重新加載,我需要它只運行第一次。我需要一種方式來運行此代碼,只有當它不是一個回傳 –

+0

確保cookie設置在你的瀏覽器中。 –

回答

1

看來,如果我正確閱讀,應該將cookie分配爲唯一名稱,然後使用該名稱,而不是每次都生成一個新名稱。 現在,你說你希望它運行,如果它不是回發。通過這個,我假設你的意思是發佈一個表單,所以你只運行一次,然後如果用戶在頁面上發佈表單,那麼你不會創建一個新的id,而是使用當前正在使用的id。 。

if(!isset($_POST['some_form_element'])) 
{ 
    if(isset($_COOKIE['firsttime'])){ 
     $myfile = 'file/'.$_COOKIE['firsttime'].'.txt'; 

    } 
    else 
    { 
     $uniq = uniqid(); 
     setcookie('firsttime', $uniq); 
     $myfile = 'file/'.$uniq.'.txt'; 
    } 

    if(file_exists($myfile) == FALSE){ 
     $fo = fopen($myfile, 'w')or die(); 
     $code = '<form action = "" method = "post">'; 
     fwrite($fo, $code, strlen($code)) ; 
     fclose($fo); 
    }else{ 
     unlink($myfile); 
     $file = new File(); 
    } 
} 

其中「some_form_element」是表單的任何元素,或者隱藏字段等,這可能是最好使用一些具體的事情,而不僅僅是!$ _ POST。

如果我對你的需求錯了,請告訴我。我可以更新。

相關問題