Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapis do pliku z usuwaniem linii
Aimar
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.09.2006

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


Witam,
Napisałem pewien skrypt rejestracji (zew. formularz dla IPB) działający poprzez RSS ... trochę to prymitywne, ale działa... z tym że jest mały problem winksmiley.jpg

Wygląda to tak, że forum działa na .htapass więc nie ma dostępu do rejestracji, dlatego stworzyłem prosty formularz (na zew. serwerze), który wypełnione pola zapisuje do pliku .xml z formatowaniem na styl kanału rss.
Następnie w IPB uruchomiłem import danych z tego rss i wszystko wygląda pięknie, ale tylko przy pierwszym wpisie, ponieważ:


  1. <?php
  2. if (isset($_POST['username']))
  3. {
  4.  $blad='';
  5.  if (strlen($_POST['password'])<|| strlen($_POST['password'])>200) $blad.='Za krotkie haslo. Haslo Powinno zawierac min 7 znakow.<br>';
  6.  if (strlen($_POST['username'])<3) $blad.='Za krotka nazwa uzytkownika. Min to 4 znaki<br>';
  7.  if (!ereg ("^.+@.+..+$", $_POST['email'])) $blad.='Podano niepoprawny adres e-mail<br>';
  8.  if ($blad!='') info($blad,'red');
  9.  else
  10.  {
  11. $post = " <-- tresc -->";
  12. flock($rejestracje, LOCK_EX);
  13. fputs($rejestracje, "$post");
  14. flock($rejestracje, LOCK_UN);
  15. fclose($rejestracje);
  16. info('Formularz został zapisany.', 'green');
  17. return;
  18.  }
  19. }
  20. ?>


Dane są zapisywane od ostatniej linii... podczas gdy ostatnią linią musi być </channel></rss> ...
Zapisanie tego przy każdym kolejnym wpisie to nie problem, ale jak to usuwać z ostatniego wpisu przy dodawaniu nowego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Jim
post
Post #2





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 27.07.2005

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


najlepiej to by było od razu zapisać dane do bazy, przechowywanie danych, zwłaszcza haseł, emaili, nie jest zbyt bezpieczne.
Ale jak już nie ma innego wyjścia to dobrze zabezpiecz ten plik xml. Co do dodawania nowych rekordów: jeśli masz php5 Simple XML.
Go to the top of the page
+Quote Post
Aimar
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 11.09.2006

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


A jeśli php5 nie mam? :/
Na serwerze ciągle na php4 lecą, bo w php5 były jakieś błędy kodowania w połączeniu z jakąś tam wersją mysql ... nie wnikam w to, co tam było, ale niestety jest tylko php4 ;/

Da się to jakoś rozwiązać?
Go to the top of the page
+Quote Post
Jim
post
Post #4





Grupa: Zarejestrowani
Postów: 111
Pomógł: 0
Dołączył: 27.07.2005

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


  1. <?php
  2. $contents = '';
  3. while ($line = @fgets($fp,1024)) {
  4. if ( !is_numeric( strpos($line,'</channel></rss>' )) ) {
  5. $contents .= $line;
  6. }
  7. }
  8. $contents .= $nowy_rekord.'</channel></rss>';
  9. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 03:30