Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyniki głosowania nie chcą zapisywać się do plików, na serwerze
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,

oto kod:
  1. <?php
  2. //SPRAWDZANIE CZY PLIK ISTNIEJE
  3. $plik = "kody.txt";
  4.  
  5. if (!file_exists($plik)) {
  6.  
  7. for ($s = 0; $s < 11; $s++){
  8. srand((double)microtime()*1000000);
  9. $kod=md5(uniqid(rand()));
  10.  
  11. if (strlen($kod)>=5) {
  12. $txt = substr($kod,0,5);
  13. }
  14. else{
  15. $txt = $kod;
  16. }
  17. $kody[] = $txt; // tutaj zapisujemy okrojony kod do tablicy
  18. }
  19.  
  20. file_put_contents("kody.txt", serialize($kody));
  21. }
  22. else{
  23. $kody = unserialize(file_get_contents('kody.txt'));
  24. }
  25. //---------------------------------------------------------------------
  26.  
  27.  
  28. if (isset($_POST['haslo']) && $_POST['glosuj']) {
  29.  
  30. if (in_array($_POST['haslo'], $kody)){
  31.  
  32. //ZAPISYWANIE WYNIKOW DO PLIKOW
  33. for($i = 1; $i < 10; $i++){
  34. $name = 'auto'.$i;
  35.  
  36. if ($_POST[$name] != ''){
  37. $filename = $_POST[$name].'.txt';
  38. $votes = 1;
  39.  
  40. if(file_exists($filename)){
  41. $votes = file_get_contents($filename);
  42. $votes++;
  43. }
  44.  
  45. file_put_contents($filename, $votes);
  46. }
  47. }
  48. $message = "dziękujemy za oddanie głosu";
  49. }
  50. else {
  51. $message = "wpisałeś niepoprawne hasło";
  52. }
  53. }
  54. //------------------------------------------------------------------
  55.  
  56. /*POKAZUJE SONDE*/
  57. echo '<p><map glosuj="glosuj">
  58. <form action="" method="post">
  59. <table align="center" style="text-align:center;">
  60. <tr>
  61. <td>1.<img src="./zdjecia/auto1.jpg" alt="" /></td>
  62. <td>2.<img src="./zdjecia/auto2.jpg" alt="" /></td>
  63. <td>3.<img src="./zdjecia/auto3.jpg" alt="" /></td>
  64. <td>4.<img src="./zdjecia/auto4.jpg" alt="" /></td>
  65. <td>5.<img src="./zdjecia/auto5.jpg" alt="" /></td>
  66. </tr>
  67. <tr>
  68. <td>6.<img src="./zdjecia/auto6.jpg" alt="" /></td>
  69. <td>7.<img src="./zdjecia/auto7.jpg" alt="" /></td>
  70. <td>8.<img src="./zdjecia/auto8.jpg" alt="" /></td>
  71. <td>9.<img src="./zdjecia/auto9.jpg" alt="" /></td>
  72. <td>10.<img src="./zdjecia/auto10.jpg" alt="" /></td>
  73. </tr>
  74. </table>
  75.  
  76. <div>
  77. <input type="radio" name="auto" value="auto1" checked="checked"/> nr 1.
  78. <input type="radio" name="auto" value="auto2" /> nr 2.
  79. <input type="radio" name="auto" value="auto3" /> nr 3.
  80. <input type="radio" name="auto" value="auto4" /> nr 4.
  81. <input type="radio" name="auto" value="auto5" /> nr 5.
  82. <input type="radio" name="auto" value="auto6" /> nr 6.
  83. <input type="radio" name="auto" value="auto7" /> nr 7.
  84. <input type="radio" name="auto" value="auto8" /> nr 8.
  85. <input type="radio" name="auto" value="auto9" /> nr 9.
  86. <input type="radio" name="auto" value="auto10" /> nr 10.
  87. </div>
  88.  
  89. <div><br/> <input type="text" name="haslo"/><input type="submit" name="glosuj" value="głosuj" /><br/>';echo $message;'</form></map></p>';
  90. ?>

jak pisałem w tytule, podczas głosowania na serwerze nie tworzą się pliki odpowiedzialne za 'zbieranie' głosów. Gdy tworze te pliki ręcznie również wyniki się do nich nie zapisują.

Być może warto nadmienić, że plik kody.txt, tworzący się za pierwszym razem przy załadowaniu strony, pojawia się dopiero gdy odświeżę serwer.

CHMOD katalogu i plików w nim to 777, dla pliku kody.txt, po utworzeniu automatycznym, to 644.
Go to the top of the page
+Quote Post
crocodillo
post
Post #2





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Rozumiem, że nie wyskakuje żaden błąd, pliki po prostu się nie zapisują. Sprawdź po kolei instrukcje warunkowe, tam raczej będzie coś nie tak. Odnośnie pliku kody.txt to nie wiem co oznacza odświeżanie serwera, chodzi o odświeżanie strony?
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%)
-----


nie, chodzi o to, że np. w Total Commanderze mam uruchomiony serwer FTP i jak otworzę stronę www z sondą nie widzę żeby pojawił się w TC plik kody.txt, dopiero jak odświeżę serwer... chociaż może to jest normalne, ale myślę że powinien pojawiać się od razu

Ten post edytował eremen 23.02.2012, 20:50:39
Go to the top of the page
+Quote Post
crocodillo
post
Post #4





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Nie używam total commandera, ale raczej trzeba chyba w każdym kliencie ftp odświeżyć, żeby zobaczyć zmiany.

Jeszcze jedno: nie musisz sprawdzać $kod ma więcej niż 4 znaki, bo md5() zwraca ciąg składający się z 32 znaków
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%)
-----


Cytat(crocodillo @ 23.02.2012, 20:57:30 ) *
Jeszcze jedno: nie musisz sprawdzać $kod ma więcej niż 4 znaki, bo md5() zwraca ciąg składający się z 32 znaków

a no racja (IMG:style_emoticons/default/smile.gif)

ale nie wiem w czym tkwi błąd w tym zapisywaniu plików...
Go to the top of the page
+Quote Post
crocodillo
post
Post #6





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Po załadowaniu kodów daj:

  1. var_dump($_POST);
  2. var_dump($kody);
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%)
-----


  1. //SPRAWDZANIE CZY PLIK ISTNIEJE
  2. $plik = "kody.txt";
  3.  
  4. if (!file_exists($plik)) {
  5.  
  6. for ($s = 0; $s <= 10; $s++){
  7. srand((double)microtime()*1000000);
  8. $kod=md5(uniqid(rand()));
  9.  
  10. $txt = substr($kod,0,5); //okrajamy kod do 5 znaków
  11.  
  12. $kody[] = $txt; // tutaj zapisujemy okrojony kod do tablicy
  13. }
  14.  
  15. file_put_contents("kody.txt", serialize($kody));
  16. }
  17. else{
  18. $kody = unserialize(file_get_contents('kody.txt'));
  19. }
  20. //---------------------------------------------------------------------
  21.  
  22.  
  23.  
  24. var_dump($_POST);
  25. var_dump($kody);
  26.  
  27.  
  28.  
  29. if (isset($_POST['haslo']) && $_POST['glosuj']) {
  30.  
  31. if (in_array($_POST['haslo'], $kody)){
  32.  
  33. //ZAPISYWANIE WYNIKOW DO PLIKOW


wkleiłem tak i wyskakuje zamiast ankiety coś takiego

wybierz auto: array(3) { ["auto"]=> string(5) "auto1" ["haslo"]=> string(5) "1446a" ["glosuj"]=> string(7) "głosuj" } array(11) { [0]=> string(5) "412c5" [1]=> string(5) "460f3" [2]=> string(5) "7784b" [3]=> string(5) "86620" [4]=> string(5) "d5374" [5]=> string(5) "d1bf6" [6]=> string(5) "2ffdb" [7]=> string(5) "1efdf" [8]=> string(5) "8bb02" [9]=> string(5) "ad889" [10]=> string(5) "af04f" }


a za drugim razem tak

array(0) { } array(11) { [0]=> string(5) "412c5" [1]=> string(5) "460f3" [2]=> string(5) "7784b" [3]=> string(5) "86620" [4]=> string(5) "d5374" [5]=> string(5) "d1bf6" [6]=> string(5) "2ffdb" [7]=> string(5) "1efdf" [8]=> string(5) "8bb02" [9]=> string(5) "ad889" [10]=> string(5) "af04f" }

Ten post edytował eremen 23.02.2012, 21:30:28
Go to the top of the page
+Quote Post
crocodillo
post
Post #8





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Nie przechodzi Ci przez ten warunek:
  1. if (in_array($_POST['haslo'], $kody)){


Hasła nie ma w tablicy $kody

Te 3 linijki co Ci prędzej podałem możesz skasować, to było tylko po to żebyś porównał sobie dane i zobaczył gdzie jest coś nie tak
Go to the top of the page
+Quote Post
eremen
post
Post #9





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

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


ale przecież zapisują się wcześniej tu
  1. file_put_contents("kody.txt", serialize($kody));


Cytat(crocodillo @ 23.02.2012, 21:40:11 ) *
  1. if (in_array($_POST['haslo'], $kody)){

no i muszą przechodzić przez ten warunek bo inaczej nie wyświetlał by się napis 'dziękujemy za oddanie głosu'
Go to the top of the page
+Quote Post
crocodillo
post
Post #10





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Już widzę co masz źle:

zamiast tego:

  1. //ZAPISYWANIE WYNIKOW DO PLIKOW
  2. for($i = 1; $i < 10; $i++){
  3. $name = 'auto'.$i;
  4.  
  5. if ($_POST[$name] != ''){
  6. $filename = $_POST[$name].'.txt';
  7. $votes = 1;
  8.  
  9. if(file_exists($filename)){
  10. $votes = file_get_contents($filename);
  11. $votes++;
  12. }
  13.  
  14. file_put_contents($filename, $votes);
  15. }
  16. }
  17.  

powinno być:

  1. $filename=$_POST['auto'].'.txt';
  2. $votes=1;
  3. if(file_exists($filename)){
  4. $votes = file_get_contents($filename);
  5. $votes++;
  6. }
  7.  
  8. file_put_contents($filename, $votes);


Ten post edytował crocodillo 23.02.2012, 21:54:05
Go to the top of the page
+Quote Post
eremen
post
Post #11





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

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


dziękuję (IMG:style_emoticons/default/smile.gif) pomogłeś mi (IMG:style_emoticons/default/smile.gif)

tworzy się ładnie plik tylko szkoda że za pierwszym głosowaniem plik jest pusty, a powinien mieć wartość 1 tak na logikę ;]

ale już sobie z tym poradziłem (IMG:style_emoticons/default/wink.gif)

Ten post edytował eremen 23.02.2012, 21:59:54
Go to the top of the page
+Quote Post
crocodillo
post
Post #12





Grupa: Zarejestrowani
Postów: 215
Pomógł: 44
Dołączył: 31.07.2011
Skąd: wrocław

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


Wiem, zapomniałem dopisać $votes=1. Zerknij na post wyżej już poprawione
Go to the top of the page
+Quote Post
eremen
post
Post #13





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

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


hehe sam poprawiłem to akurat było łatwe ;D
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 09:04