| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

22-11-2003, 00:29
|
|
Jacqueline
Newbie
|
|
Registriert seit: Nov 2003
Ort: NRW
Beiträge: 10
|
|
"Division by zero"-Fehler in OsCommerce-Shop
Hallo von einer PHP-/SQL-Newbie.
Ich weiß nicht, ob mein Thema hierhin oder in's SQL-Forum gehört. Bitte Bescheid geben.
Mein Problem ist eine Fehlermeldung im OsCommerce-Shop, und zwar folgende:
Warning: Division by zero in /homepages/5/*********/htdocs/shop/includes/classes/split_page_results.php on line 86
Warning: Division by zero in /homepages/5/*********/htdocs/shop/includes/classes/split_page_results.php on line 89
(Habe den Pfad etwas mit Sternchen zensiert)
Ich habe diese PHP als Textdatei hier an meinen Beitrag drangehängt.
Am Script wurde NICHTS verändert !!!
Ich habe nur an anderen PHP's und der oscommerce.sql etwas herumprogrammiert, aber das habe ich ja bei den anderen funktionierenden OsCommerce-Shops auch getan. Hmmm.
Bei den anderen OsCommerce-Shops, die ich installiert habe, tritt dieser Fehler nicht auf.
Der Fehler tritt übrigens in diesem speziellen Shop erst auf, wenn ich ein Produkt einfüge. Bei vorheriger Eingabe von Kategorien und Unterkategorien gibt es keinerlei Fehlermeldungen.
Ich bin ratlos.
Und was dieser Fehler zu bedeuten hat, weiß ich erst Recht nicht.
Ich hoffe, ihr könnt mir helfen ?
Vielen Dank schonmal im Voraus.
Ciao und ein schönes Wochenende,
Jacqueline
__________________
Sorry, ich weiß echt nix ;-))
|

22-11-2003, 00:57
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
PHP-Code:
// zeile 86 - alt
$cur_window_num = intval($this->current_page_number / $max_page_links);
// zeile 86 - NEU
$cur_window_num = $max_page_links>0 ? intval($this->current_page_number / $max_page_links) : $this->current_page_number;
// ------------------------------------------------------------------------
// zeile 89 - alt
$max_window_num = intval($this->number_of_pages / $max_page_links);
// zeile 89 - NEU
$max_window_num = $max_page_links>0 ? intval($this->number_of_pages / $max_page_links) : $this->number_of_pages;
|

22-11-2003, 01:20
|
|
Jacqueline
Newbie
|
|
Registriert seit: Nov 2003
Ort: NRW
Beiträge: 10
|
|
Wow
Unglaublich, hat geklappt !!!
Wie kann man das nur so einfach aus der Hand schütteln ?!?!
Vielen lieben Dank Abraxax, das war ja richtig blitzartig und dann noch perfekt.
Ich werde mir das Forum hier auf alle Fälle bookmarken.
Danke danke danke.
Jacqueline
__________________
Sorry, ich weiß echt nix ;-))
|

22-11-2003, 01:26
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Re: Wow
Zitat:
Original geschrieben von Jacqueline
Unglaublich, hat geklappt !!!
Wie kann man das nur so einfach aus der Hand schütteln ?!?!
|
kurz nachdenken, oder die suche verwenden...
Zitat:
Original geschrieben von Jacqueline
Vielen lieben Dank Abraxax, das war ja richtig blitzartig und dann noch perfekt.
|
Zitat:
Original geschrieben von Jacqueline
Ich werde mir das Forum hier auf alle Fälle bookmarken.
|
Zitat:
Original geschrieben von Jacqueline
Danke danke danke.
|
k.p.
|

22-11-2003, 01:37
|
Benny-one
Master 
|
|
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
|
|
OffTopic: na haxe, auch noch fleissig am proggen? *gähn*, mein rotator schickt endlich die email , leider nicht im html format egal, ich mach dann mal weiter, gn8 all
|

22-11-2003, 01:45
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
OffTopic: ne. bin nur 'noch' on. und auch gleich off ... 
n8@all too
|

22-11-2003, 01:47
|
|
Jacqueline
Newbie
|
|
Registriert seit: Nov 2003
Ort: NRW
Beiträge: 10
|
|
Re: Re: Wow
Zitat:
Original geschrieben von Abraxax
kurz nachdenken, oder die suche verwenden... 
|
Tzz, wie gemein.. und dabei habe ich doch die Suche aufgerufen 
.. aber irgendwie habe ich unter all den Beiträgen nichts mit einem "Division by Zero"-Fehler unter einem OsCommerce-Shop gefunden.
Und all die anderen Beiträge zu "Division by zero" habe ich nicht verstanden
Aber ich lern' das noch..!
Und das richtige Suchmuster im Forum lern' ich vielleicht auch noch
Gute Nacht und bis dann,
Jacqueline
__________________
Sorry, ich weiß echt nix ;-))
|

22-11-2003, 16:03
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
Re: Re: Re: Wow
Zitat:
Original geschrieben von Jacqueline
Tzz, wie gemein.. und dabei habe ich doch die Suche aufgerufen 
.. aber irgendwie habe ich unter all den Beiträgen nichts mit einem "Division by Zero"-Fehler unter einem OsCommerce-Shop gefunden.
|
das ist ein allgemeines problem und hat nicht mit dem osc-shop zu tun. aber egal. jetzt geht es ja...
|

22-11-2003, 16:11
|
|
Jacqueline
Newbie
|
|
Registriert seit: Nov 2003
Ort: NRW
Beiträge: 10
|
|
Okay, dann erklär(t) mal einer "Nicht-Scripterin-sondern-lediglich-Script-Verbiegerin", was der "Division by zero"-Fehler eigentlich bedeutet bzw. woher er herrührt ?
Soweit ich mich mit meinen schwachen mathematischen Fähigkeiten noch erinnere, kann/darf(?) man nicht durch 0 teilen.. aber was im Script versucht durch 0 zu teilen und wieso erlaubt man dem Script das und warum tritt der Fehler nicht bei den anderen installierten Shops auf und überhaupt, was ist der Sinn des Lebens ?!
Fragen über Fragen.. und die Antwort ist wie immer..
42
Schönes Wochenende allen und nochmals vielen Dank,
Jacqueline
__________________
Sorry, ich weiß echt nix ;-))
|

22-11-2003, 16:20
|
Abraxax
  THE REAL HAXE (Administrator)
|
|
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.621
|
|
der fehler rührt, wie du schon erkannt hast, auch einer division durch 0 ... und das ist, wie du auch schon erkannt hast, nicht erlaubt.
und warum in dieser var eine 0 drin ist, kann ich dir auch nicht sagen. irgendwoher kommt sie aber.
und wenn man bei so einer division diese 0 eben nicht abfängt, bekommst du den fehler. ganz einfach.
was ich mit meinem beispiel gemacht habe, ist nichts geheimnisvolles. ich prüfe einfach ab, ob die var größer 0 ist. wenn sie das ist, kann/darf er teilen. wenn nicht, liefert er die andere var zurück. das ist alles...
|

24-03-2009, 08:30
|
|
Lotosblüte
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 5
|
|
Zitat:
Original geschrieben von Abraxax
[B]der fehler rührt, wie du schon erkannt hast, auch einer division durch 0 ... und das ist, wie du auch schon erkannt hast, nicht erlaubt. 
und warum in dieser var eine 0 drin ist, kann ich dir auch nicht sagen. irgendwoher kommt sie aber.
und wenn man bei so einer division diese 0 eben nicht abfängt, bekommst du den fehler. ganz einfach.
|
Hallo, 6 Jahre alter Thread - und wieder das Problem.. nehme an, es liegt an einem Serverumzug / neue PHP-Version des Hosters oder so ?
Habe division by zero-Fehler genau an den besagten Stellen der split_page_results.php.
Ich zitiere mal:
$cur_window_num = $max_page_links>0 ? intval($this->current_page_number / $max_page_links) : $this->current_page_number;
if ($this->current_page_number % $max_page_links) $cur_window_num++;
$max_window_num = $max_page_links>0 ? intval($this->number_of_pages / $max_page_links) : $this->number_of_pages;
if ($this->number_of_pages % $max_page_links) $max_window_num++;
Hier soll der Fehler liegen, aber ich hab's genauso stehen wie Abraxax empfohlen hat.
Was nun ?
Habe schon überall herumgesucht im Internet, aber steht immer nur da, daß man zusehen soll, daß im Admin-Bereich bei den Max-Werten nix auf "0" steht - habe ich getan, steht nix auf 0.
Was jetzt ?
Über Hilfe wäre ich dankbar.
Viele Grüße
|

24-03-2009, 13:06
|
 |
fireweasel
Registrierter Benutzer
|
|
Registriert seit: Sep 2008
Ort: At home
Beiträge: 680
|
|
Zitat:
Original geschrieben von Lotosblüte
Hallo, 6 Jahre alter Thread - und wieder das Problem.. nehme an, es liegt an einem Serverumzug / neue PHP-Version des Hosters oder so ?
Habe division by zero-Fehler genau an den besagten Stellen der split_page_results.php.
|
Naja, nicht ganz GENAU an der gleichen Stelle ...
Zitat:
PHP-Code:
$cur_window_num = $max_page_links>0 ? intval($this->current_page_number / $max_page_links) : $this->current_page_number;
if ($this->current_page_number % $max_page_links) $cur_window_num++;
$max_window_num = $max_page_links>0 ? intval($this->number_of_pages / $max_page_links) : $this->number_of_pages;
if ($this->number_of_pages % $max_page_links) $max_window_num++;
Hier soll der Fehler liegen, aber ich hab's genauso stehen wie Abraxax empfohlen hat.
|
Auch der "%"-Operator führt eine Divison durch. Also muss auch hier der Divisor ungleich Null sein.
Kurze Flickschusterei unter Zuhilfenahme von Analogiebildung zum weiter oben geposteten Fix:
PHP-Code:
if ($this->current_page_number % (0 == $max_page_links ? $max_page_links : $this->number_of_pages) ) $cur_window_num++;
$max_window_num = $max_page_links>0 ? intval($this->number_of_pages / $max_page_links) : $this->number_of_pages;
if ($this->number_of_pages % (0 == $max_page_links ? $max_page_links : $this->number_of_pages)) $max_window_num++;
Zitat:
|
Habe schon überall herumgesucht im Internet, aber steht immer nur da, daß man zusehen soll, daß im Admin-Bereich bei den Max-Werten nix auf "0" steht - habe ich getan, steht nix auf 0.
|
"Qualitätssoftware". 
Bist du sicher, dass du die aktuellste Version einsetzt?
Ich kann mir nicht vorstellen, dass ein so saudummer Fehler in einer weit verbreiteten Open-Source-Websoftware immer wieder auftritt, ohne dass da mal jemand Kompetentes einen brauchbaren Workaround einbaut.
__________________
PHP-Code:
class Brick implements Throwable {
// ...
}
|

24-03-2009, 16:38
|
|
Lotosblüte
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 5
|
|
Zitat:
Original geschrieben von fireweasel
Auch der "%"-Operator führt eine Divison durch. Also muss auch hier der Divisor ungleich Null sein.
|
Bahnhof - Abfahrt 
- Hmpf, RFM.. aaaber als ob das Scripten-Draufschaffen mal so einfach wäre
PHP-Code:
if ($this->current_page_number % (0 == $max_page_links ? $max_page_links : $this->number_of_pages) ) $cur_window_num++;
$max_window_num = $max_page_links>0 ? intval($this->number_of_pages / $max_page_links) : $this->number_of_pages;
if ($this->number_of_pages % (0 == $max_page_links ? $max_page_links : $this->number_of_pages)) $max_window_num++;
- Nein, funzt leider auch nicht.
Er spruckt mir jetzt folgende Zeilen als Fehler raus:
if ($this->current_page_number % (0 == $max_page_links ? $max_page_links : $this->number_of_pages) ) $cur_window_num++;
und
if ($this->number_of_pages % (0 == $max_page_links ? $max_page_links : $this->number_of_pages)) $max_window_num++;
Zitat:
|
Bist du sicher, dass du die aktuellste Version einsetzt?
|
Ich bin mir SEHR sicher, daß ich NICHT die aktuellste Version einsetze  sondern ein uraltes OsC-Script.. - getreu dem Motto "never change a running system" bin ich froh, daß das Dingen an sich läuft; wollte schon immer mal einen komplett neuen Shop zusammenbasteln, scheue aber dann das Datenbankimportieren (Kundendaten und so).. hab' Angst, da was falsch zu machen, und dann geht das verloren oder so...
- Also, er funzt ja, immerhin. Sieht zwar unschön aus mit diesem Division by Zero-Fehler, aber solange er noch läuft.. - denke, ich muß das mal in Angriff nehmen, und nicht ständig nur Fehler in dem alten Ding ausbügeln wegen neuerer PHP-Versionen beim Hoster, sondern eben ganz neu anfangen.
Und dann beten, daß es mit dem Importieren der alten Daten via MySQL geht
- Herzlichen Dank aber dennoch für Deine Mühe.
Ich wollte, ich könnte sowas mal ehmt scripten..
Viele Grüße
|

24-03-2009, 16:44
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
wollte schon immer mal einen komplett neuen Shop zusammenbasteln, scheue aber dann das Datenbankimportieren (Kundendaten und so).. hab' Angst, da was falsch zu machen, und dann geht das verloren oder so...
|
Deswegen lässt man das Leute machen, die sich damit auskennen...
Zitat:
|
Er spruckt mir jetzt folgende Zeilen als Fehler raus:
|
Mach doch mal Testausgaben und befolge die anderen Hinweise aus unseren Regeln.
|

24-03-2009, 17:02
|
|
Lotosblüte
Newbie
|
|
Registriert seit: Mar 2009
Beiträge: 5
|
|
Zitat:
Original geschrieben von TobiaZ
Mach doch mal Testausgaben und befolge die anderen Hinweise aus unseren Regeln. [/B]
|
Huhu TobiaZ,
habe mir den Link in Deiner Signatur durchgelesen und sogar verstanden, was Du von mir wolltest juhu
- Also, wenn ich dieses Debugging-Erroranzeige-Scriptchen reinsetze in die split_page_results.php, sagt er mir 5 Mal hintereinander (!) folgendes als Fehlermeldung:
Notice: Use of undefined constant SEARCH_ENGINE_FRIENDLY_URLS - assumed 'SEARCH_ENGINE_FRIENDLY_URLS' in /*****/domainname/webseiten/shop/includes/functions/html_output.php on line 55
(Hab's bissl zensiert.)
Ich kopiere aus besagter html_output.php mal den Passus raus, den er wahrscheinlich meinen wird:
PHP-Code:
if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) {
while (strstr($link, '&&')) $link = str_replace('&&', '&', $link);
$link = str_replace('?', '/', $link);
$link = str_replace('&', '/', $link);
$link = str_replace('=', '/', $link);
$separator = '?';
}
if (isset($_sid)) {
$link .= $separator . $_sid;
}
return $link;
}
- Gebe Dir ja grundsätzlich Recht, Schuster bleib bei Deinen Leisten... aber ist halt leider auch oft eine Kostenfrage..
- Und ich wüßte auf Anhieb nicht, wem ich das zutrauen könnte, bzw. wen ich da fragen sollte.
Man läßt ja nicht mal ebent jeden in den Eingeweiden seines Shops fummeln, also, mit Direktzugriff, meine ich
Lieben Gruß und Danke
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|