Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Usunięcie z txt i usunięcie rozdzielnia explode
Forum PHP.pl > Forum > Przedszkole
CamerDisco
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.
Pyton_000
  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));
CamerDisco
  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.
Pyton_000
To teraz grzecznie włącz manual, przeanalizuj kod który dostałeś.
CamerDisco
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. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.