Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowe podwójne zapisywanie do pliku
Zawleka
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 1.08.2006

Ostrzeżenie: (0%)
-----


Witam.

Mam taki problem. Otóż mam dane pobierane z formularza, oraz kod, który ma zapisywać dane do pliku. Wszystko jest niby dobrze, ale co kilka wpisów dane są zapisywane 2x nie wiedzieć dlaczego.

Oto kod

  1. <?php
  2. $nazwa = $_SESSION['nazwa'];
  3.  
  4. $miasto = $_SESSION['miasto'];
  5.  
  6. $powierzchnia = $_SESSION['powierzchnia'];
  7.  
  8.  $file = 'db.rtq';
  9.  
  10.  $fp =fopen ($file, 'r' );
  11.  
  12.  $stareDane = fread($fp, filesize($file));
  13.  
  14.  fclose($fp);
  15.  
  16.  
  17. $dane = '
  18.  
  19. <!-- $nazwa -->
  20.  <tr><td class=kol_1> '.$nazwa.' </td>
  21.  <td class=kol_2> '.$miasto.' </td>
  22.  <td class=kol_3> '.$powierzchnia.' m<sup>2</sup></td>
  23.  </tr>
  24.  <!-- $nazwa --> ';
  25.  
  26.  $dane .= $stareDane;
  27.  
  28.  
  29.  $fp =fopen($file, 'w' );
  30.  
  31.  rewind($fp); 
  32.  
  33.  fputs($fp, $dane);
  34.  
  35.  fclose($fp);
  36. ?>


Oczywiście na początku pliku jest deklaracja rozpoczęcia sesji.

Gdzie leży problem ? Dlaczego dane czasmi dodają się 2x ? Dokładnie tworzą się dwa takie same wpisy.


Proszę o pomoc. Będę bardzo wdzięczny.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Twoja metoda bardzo mi się spodobała, chodzi o to generowanie unikalnego klucza

lecz samemu nie wiem ja kto zrobić a w tych tematach przykładów zabrakło na ten temat
Ale chodzi ci o generowanie unikalnego Identyfikatora? Bylo wiele razy. Najprosciej walnij md5 z time() (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (albo nawet bez md5)
Mozesz do tego dorzucic jeszcze np. IP kolesia i wiele innych.

edit: a tu masz jakis banalny skrypcik na GUID:
  1. <?php
  2. function GenerateGuid()
  3. {
  4.  mt_srand((double)microtime()*10000);
  5.  $charid = strtoupper(md5(uniqid(rand(), true)));
  6.  $uuid = substr($charid, 0, 8).'-'
  7.  .substr($charid, 8, 4).'-'
  8.  .substr($charid,12, 4).'-'
  9.  .substr($charid,16, 4).'-'
  10.  .substr($charid,20,12);
  11. return $uuid;
  12. }
  13. ?>
od razu mowie ze mozna lepiej
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.12.2025 - 07:45