ďťż

[PHP] Niedziałająca ankieta

       

Podstrony


telcocafe

Witam,
Mam pewnien problem.
Posiadam skrypt na ankietę który wyświetla się poprawnie, lecz bo wybraniu odpowiedzi głos nie jest liczony...
Poniżej zawartość plików sondy:

Skrypt pliku sonda.php
<?php if (isset($ankieta) && ($ankieta[0]=="tak" || $ankieta[0]=="nie")) { $plik=fopen("taknie.txt","r") or die("Nie mogę otworzyć pliku taknie.txt! "); $tytul=trim(fgets($plik,255)); $tak=trim(fgets($plik,255)); $nie=trim(fgets($plik,255)); fclose($plik); $plik=fopen("taknie.txt","w") or die("Nie mogę otworzyć pliku taknie.txt! "); flock($plik,2); fwrite($plik,$tytul."\n"); if ($ankieta[0]=="tak") $tak++; if ($ankieta[0]=="nie") $nie++; fwrite($plik,$tak."\n"); fwrite($plik,$nie."\n"); flock($plik,1); fclose($plik); } $kolortak="lightgreen"; $kolornie="darkorange"; $plik=fopen("taknie.txt","r") or die("Nie mogę otworzyć pliku taknie.txt! "); ?> <FORM name="ankieta" method="POST" action="index.php" target="_parent"> <TABLE border=0 cellpadding=0 cellspacing=0 style="border: solid 1px #000000; padding-left:5px; padding-right:5px; padding-top:2px; padding-bottom:2px"> <TR><TD bgcolor="#F4F2F2" class="modul"> <? echo trim(fgets($plik,255)); ?> </TD></TR><TR><TD class="modul"> <input type="radio" value="tak" name="ankieta[]" checked onfocus=blur()> TAK <input type="radio" value="nie" name="ankieta[]" onfocus=blur()> NIE </TD></TR> <TR><TD bgcolor="#F4F2F2" class="modul"> <input type="submit" onfocus=blur() style="background-color: #F4F2F2; font-family: Arial; font-size: 9px; width: 50; height: 17" value="GŁOSUJ"></TD></TR> </TABLE> </FORM> <?php $tak=trim(fgets($plik,255)); $nie=trim(fgets($plik,255)); $liczbatak=$tak; $liczbanie=$nie; fclose($plik); if ($tak!=0 || $nie!=0) { $x=100/($tak+$nie); $tak*=$x; $nie*=$x; $temptak=$tak-(int)$tak; $tempnie=$nie-(int)$nie; if ($temptak!=0 && ($temptak > 0.5 || $temptak < 0.5)) {settype($tak,integer); $tak+=0.5;} if ($tempnie!=0 && ($tempnie > 0.5 || $tempnie < 0.5)) {settype($nie,integer); $nie+=0.5;} echo "<TABLE border=0 width=300><TR style=\"font-family:Arial; font-size:11px\"><TD align=center>"; echo "Głosowano<font color=\"#000000\"> ".($liczbatak+$liczbanie)."</font>"; if (($liczbatak + $liczbanie) > 1) {echo " razy";} else {echo " raz";} echo ", w tym oddano:<br><font color=\"red\">$liczbatak</font> "; if ($liczbatak!=1) {echo " głosów";} else {echo " głos";} echo " na <B>TAK</B>, oraz <font color=\"red\">$liczbanie</font>"; if ($liczbanie!=1) {echo " głosów";} else {echo " głos";} echo " na <B>NIE</B>.<BR><BR>"; echo "<TABLE style=\"border:solid 1px #666666; font-family:Arial; font-size:10px\" border=0 cellspacing=0 cellpadding=0><TR>"; if ($tak!=0) {echo "<TD style=\"color:#000000\" align=center bgcolor=".$kolortak." width=".($tak*2).">".$tak."%</TD>";} if ($nie!=0) {echo "<TD style=\"color:#000000\" align=center bgcolor=".$kolornie." width=".($nie*2).">".$nie."%</TD>"; echo "</tr></TABLE>";} echo "<TABLE border=0 cellpadding=0 cellspacing=0><tr style=\"font-family:Arial; font-size:9px\">"; if ($tak!=0) {echo "<td width=".($tak*2)." align=center>TAK</td>";} if ($nie!=0) {echo "<td width=".($nie*2)." align=center>NIE</td>";} echo "</tr></table>"; echo "</TD></TR></TABLE>"; if ($tak==50) {echo "<br>Pół na pół ;)";} } else {echo "Jeszcze nikt nie głosował";} ?>

Zawartość pliku taknie.txt
Pytanie ? 0 0

Skrypt powinien edytować zawartość pliku taknie.txt ( górna liczba - głosy na tak, dolna liczba - głosy na nie ), lecz nie robi tego.

Pomóżcie :(

----------------------
// Edit:
Skrypt był testowany w programie WebSerw
Użytkownik fenekpl edytował ten post 07 wrzesień 2006, 16:58


Sprawdź najpierw uprawnienia do plików.

Ustawiłem prawa 777 i nadal nie działa.


Ustawiłem prawa 777 i nadal nie działa.
Wyjście: debuguj - sprawdzaj linia po linii czy to, co ma się tam robić działa tak jak powinno.



Nielepiej zrobic sondę w bazie danych, albo wziąść gotowce (jest ich pełno)??


Nielepiej zrobic sondę w bazie danych, albo wziąść gotowce (jest ich pełno)??
Świetna odpowiedź.... gdyby się zapytał jak najlepiej robić sondy. Ale on już sobie zrobił i ma z nią problem. A pytanie dotyczy rozwiązania problemu :) LOL

Co do problemu. Po zapisaniu do pliku zdejmujesz blokadę niewłaściwie. Numer zdjęcia blokady to 3, a nie 1 w funkcji flock();

Pewnie nie w tym jest problem twojej usterki, ale skoro już to zauważyłem to mówię.
Użytkownik kutar edytował ten post 08 wrzesień 2006, 14:43
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.