![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 17.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich. Chciałbym przeanalizować kod skryptu sondy znalezionego w sieci, jednak u mnie w wersji autora nie działa.
Czyżby sam autor opublikował skrypt z błędem? W każdym razie nie potrafię go znaleźć. Objaw jest taki że skrypt nie wyświetla co prawda komunikatu o błędzie ale po naciśnieciu na TAK lub Nie sondy, w nagłówku przeglądarki widać jej reakcję(zmiana http://localhost/index.php na http://localhost/index.php?action=vote&ok=1#sonda). Natomiast obraz jest odświeżany ale nic się nie dzieje (oddane głosy: brak i TAk i NIE dalej na 50%) Czy ktoś zna rozwiązanie? Z góry dziękuję. [php:1:490d1a9613] <? if (!isset($action)) { $action="display"; } $base="sonda/data/poll.dat"; $data=file($base); $splitted=explode("||", $data[0]); $splitted[2]=trim($splitted[2]); $all=$splitted[1] + $splitted[2]; if($all>=2) { $result1=$all / $splitted[1]; $result1=100 / $result1; $result1=round($result1,0); $result2=100 - $result1; $votes=$all; } elseif($all==1) { if($splitted[1]==1) { $result1=100; $result2=0; $votes=1; } if($splitted[2]==1) { $result1=0; $result2=100; $votes=1; } } else { $result1=50; $result2=50; $votes="brak"; } $show_poll="<a name="sonda"></a><br><center>$splitted[0]<br><br> <table width=200 height=10 cellpadding=0 cellspacing=0><tr><td width=$result1*2 height=10 bgcolor=green background=sonda/img/poll_blue.gif></td> <td width=$result2*2 height=10 bgcolor=red background=sonda/img/poll_red.gif> </td></tr></table> <table width=250><tr> <td width=50%><p align=left><a href=sonda/vote.php?id=1>Tak</a> ($result1%)</p></td> <td width=50%><p align=right>($result2%) <a href=sonda/vote.php?id=2>Nie</a></p></td></tr></table> razem głosów: <b>$votes</b>"; switch ($action) { case "display": echo $show_poll; echo "</center>"; break; case "vote": echo $show_poll; if ($ok=="1") { echo "<br><b>Dziękuję. Twój głos został dodany.</b></center>"; } else { echo "<br><b><font color=red>Nie można głosować dwa razy!</font></b></center>"; } break; } ?> [/php:1:490d1a9613] oraz plik vote: [php:1:490d1a9613] <? //Nazwa strony (pliku), na której będzie umieszczona sonda, np. "index.php"; $site_name="index.php"; if ($voted=="1") { header("Location: ../$site_name?action=vote#sonda"); die(); } setcookie("voted", "1", time()+604800); $base="data/poll.dat"; $data=file($base); $splitted=explode("||", $data[0]); $splitted[2]=trim($splitted[2]); $splitted[$id]++; $str="$splitted[0]||$splitted[1]||$splitted[2]n"; $f=fopen("data/poll.dat", "w"); flock($f, 2); fputs($f, $str); flock($f, 3); fclose($f); header("Location: ../$site_name?action=vote&ok=1#sonda"); ?> [/php:1:490d1a9613] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) ![]() ![]() |
zamien $action na $_GET['action'],
to samo z $ok na $_GET['ok'] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 17.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Nie zauważyłem tych zmiennych. Znów te register_globals=off. Wielkie dzięki! Teraz działa O.K.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 17.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jeszcze jedno pytanie: Kawałek skryptu z przedstawionej wyżej całości:
[php:1:68bdb34d98] $str="$splitted[0]||$splitted[1]||$splitted[2]n"; $f=fopen("data/poll.dat", "w"); flock($f, 2); fputs($f, $str); flock($f, 3); fclose($f); [/php:1:68bdb34d98] zapisuje do pliku poll.dat taki ciąg: |||| a $splitted[0] oraz $splitted ([1] i [2]) powinna coś przecież między te kreski wstawiać? Innymi słowy nie zabardzo rozumię tą część skryptu: [php:1:68bdb34d98] $base="data/poll.dat"; $data=file($base); $splitted=explode("||", $data[0]); $splitted[2]=trim($splitted[2]); $splitted[$id]++; $str="$splitted[0]||$splitted[1]||$splitted[2]n"; $f=fopen("data/poll.dat", "w"); flock($f, 2); fputs($f, $str); flock($f, 3); fclose($f); [/php:1:68bdb34d98] Pozdrawiam |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
[php:1:614baf7d8c]
(...) $splitted[$id]++; (...) [/php:1:614baf7d8c] Co to za zmienna $id? -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 17.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
To nie $Id była przyczyną nie działania skryptu tylko moja nieuwaga. Trzeba było zamienić zmienną używaną przez ciasteczko na $_COOKIE['voted'] i skrypt działa.
Pozdrawiam, |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2025 - 15:56 |