Autor | Zpráva | ||
---|---|---|---|
stepi15 Profil |
#1 · Zasláno: 4. 5. 2008, 20:53:14
Warning: Division by zero in /home/www/scorpions.cz/subdomains/rstools/lang/pokus_cz.php on line 49
nevite co je to za chybu vznike kdyz do vzorv¨ce je promena -1 nejspis http://rstools.scorpions.cz/index.php?link=pokus kod <center> <form action="" method="post"> RuneScape Name: <input name="username" value="<?=$_POST["username"]?>" type="text" maxlength="12" size="12"> <input type="submit" value="Look Up" name="sub"> <?php if($_POST["sub"]=="Look Up") { ?> <hr> <b>Personal scores for <?=$_POST["username"]?></b> <hr> </center> <?php if($_POST["sub"]=="Look Up") { $username = strtolower($_POST["username"]); $level = file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=$ username"); $rank = file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=$ username"); $xp = file_get_contents("http://hiscore.runescape.com/index_lite.ws?player=$ username"); function dajlvl($trojka) { $trojka = explode(",",$trojka); return $trojka[1]; } function dajxp($trojka) { $trojka = explode(",",$trojka); return $trojka[2]; } function dajrank($trojka) { $trojka = explode(",",$trojka); return $trojka[0]; } $level = explode("\n",$level); $rank = explode("\n",$rank); $xp = explode("\n",$xp); //-------------------------------------------------------------------- ---- function experience($L) { $a=0; for($x=1; $x<$L; $x++) { $a += floor($x+300*pow(2, ($x/7))); } return floor($a/4); } $attack_1= dajlvl($level[1]) + 1; $attack_xp1=experience($attack_1); $attack_2= dajlvl($level[1]); $attack_xp2=experience($attack_2); //__________attack__________\\ $attack_lvl = dajlvl($level[1]); $attack_rank = number_format (dajrank($rank[1]),0,'.',' '); $attack_xp = number_format (dajxp($xp[1]),0,'.',' '); $attack_progress = round(100-((($attack_xp1 - dajxp($xp[1])) / ($attack_xp1 - $attack_xp2))*100)); $attack_next = number_format ($attack_xp1 - dajxp($xp[1]),0,'.',' '); if(dajlvl($level[1]) == -1) $attack_lvl = "1"; if(dajlvl($level[1]) == -1) $attack_rank = "Not Ranked"; if(dajlvl($level[1]) == -1) $attack_xp = "- -"; if(dajlvl($level[1]) == -1) $attack_progress = "0"; if(dajlvl($level[1]) == -1) $attack_next = "- -"; if(dajlvl($level[1]) == 99) $attack_next = number_format (13034431 - dajxp($xp[1]),0,'.',' '); if(dajlvl($level[1]) == 99) $attack_progress = 100; } ?> <!-------------------- Skills --------------------> <table border="1" cellspacing="0" cellpadding="2" align="center" style="border-collapse: collapse" bordercolor="#222222"> <tr> <td colspan="2" align="center">Skill</td> <td align="center">Level</td> <td align="center">Rank</td> <td align="center">XP</td> <td align="center">Progress To Next Level</td> <td align="center">XP To Next Level</td> </tr> <tr title="Attack"> <td align="center" title="icon"><img src="img/skill_ico/attack.gif"></td> <td align="left" title="skill">Attack</td> <td align="center" title="level"><?=$attack_lvl?></td> <td align="center" title="rank"><?=$attack_rank?></td> <td align="center" title="xp"><?=$attack_xp?></td> <td align="center" title="progress"><img src="img/bar/<?=$attack_progress?>.gif" border="0"></td> <td align="center" title="xp to next lvl"><?=$attack_next?></td> </tr> </table> </center> <?php } ?> </form> |
||
nightfish Profil |
#2 · Zasláno: 4. 5. 2008, 20:57:30
nevite co je to za chyb
víme je to upozornění, že se dělí nulou... |
||
TSD Profil |
#3 · Zasláno: 4. 5. 2008, 21:03:18
Spočítal sis, o který řádek se jedná?
Já jsem to za tebe udělal a jde o toto: $attack_progress = round(100-((($attack_xp1 - dajxp($xp[1])) / ($attack_xp1 - $attack_xp2))*100)); |
||
Adam Zábranský Profil |
#4 · Zasláno: 5. 5. 2008, 07:09:23
stepi15
jestli je to ta řádka, kterou psal TSD, tak buď neexistují proměnné attack_xp1 a attack_xp2 nebo se jejich rozdíl rovná 0. Být tebou tak bych si to ošetřil... třeba if($attack_xp1 - $attack_xp2 <> 0) { $attack_progress = round(100-((($attack_xp1 - dajxp($xp[1])) / ($attack_xp1 - $attack_xp2))*100)); }else { $attack_progress = 0; } $attack_progress = ($attack_xp1 - $attack_xp2 <> 0 ? round(100-((($attack_xp1 - dajxp($xp[1])) / ($attack_xp1 - $attack_xp2))*100)) : 0); |
||
Joker Profil |
#5 · Zasláno: 5. 5. 2008, 08:31:44
Adam Zábranský
Anebo to samé, jen kratším zápisem: $attack_progress = ($attack_xp1 == $attack_xp2) ? 0 : round(100-((($attack_xp1 - dajxp($xp[1])) / ($attack_xp1 - $attack_xp2))*100)); Každopádně rada: Pokud máte problém se skriptem a v chybové hlášce je napsané, kterého řádku se to týká, označte i v dotazu ten řádek. |
||
stepi15 Profil |
#6 · Zasláno: 5. 5. 2008, 14:59:46
diky zkusim to jsem zacatecnik tak sjem rad ze jsem se dopracoval az sem
|
||
Časová prodleva: 2 roky
|
|||
Leni Profil * |
#7 · Zasláno: 13. 12. 2009, 23:52:47
Mám podobný problém. Můžete mi poradit co s tím? Vertrigo mi vypisuje tuhle chybu -
Warning: Division by zero in C:\VertrigoServ\www\hlidac.php on line 41 Warning: Division by zero in C:\VertrigoServ\www\hlidac.php on line 47 $content1 = "<table style=\"padding: 0px;\" width=\"100%\"><tbody><tr><td class=\"bottom\" style=\"padding: 5px;\" align=\"center\" width=\"50%\"><table class=\"main\" height=\"75\" width=\"100%\"><tbody><tr valign=\"top\"><td style=\"padding: 0px;\" align=\"center\" width=\"75\"><div style=\"overflow: hidden; width: 75px; height: 75px;\"><img src=\"$avatar\" width=\"75\"></div></td><td> <table class=\"main\"><tbody><tr><td class=\"embedded\" style=\"padding: 5px;\" width=\"80%\"><a href=\"account-details.php?id=$arr[hlidacid]\"><b>$arr1[username]</b></a> ($class)<br><br>Ratio: <b>".round($arr1['uploaded']/$arr1['downloaded'], 2)."</b>$lacc<br> </td> <td class=\"embedded\" style=\"padding: 5px;\" width=\"20%\"><br><a href=\"takedelhlidac.php?delid=$arr[hlidacid]\">Smazat</a><br><br><a href=\"account-inbox.php?receiver=$fname\">Poslat PM</a></td></tr> </tbody></table></td></tr></tbody></table> </td>"; $content2 = "<td class=\"bottom\" style=\"padding: 5px;\" align=\"center\" width=\"50%\"><table class=\"main\" height=\"75\" width=\"100%\"><tbody><tr valign=\"top\"><td style=\"padding: 0px;\" align=\"center\" width=\"75\"><div style=\"overflow: hidden; width: 75px; height: 75px;\"><img src=\"$avatar\" width=\"75\"></div></td><td> <table class=\"main\"><tbody><tr><td class=\"embedded\" style=\"padding: 5px;\" width=\"80%\"><a href=\"account-details.php?id=$arr[hlidacid]\"><b>$arr1[username]</b></a> ($class)<br><br>Ratio: <b>".round($arr1['uploaded']/$arr1['downloaded'], 2)."</b><br>Naposledy přihlášen $arr1[last_access]<br> </td> <td class=\"embedded\" style=\"padding: 5px;\" width=\"20%\"><br><a href=\"takedelhlidac.php?delid=$arr[hlidacid]\">Smazat</a><br><br><a href=\"account-inbox.php?receiver=$fname\">Poslat PM</a></td></tr> </tbody></table></td></tr></tbody></table></td></tr></tbody></table>"; if ($i == "1") { echo $content1; $i = "2"; }else { echo $content2; $i = "1"; } } if ($i == "2") { echo "<td class=\"bottom\" width=\"50%\"> </td></tr></tbody></table>"; Řádek 41 je tento - <table class=\"main\"><tbody><tr><td class=\"embedded\" style=\"padding: 5px;\" width=\"80%\"><a href=\"account-details.php?id=$arr[hlidacid]\"><b>$arr1[username]</b></a> ($class)<br><br>Ratio: <b>".round($arr1['uploaded']/$arr1['downloaded'], 2)."</b>$lacc<br> </td> Řádek 47 je tento - <table class=\"main\"><tbody><tr><td class=\"embedded\" style=\"padding: 5px;\" width=\"80%\"><a href=\"account-details.php?id=$arr[hlidacid]\"><b>$arr1[username]</b></a> ($class)<br><br>Ratio: <b>".round($arr1['uploaded']/$arr1['downloaded'], 2)."</b><br>Naposledy přihlášen $arr1[last_access]<br> </td> |
||
nightfish Profil |
#8 · Zasláno: 14. 12. 2009, 06:35:25
Leni:
„Mám podobný problém. Můžete mi poradit co s tím?“ chyba při dělení nulou se odstraňuje pokaždé stejně - uprav si kód tak, abys nulou nedělila (tzn. buď přidat podmínku na nulovou hodnotu a nebo nějak zajistit, že proměnná nikdy nulovou hodnotu nenabude) |
||
Leni Profil * |
#9 · Zasláno: 14. 12. 2009, 17:22:19
nightfish:
Můžeš mi prosím napsat jak bych to měl upravit? Zkoušel jsem to různě podle té rady co je výše ale nějak se mi to nedaří. V tomhle se skoro nevyznám. |
||
Majkl578 Profil |
#10 · Zasláno: 14. 12. 2009, 17:28:23 · Upravil/a: Majkl578
[#9] Leni
round($arr1['uploaded']/$arr1['downloaded'], 2) nahradit za: ($arr1['downloaded'] ? round($arr1['uploaded'] / $arr1['downloaded'], 2) : 0) |
||
Leni Profil * |
#11 · Zasláno: 14. 12. 2009, 17:34:25
Parády díky moc. Hláška je pryč.
|
||
Časová prodleva: 16 let
|
0