-1

PHP初心者です。プロジェクトを実行するたびに一意のファイルを作成したいので、このために uniqid() を使用しました。サーバーから受信した新しいデータを表示するためにページがリロードされるたびに、unic 名で新しいファイルが作成されます。しかし、アプリケーションが閉じられるまで、作成された最初のファイルを保持したいと思います。

これは私のコードです:

$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を一意の名前に割り当て、毎回新しいCookieを生成する代わりにそれを使用する必要があるようです。ここで、ポストバックでない場合は実行する必要があると言います。これは、フォームの投稿を意味すると想定しているため、フォームを1回だけ実行し、ユーザーがフォームをページに投稿した場合、新しい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 に答える