[User achievements 0.0.2] - Błąd dzielenia przez zero

Pomoc w przypadku kłopotów z modyfikacjami: instalacją, konfiguracją, błędami. Zakładając nowy temat pamiętaj o odpowiednim prefiksie!
Regulamin forum
Na tym forum wymagane jest stosowanie prefiksów w tytułach tematów. Prefiks tematu musi składać się nazwy modyfikacji, której dotyczy problem. Dla modyfikacji phpBB Gallery poprawna nazwa tematu to przykładowo [phpBB Gallery] Problem z wgrywaniem zdjęć. Tematy niespełniające wymogu będą przenoszone do kosza.
skynet
Posty: 2
Rejestracja: 16 stycznia 2010, 00:03

[User achievements 0.0.2] - Błąd dzielenia przez zero

Post autor: skynet » 16 stycznia 2010, 00:19

otóż problem jest następujący:
Przy wejściu w profil nowo zarejestrowanego użytkownika (który figuruje na forum jakby nie patrzeć od 0 dni), skrypt functions_goals.php próbuje dzielić przez 0 wywalając w nagłówku strony:

Kod: Zaznacz cały

[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 273: Division by zero
[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 274: Division by zero
[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 275: Division by zero
[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 273: Division by zero
[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 274: Division by zero
[phpBB Debug] PHP Notice: in file /includes/functions_goals.php on line 275: Division by zero

to fragment pliku function_goals.php odpowiedzialnego za ten absurdalny błąd:

Kod: Zaznacz cały

266. function total_join_days_goals()
267. {
268.     global $db, $member;
269.    
270.     $user_id = request_var('u', 0);
271. 
272.     $per_day = total_join_days($user_id);
273.     $post_per_day_5 = ($member['user_posts'] / $per_day >= 5) ? true : false;
274.     $post_per_day_10 = ($member['user_posts'] / $per_day >= 10) ? true : false;
275.     $post_per_day_20 = ($member['user_posts'] / $per_day >= 20) ? true : false;
276.     
277.     $post_per_day_goal = $post_per_day_10 + $post_per_day_5 + $post_per_day_20;
278.         
279.     return $post_per_day_goal;
280. } 
Jak mogę wyeliminować ten problem ?

Awatar użytkownika
@Marcin
Zasłużony
Posty: 1635
Rejestracja: 08 lutego 2009, 21:27
Lokalizacja: Nowa Ruda (PL) / Milton Keynes (UK)
Kontakt:

Re: [User achievements 0.0.2] - Błąd dzielenia przez zero

Post autor: @Marcin » 16 stycznia 2010, 09:59

otwórz includes/functions_goals.php

znajdź

Kod: Zaznacz cały

$userdays       = round((time() - $joindate) / 86400, 0); 
zmień na

Kod: Zaznacz cały

$userdays       = round((time() - $joindate) / 86400, 4); 
Wsparcie phpBB PL !!

skynet
Posty: 2
Rejestracja: 16 stycznia 2010, 00:03

Re: [User achievements 0.0.2] - Błąd dzielenia przez zero

Post autor: skynet » 16 stycznia 2010, 16:50

rozwiązałem problem dopisując po:

Kod: Zaznacz cały

$per_day = total_join_days($user_id); 
instrukcję:

Kod: Zaznacz cały

if ( $per_day == 0 )
{
$per_day = 1 ;
} 
ale dziękuję za pomoc.

Awatar użytkownika
@Marcin
Zasłużony
Posty: 1635
Rejestracja: 08 lutego 2009, 21:27
Lokalizacja: Nowa Ruda (PL) / Milton Keynes (UK)
Kontakt:

Re: [User achievements 0.0.2] - Błąd dzielenia przez zero

Post autor: @Marcin » 16 stycznia 2010, 21:07

rozwiązania znajdziesz w tym temacie
http://www.phpbb.com/community/viewtopi ... 5&start=45
(gdybyś miał jeszcze jakieś problemy)
Wsparcie phpBB PL !!

Zablokowany

Wróć do „Pomoc”