Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapisywanie liczby głosowań do pliku .txt, jako jedna cyfra, z każdym wejściem +1
eremen
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


Witam,

  1. if ($_POST['wybor1'])
  2. {
  3. // zmienna $dane, która będzie zapisana
  4. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  5. $dane = $_POST['wybor1'];
  6.  
  7. // uchwyt pliku, otwarcie do dopisania
  8. $fp = fopen("auto1.txt", "r+");
  9.  
  10. // blokada pliku do zapisu
  11. flock($fp, 2);
  12.  
  13. // zapisanie danych do pliku
  14. fwrite($fp, $dane);
  15.  
  16. // odblokowanie pliku
  17. flock($fp, 3);
  18.  
  19. // zamknięcie pliku
  20. fclose($fp);
  21. }


Legenda dla powyższego kodu:
wybor1 - name dla 'radio'
auto1.txt - plik w którym chciałbym zapisywać wynik

Proszę o pomoc, kod oczywiście nie działa jak chcę.

Pozdrawiam.

ehh, aż mi głupio że takie proste a pytam.. wink.gif
już poradziłem sobie tak:
  1. $auto1=file_get_contents("auto1.txt");
  2. $auto1++;
  3. $fileHandler=fopen("auto1.txt","w");
  4. fputs($fileHandler,$auto1);
  5. fclose($fileHandler);


ok, a jak chciałbym teraz zrobić tak że mam więcej opcji wyboru np
  1.  
  2. $auto1=file_get_contents("auto1.txt");
  3. $auto1++;
  4. $fileHandler=fopen("auto1.txt","w");
  5. fputs($fileHandler,$auto1);
  6. fclose($fileHandler);
  7.  
  8. $auto2=file_get_contents("auto2.txt");
  9. $auto2++;
  10. $fileHandler=fopen("auto2.txt","w");
  11. fputs($fileHandler,$auto2);
  12. fclose($fileHandler);


jak zrobić żeby wyniki zapisywały się odpowiednio do tych plików do których trzeba? na podstawie 'radio'

Ten post edytował eremen 19.02.2012, 11:52:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mortus
post
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Niech wartością (value) pola radio będzie nazwa pliku bez rozszerzenia:
  1. <input type="radio" name="sonda1" value="sonda1" />Sonda 1<br />

Wtedy w PHP nazwę pliku otrzymujesz ze zmiennej przesłanej przez formularz:
  1. $filename1 = $_POST['sonda1'] . '.txt';
  2. $auto1 = file_get_contents($filename1);
  3. // ...

Możliwe, że można to nieco zautomatyzować, ale za mało szczegółów znamy.
Go to the top of the page
+Quote Post
eremen
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


muszę zrobić sondę na 10 aut i to ma wyglądać tak, że wynik głosowania na każde auto będzie w osobnym pliku
wartość value ;] a ja myślałem że to zależy od wartości name


  1. $filename1 = $_POST['auto1'] . '.txt';
  2. $auto1 = file_get_contents($filename1);
  3. $auto1++;
  4. $fileHandler=fopen("auto1.txt","w");
  5. fputs($fileHandler,$auto1);
  6. fclose($fileHandler);
  7.  
  8. $filename2 = $_POST['auto2'] . '.txt';
  9. $auto2 = file_get_contents($filename2);
  10. $auto2++;
  11. $fileHandler=fopen("auto2.txt","w");
  12. fputs($fileHandler,$auto2);
  13. fclose($fileHandler);
  14.  


zrobiłem tak i wyskakują mi błędy : Warning: file_get_contents(.txt) [function.file-get-contents]: failed to open stream: No such file or directory in...

Ten post edytował eremen 19.02.2012, 12:08:18
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Bo ten skrypt w całości powinien być wykonywany po zatwierdzeniu formularza. Trzeba najpierw sprawdzić, czy formularz został zatwierdzony, ale to są podstawy podstaw.
Go to the top of the page
+Quote Post
eremen
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


wiem że to podstawy ale jestem z php łamaga wink.gif i jeśli mógłbyś to sprawdź proszę to:
  1. if (isset($_POST['glosuj']))
  2. {
  3. $filename1 = $_POST['auto1'] . '.txt';
  4. $auto1 = file_get_contents($filename1);
  5. $auto1++;
  6. $fileHandler=fopen("auto1.txt","w");
  7. fputs($fileHandler,$auto1);
  8. fclose($fileHandler);
  9.  
  10. $filename2 = $_POST['auto2'] . '.txt';
  11. $auto2 = file_get_contents($filename2); <<-w tym miejscu wyskakuje ten sam błąd
  12. $auto2++;
  13. $fileHandler=fopen("auto2.txt","w");
  14. fputs($fileHandler,$auto2);
  15. fclose($fileHandler);
  16. }


Ten post edytował eremen 19.02.2012, 12:17:36
Go to the top of the page
+Quote Post
mortus
post
Post #6





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Sprawdź, czy w $_POST jest w ogóle element o indeksie 'auto2' - użyj print_r($_POST). Jeśli nie ma, to znaczy, że użytkownik nie głosował na to auto... trzeba zatem sprawdzić czy użytkownik oddał głos:
  1. if(isset($_POST['auto2']) && $_POST['auto2'] != '') {
  2. // i tutaj odczytujemy i modyfikujemy zawartość pliku
  3. }
Go to the top of the page
+Quote Post
eremen
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 15.02.2012
Skąd: Głogów - Opole

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


dzięki wielkie, teraz wszystko ładnie działa smile.gif

już robiłem kiedyś formularz ale zwykły, mailowy - tutaj właśnie brakowało mi tego kodu sprawdzającego czy jest zaznaczone 'radio' wink.gif

  1. if(isset($_POST['auto1']) && $_POST['auto1'] != ''){
  2. $filename1 = $_POST['auto1'] . '.txt';
  3. $auto1 = file_get_contents($filename1);
  4. $auto1++;
  5. $fileHandler=fopen("auto1.txt","w");
  6. fputs($fileHandler,$auto1);
  7. fclose($fileHandler);
  8. }
  9.  
  10. ...
  11.  
  12. if(isset($_POST['auto10']) && $_POST['auto10'] != ''){
  13. $filename10 = $_POST['auto10'] . '.txt';
  14. $auto10=file_get_contents("auto10.txt");
  15. $auto10++;
  16. $fileHandler=fopen("auto10.txt","w");
  17. fputs($fileHandler,$auto10);
  18. fclose($fileHandler);
  19. }

a więc mam coś takiego, ale jest jeszcze jeden problem bo w ankiecie w której się zaznacza pola 'radio' zauważyłem że mogę zaznaczyć dowolną ich ilość jakby to był 'checkbox'
nie pomaga nawet jak próbowałem włożyć cały kod w funkcję if ($_POST['glosuj']) <<- 'glosuj' to przycisk submit

ok, metodą kombinuj aż się uda zauważyłem, że dla radio atrybuty name powinny być takie same, podstawy podstaw heh wink.gif

Ten post edytował eremen 19.02.2012, 18:09:03
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: 22.08.2025 - 06:36