Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 16:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kleines PHP-Problem

Discussion on Kleines PHP-Problem within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
lnqlorlouz's Avatar
 
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
Lightbulb 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
lnqlorlouz is offline  
Old 02/22/2014, 19:30   #2
 
DeathPro2o12's Avatar
 
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.
DeathPro2o12 is offline  
Thanks
1 User
Old 02/22/2014, 21:51   #3

 
Syc's Avatar
 
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.
Syc is offline  
Thanks
1 User
Old 02/23/2014, 11:13   #4
 
sippi10's Avatar
 
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.
sippi10 is offline  
Thanks
1 User
Old 02/23/2014, 13:57   #5
 
lnqlorlouz's Avatar
 
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($level3"0"STR_PAD_LEFT);
                    
                
Line257    $kdratio round($killsfromysttotod/$deathsfromysttotod3); 
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?
lnqlorlouz is offline  
Old 02/23/2014, 14:09   #6
 
sippi10's Avatar
 
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:
sippi10 is offline  
Thanks
1 User
Old 02/23/2014, 14:34   #7
 
lnqlorlouz's Avatar
 
elite*gold: 0
Join Date: Jun 2013
Posts: 405
Received Thanks: 84
Quote:
Originally Posted by sippi10 View Post
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
lnqlorlouz is offline  
Old 02/23/2014, 14:42   #8
 
sippi10's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 149
Received Thanks: 20
Quote:
Originally Posted by lnqlorlouz View Post
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 =)
sippi10 is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.