miras 0 Zgłoś post Napisano Czerwiec 1, 2012 Witam, mam pewien dylemat, czy to jest dobre rozwiązanie do takiego małego, amatorskiego panelu hostingowego, a mianowicie - ten skrypt będzie wykonywany cronem co jakiś czas - czy to jest dobre rozwiązanie ? jeżeli komuś skończyła się ważność usługi to po prostu wyłącza serwer, a w panelu zarządzania tym serwerem nie będzie mógł się dostać do włączenia tego serwera, bo jeżeli ważność się skończyła to skrypt mu na to nie pozwoli. Proszę o jakieś wskazówki / opinie. <?php include("../config.php"); function rData($dateStart, $dateFinish, $time="dni") { $tab = array(minut=>60, godzin=>3600, dni=>86400, sekund=>1); return round(((strtotime($dateFinish) - strtotime($dateStart)) / $tab[$time])); } $wynik = mysql_query("SELECT * FROM uslugi") or die('Błąd zapytania'); if(mysql_num_rows($wynik) > 0) { while($r = mysql_fetch_assoc($wynik)) { $waznosc=$r['waznosc']; $dateStart=date('Y-m-d'); $dateFinish=date("Y-m-d", $waznosc); $waz=rData($dateStart, $dateFinish); if ($waz <=0) { $dir=$r['port']; $kat = "/home/$dir/"; $sc_trans="sc_trans"; ob_start(); system('killall '.$kat.$sc_trans); ob_end_flush(); } } } ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 1, 2012 (edytowany) A nie prościej w bazie przechowywać datę wygaśnięcia usługi, a potem zapytaniem SELECT * FROM uslugi WHERE data_wygasniecia < NOW() sobie wybrać tylko te wygasające? Ewentualnie zmieniając warunek, to jakimś takim kodem wyświetlić sobie te nominowane do wygasania (np. aby powiadomienia wysłać) Edytowano Czerwiec 1, 2012 przez kafi (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Czerwiec 1, 2012 Właśnie przechowuję w bazie z tym, że ta data jest 'zakodowana' przez strtotime, a będę musiał przy tym pozostać, bo będę miał trochę za dużo przerabiania, żeby to zmienić na normalną datę.. Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 1, 2012 No to WHERE data_zakonczenia < UNIX_TIMESTAMP() AND status = 'aktywna' Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Czerwiec 1, 2012 bez tego ostatniego warunku mam nadzieje też zadziała ? bo nie mam takiej kolumny w bazie i za bardzo mieć nie mogę.. Dobra, śmiga, zawsze to mniej 'orania' bazy ;] Dzięki. Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Czerwiec 1, 2012 Zadziała. Ale jeśli nie masz tej kolumny, to będziesz wykonywał bezsensowną robotę cyklicznego wyłączania dla rekordów, dla których to już wcześniej wykonałeś. Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Czerwiec 1, 2012 Dobra, już coś wykombinuję, w każdym razie dzięki. Udostępnij ten post Link to postu Udostępnij na innych stronach