ďťż
Podstrony
|
telcocafeWitam,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 |
|||
Sitedesign by AltusUmbrae. |