Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja date_diff na serwrze dedykowanym
Forum PHP.pl > Forum > Serwery WWW
Klycior
Cześć,

Kupiłem ostatnio skrypt do stawiania serwerków głosowych ventrilo.
Okazuje się że wszystko fajnie działa lecz kiedy skrypt umieszczę na swoim serwerze dedykowanym wyskakuje mi taki błąd:


  1. Fatal error: Cannot redeclare date_diff() in /var/www/vt/formularz.php on line 21


Na innych hostingach wszystko działa dobrze lecz u mnie niestety zadziałać nie chce. Czytałem trochę na ten temat i wyczytałem że funkcji date_diff() jest od pewnej wersji PHP i najprawdopodobniej ja jej nie posiadam. Moja wersja to: PHP Version 5.3.2-2

Myślę że wina może leżeć albo w wersji php lub ustawieniach php czyli pliku php.ini

Jak mogę rozwiązać owy problem ?
skowron-line
Tam gdzie tworzysz swoją funkcję użyj
http://pl.php.net/manual/en/function.function-exists.php i sprawdź czy taka funkcja już istnieje.
Klycior
Skrypt wygląda tak:

  1. // sprawdzanie daty
  2. function date_diff($date1, $date2)
  3. {
  4.  
  5. $d1 = explode("-", $date1);
  6. $y1 = $d1[0];
  7. $m1 = $d1[1];
  8. $d1 = $d1[2];
  9.  
  10. $d2 = explode("-", $date2);
  11. $y2 = $d2[0];
  12. $m2 = $d2[1];
  13. $d2 = $d2[2];
  14.  
  15. $date1_set = mktime(0,0,0, $m1, $d1, $y1);
  16. $date2_set = mktime(0,0,0, $m2, $d2, $y2);
  17.  
  18. return(round(($date2_set-$date1_set)/(60*60*24)));
  19. }
  20. // -----


Dodałem do kodu coś takiego:
  1. if(!function_exists('date_diff')) {
  2. include('data.php');
  3. }


O to chodziło ?
skowron-line
  1. if(function_exists('date_diff') == false)
  2. {
  3. // tu wrzuć swoją funkcję
  4. }

Generalnie to jest prawie to samo, prawie ponieważ w kilku miejscach możesz mieć includowany ten plik i w każdym z tych miejsc musisz strzelić taki warunek a tak będziesz miał w tym jednym miejscu.
Klycior
Tak błąd mi zwraca:


Warning: date_diff() expects parameter 1 to be DateTime, string given in /var/www/vt/files/a_glowna.php on line 30

Linia: 30
  1. while($row = mysql_fetch_array($zapytanie)){
  2. if(date_diff(date("Y-m-d"), $row['data'])>0) $ilosc_aktywni++; else $ilosc_zablokowani++;
  3. }
skowron-line
A patrzyłeś do manuala jak ta funkcja w phpie działa ?
Klycior
No tak patrzałem.
Moja wiedza na temat PHP jest znikoma a z panelem który kupiłem nigdy nie miałem do czynienia.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.