|
You last visited: Today at 16:28
Advertisement
Kleines PHP-Problem
Discussion on Kleines PHP-Problem within the Web Development forum part of the Coders Den category.
02/22/2014, 19:27
|
#1
|
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
|
Kleines PHP-Problem
Hallo,
und zwar zeigt es mir auf meiner Seite die ganze Zeit irgendwelche Probleme an.
Aber nur in der profile.php.
Problem I:
Code:
Warning: Division by zero in /var/customers/webs/Benny/profile.php on line 73 Call Stack: 0.0006 792176 1. {main}() /var/customers/webs/Benny/profile.php:0
In Zeile 73 steht das:
PHP Code:
$perc = $diffE / $expR['EXPperPerc'];
Problem II:
Code:
Warning: Division by zero in /var/customers/webs/Benny/profile.php on line 260 Call Stack: 0.0006 792176 1. {main}() /var/customers/webs/Benny/profile.php:0
In Zeile 260 steht das:
PHP Code:
$Perctod = round($expfromysttotod/$expR['EXPperPerc'],2);
Was bedeuten diese Fehler und wie behebe ich sie? Es scheint wohl irgendetwas mit dem ['EXPperPerc'] zu tun zu haben...
Grüße
|
|
|
02/22/2014, 19:30
|
#2
|
elite*gold: 48
Join Date: Oct 2011
Posts: 117
Received Thanks: 5
|
Durch 0 teilen ist auch sehr schlau.
Hast du dir den Fehler mal genau angeschaut?
Zumindest scheint $expR['EXPperPerc'] den Wert 0 zu haben.
|
|
|
02/22/2014, 21:51
|
#3
|
elite*gold: 666
Join Date: Apr 2011
Posts: 5,811
Received Thanks: 2,417
|
Nimm die Zeilen raus und lass dir den Wert der Variable ausgeben, die Probleme macht.
Wobei du vor Teilungen immer die betreffende Variable prüfen solltest, ob sie den wert 0 hat oder nicht und wenn sie 0 ist, die Teilung einfach nicht durchführen und nen Fehler o.ä. zurückgeben.
|
|
|
02/23/2014, 11:13
|
#4
|
elite*gold: 0
Join Date: May 2010
Posts: 149
Received Thanks: 20
|
Mehr Quellcode wäre hilfreich um dir zu helfen. Das Problem ist, wie bereits von DeathPro2o12 angemerkt, dass du durch 0 teilst. Wie dieser Wert ermittelt wird, ist entscheidend, um dir bei deinem Problem weiterzuhelfen.
Ist der Wert durch eine Benutzerinteraktion / Benutzereingabe gesetzt, macht es Sinn eine Validierung durchzuführen und den Benutzer aufzufordern, Werte > 0 einzugeben.
Kommt der Wert durch Berechnungen zustande, ist es wichtig den Kontext deiner Anwendung zu kennen, um ein korrektes und sinnvolles Verhalten zu empfehlen.
|
|
|
02/23/2014, 13:57
|
#5
|
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
|
Ich kann den Fehler in Line 257 leider nicht finden/fixxen.
Hier etwas mehr Code:
PHP Code:
$expfromysttotod = $nxarrdat[$x][0] - $nxarrdat[$x + 1][0]; $killsfromysttotod = $nxarrdat[$x][1] - $nxarrdat[$x + 1][1]; $deathsfromysttotod = $nxarrdat[$x][2] - $nxarrdat[$x + 1][2]; $nick = $nxarrdat[$x][4]; $level = $nxarrdat[$x][5]; $level_c = str_pad($level, 3, "0", STR_PAD_LEFT); Line: 257 $kdratio = round($killsfromysttotod/$deathsfromysttotod, 3);
Es kann nur sein, dass wenn ein User gestern nicht gespielt hat, das der Wert von $deathsfromysttotod auch mal 0 sein kann, ebenso von $killsfromysttotod.
Aber wie umgehe ich das, dass die Fehlermeldung kommt? Vorher als ich meinen eigenen Root-Server noch hatte, hatte ich nie Fehlermeldungen, nur seit ich bei dem free Webspace Anbieter von PHP-Friends bin.
Könnte ich das mit einer if Anweisung ändern?
|
|
|
02/23/2014, 14:09
|
#6
|
elite*gold: 0
Join Date: May 2010
Posts: 149
Received Thanks: 20
|
Verstehe. Was du willst: Fehlermeldung (exakter: Warnungsmeldung) unterdrücken. Ich empfehle dir, deinen Code zu refactoren. Offensichtlich ist die implementierte Logik nicht optimal.
Hast du Zugriff auf die php.ini?
Wenn nicht, füge
Quote:
error_reporting(E_ERROR);
|
an den Anfang deines php-Quellcodes (in der profile.php)
Siehe bitte auch in die offizielle Dokumentation:
|
|
|
02/23/2014, 14:34
|
#7
|
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
|
Quote:
Originally Posted by sippi10
Verstehe. Was du willst: Fehlermeldung (exakter: Warnungsmeldung) unterdrücken. Ich empfehle dir, deinen Code zu refactoren. Offensichtlich ist die implementierte Logik nicht optimal.
Hast du Zugriff auf die php.ini?
Wenn nicht, füge
an den Anfang deines php-Quellcodes (in der profile.php)
Siehe bitte auch in die offizielle Dokumentation:
|
Vielen dank! Endlich. Vorher ging nämlich auch schon alles. :P
|
|
|
02/23/2014, 14:42
|
#8
|
elite*gold: 0
Join Date: May 2010
Posts: 149
Received Thanks: 20
|
Quote:
Originally Posted by lnqlorlouz
Vielen dank! Endlich. Vorher ging nämlich auch schon alles. :P
|
Gerne Das es funktioniert heißt aber nicht, dass es gut umgesetzt ist. Wie gesagt: wenn du Zeit findest, versuche die Warnung programmatisch zu verhindern, in dem du dein Code refactorest. Die Unterdrückung der Warnung ist ein Zeichen für schlechten Code.
Kannst gerne ein Feedback in mein Codingservice hinterlassen =)
|
|
|
|
Similar Threads
|
Kleines Problem
08/17/2011 - Metin2 Private Server - 3 Replies
Kann mir bitte endlich jemand das mit dem Surastarter machen? Hab den auch schon aber irgendwas klappt da nicht. Habe den 2010er Clienten mit 2010er Serverfiles wo ein DynDns Server drauf läuft, mit dem normalen Starter kann ich connecten aber leider andere nicht, kann mich bitte jemand bei Skype adden?
Skype: kinglennart2
|
Kleines Problem
05/08/2010 - Metin2 Private Server - 7 Replies
Hey Com
hab ein kleines Problem mit hamachi server, wenn ich nach dem sura kopf das Fenster anklicke kommt da (LoadLocaleError), manchem meinte ich bräuchte einen anderen Ordner wie z.B von Neon. Ja hab ich runtergeladen hat leider auch nix gebracht. Ist hier jemand der sich damit auskennt bzw helfen könnte? Danke..
|
kleines problem
12/23/2009 - S4 League - 2 Replies
ehmmm... es is ja jetzt patch 14 raus, hab etwas gespielt und wollte ma testen ob caracas's s4 client noch geht. hab ihn in s4 ordner reingezogen und gestartet. es ging net, also wollte ich den originalen s4 client wieder reinziehen aber es geht net, ich kann caracas's s4 client net löschen oder tauschen! Help
|
All times are GMT +2. The time now is 16:28.
|
|