Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Usunięcie z txt i usunięcie rozdzielnia explode
CamerDisco
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.01.2014

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


Hej, w form przesyłam token, który jest zapisany w pliku tekstowym, jeśli ten kod jest prawidłowy to musi go usunąć z tego pliku.
  1. <form action="index.php" method="post">
  2. Kod zwrotny: <br /> <input type="text" name="kod"><br /><br />
  3. <input type="submit" value="Wyślij">
  4. </form>


  1. <?PHP
  2. $kod=$_POST['kod'];
  3. $OK = false;
  4.  
  5. $plik = fopen('kody.txt', 'r');
  6. if($plik){
  7. flock($plik, LOCK_SH);
  8.  
  9. while(!feof($plik) and !$OK){
  10. $linia = fgets($plik, 255);
  11. $dane = explode(',', $linia);
  12.  
  13. if($dane[0] == $kod){
  14. $OK = true; // Zakończenie pętli
  15. $user = $dane[0];
  16. unset($dane[0]);
  17. }
  18. }
  19.  
  20. flock($plik, LOCK_UN);
  21. file_put_contents($plik, '');
  22. fclose($plik);
  23. } else echo 'Brak uchwytu do pliku.';
  24.  
  25. // itp.
  26.  
  27. if($OK){
  28. echo "Kod zwrotny jest ok";
  29. } else {
  30. echo 'Twój kod zwrotny jest nieprawidłowy.';
  31. }
  32. ?>


Kod php skopiowałem z internetu, działał on na zasadzie login, hasło, nie wiem też za bardzo jak usunąć to explode aby nie rozdzielało tego, bo w 1 linijce będzie tylko 1 kod i tak dalej, a nie chcę bawić się w przecinki dla każdego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. <?php
  2.  
  3. $tokens = file('kody.txt', FILE_IGNORE_NEW_LINES);
  4. if($position = array_search($_POST['kod'], $tokens)) {
  5. unset($tokens[$position]);
  6. }
  7. file_put_contents('kody.txt', implode("\n", $tokens));
Go to the top of the page
+Quote Post
CamerDisco
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.01.2014

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


  1. <?PHP
  2. $kod=$_POST['kod'];
  3. $OK = false;
  4.  
  5.  
  6. $tokens = file('kody.txt', FILE_IGNORE_NEW_LINES);
  7. if($position = array_search($kod, $tokens)) {
  8. unset($tokens[$position]);
  9. }
  10. file_put_contents('kody.txt', implode("\n", $tokens));
  11.  
  12. if($tokens[0] == $kod){
  13. $OK = true;
  14. $user = $dane[0];
  15. }
  16.  
  17. if($OK){
  18. echo "Kod zwrotny jest ok";
  19. } else {
  20. echo 'Twój kod zwrotny jest nieprawidłowy.';
  21. }
  22. ?>


Nie za bardzo wiem, którą część kodu miałem wyciąć i wstawić twoją, przy takim kodzie co wysłałem nie działa.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


To teraz grzecznie włącz manual, przeanalizuj kod który dostałeś.
Go to the top of the page
+Quote Post
CamerDisco
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 13.01.2014

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


Fakt, jestem leniem, po przeczytaniu wszystko działa jak należy, wielkie dzięki wink.gif

Za wcześnie oceniłem swoje wyniki pracy, okazało się, że czyta tylko ostatnią linijkę kodów, jeśli podany kod będzie ostatni z kodów to będzie ok, inaczej wyjdzie kod nieprawdiłowy.
Poza tym to trochę źle się sprecyzowałem wcześniej, bo chcę żeby każdy kod był w nowej linii, więc po prostu usunąłem
  1. FILE_IGNORE_NEW_LINES
czy to ma związek z tym?
Wygląda to tak:
  1. $tokens = file('kody.txt');
  2.  
  3.  
  4. if($position = array_search($kod, $tokens)) {
  5. unset($tokens[$position]);
  6. $OK = true;
  7. }
  8. file_put_contents('kody.txt', implode("\n", $tokens));
  9.  
  10. if($OK){
  11.  
  12. }


Ten post edytował CamerDisco 24.08.2016, 17:18:38
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 - 05:21