-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();
  } 
}

有人可以帮助我吗?

4

1 回答 1

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。

如果我对您的需求有误,请告诉我。我可以更新。

于 2013-01-04T23:22:57.940 回答