Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Lista mailingowa
Forum PHP.pl > Forum > Przedszkole
kamil_lk
Witam. Próbuje zrobić prostą listę mailingową opartą o pliki tekstowe. Niestety zwiększanie w pliku dodaj.php nie działa. Proszę o pomoc.

wprowadz.html
  1. <form action="dodaj.php" method="post">
  2. <input name="mail" type="text" /> <input type="submit" value="dodaj" />
  3. </form>


dodaj.php
  1. <?php
  2. $a= $_POST['mail'];
  3. $mail="$a\n";
  4. $otworz= fopen("maile.txt", 'a+');
  5. $dopisz= fwrite($otworz, $mail);
  6. fclose($otworz);
  7. $otworz2= fopen("ile.txt", 'r+');
  8. $odczyt= file_get_contents("ile.txt");
  9. $ile= $odczyt+1; // nie zwiększa się liczba
  10. $zapis= fwrite($otworz2, $ile);
  11. fclose($otworz2);
  12. ?>
piotrooo89
no ale co ty chcesz zwiększy? file_get_contents?
tog
a tak swoja droga to zmienne maja to do siebie, ze moga zmieniac swoja wartosc
wiec nei wiem po co $otworz2 zamiast zastapienie $otworz
kamil_lk
file_get_contents odczytuje mi liczbę jaka jest w pliku ile.txt
a potem tą liczbę chcę zwiększy o jeden
piotrooo89
pokaż jak masz podane dane w pliku? jak wygląda ten plik z adresami.
kamil_lk
maile.txt
  1. mail@o2.pl
  2. mail2@o2.pl
  3. mail3@o2.pl


ile.txt
  1. 0
piotrooo89
to tak, ja bym pobrał za pomocą file_get_contents do zmiennej dodał do niej nowy mail i zapisał za pomocą file_put_contents.
kamil_lk
Nie za bardzo czaje o co Ci dokładnie chodzi. Zapisywanie maili do pliku gra jak należy. Tylko problem leży w tym że zwiększanie nie jest zapisywane do pliku.
piotrooo89
aa dobra już rozumiem, więc liczba którą pobierasz z pliku jest stringiem (czyli tekstem) nie liczbą (czyli intem).
zrób rzutowanie na int:

  1. $l = file_get_contents('ile.txt');
  2. $liczba = (int)$l +1;
  3. echo $liczba;
kamil_lk
  1. <?php
  2. $a= $_POST['mail'];
  3. $mail="$a\n";
  4. $otworz= fopen("maile.txt", 'a+');
  5. $dopisz= fwrite($otworz, $mail);
  6. fclose($otworz);
  7. $otworz2= fopen("ile.txt", 'w+');
  8. $odczyt= file_get_contents('ile.txt');
  9. $ile= (int)$odczyt+1; // tutaj dokonałem zmiany
  10. $zapis= fwrite($otworz2, $ile);
  11. fclose($otworz2);
  12. ?>


ale nadal nie działa
tog
znalazlem cos takiego na jakiejs moejej stronce


$file=fopen("counter.n", "w"); // otwiera plik do zapisu
flock($file, 2); // blokuje do zapisu
fwrite($file, $ile); //zapisuje wartość
flock($file, 3); // odblokowuje plik
fclose($file); //zamyka plik

dziala w kazdym razie
chyba chodzi o ta funkcje flock
piotrooo89
chłopacy ale wy kombinujecie...

  1. $l = file_get_contents('ile.txt');
  2. $liczba = (int)$l +1;
  3. file_put_contents('ile.txt', $liczba);
  4. echo $liczba;


aha tak btw to pierw zapisuj w jednym pliku a później w drugim bo masz bajzel w kodzie.
piotrekkr
  1. $a = $_POST['mail'];
  2. $mail = "$a\n";
  3. file_put_contents("maile.txt", $mail, FILE_APPEND);
  4.  
  5. $ile = (int) file_get_contents('ile.txt');
  6. $ile++; // zwiększa się liczba
  7. file_put_contents('ile.txt', $ile);
  8.  


coś takiego?
kamil_lk
kod który jest na samym początku działa poprawnie.. okazało się że to wina dreamweavera, który pytał czy odświeżyć plik ile.txt a tego nie robił winksmiley.jpg
temat do zamknięcia smile.gif
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.