[ROZWIĄZANE] Skrypt zwiększający ważność a...
panczo12d
08.08.2012
Witam. Pisze skrypt zwiększający ważnośc admina w GmAMXBansie. Mam pytanie. Co zwiększyć w bazie aby działało? Pole `expired` czy `days`. A może to i to? Jak to zrobić?
Pozdrawiam.
Pozdrawiam.
Kawon
08.08.2012
Na czym będzie polegać ten skrypt ?
Przecież edytując admina możesz rozszerzyć jego długość
Przecież edytując admina możesz rozszerzyć jego długość
panczo12d
08.08.2012
Tak, wiem. Ale niedługo szkoła która jest ważniejsza od komputera. Nie będę miał zbyt dużo czasu na zbieranie składek od adminów i ręczne dodawanie im kilku dni aktywności. Napisałem już sobie cały skrypt automat z zintegrowaną płatnością SMS proserwer (cURL) i została mi jeszcze kwestia wydłużania czasu aktywności admina.
Nie mam pojęcia czy zwiększyć samo pole `days`, czy też trzeba zmienić pole `expired` które odpowiada za ważnośc admina w sensie dzien-miesiac-rok godzina-minuta-sekunda.
Nie mam pojęcia czy zwiększyć samo pole `days`, czy też trzeba zmienić pole `expired` które odpowiada za ważnośc admina w sensie dzien-miesiac-rok godzina-minuta-sekunda.
panczo12d
08.08.2012
tak, to jest taki skrypt pisany od 0.
screen: http://img20.imagesh...8/screenyxk.png
po lewej przed zalogowaniem, po prawej po zalogowaniu.
Po wyslaniu sms i wpisaniu wszystkich danych skrypt sprawdza poprawność (automatycznie) i jeżeli jest wszystko ok, należy zwiększyć ważność admina.
screen: http://img20.imagesh...8/screenyxk.png
po lewej przed zalogowaniem, po prawej po zalogowaniu.
Po wyslaniu sms i wpisaniu wszystkich danych skrypt sprawdza poprawność (automatycznie) i jeżeli jest wszystko ok, należy zwiększyć ważność admina.
Kawon
08.08.2012
użyj expired oraz days z tym że w kolumnie days wpisywana jest ilość dni normalnie np. 1 dzień to w kolumnie jest wartość 1
natomiast w kolumnie expired jest mnożenie days * 86400 (czyli zamiana na sekundy) jeżeli na zawsze to w obu przypadkach wartość wyniesie 0
natomiast w kolumnie expired jest mnożenie days * 86400 (czyli zamiana na sekundy) jeżeli na zawsze to w obu przypadkach wartość wyniesie 0
panczo12d
08.08.2012
ok, dzięki za pomoc. w skrypcie bd zmienial i pole days iexpired. z tym że mylisz się odnośnie pola expired. to nie jest żadne mnożenie days przez xxx.
wyjaśnię Ci.
Pole expired jest to data do kiedy admin jest ważny w formacie timestamp.
Przykład:
data w timestamp: (php) [na teraz aktualna]
$godzina = 19;
$minuta = 29;
$sekunda = 0;
$miesiac = 8;
$dzien = 8;
$rok = 2012;
$ts = mktime($godzina, $minuta, $sekunda, $miesiac, $dzien, $rok);
echo $ts;
powyższy skrypt wyświetli datę w formacie timestamp.
amxbans robi to tak, że bierze aktualną datę, do tego dodaje te days powiedzmy + 5 dni, tworzy timestamp i zapisuje do bazy danych.
musze jeszcze poogarniać jak się dodaje timestampy i kilka rzeczy, muślę że mi się uda.
Pozdrawiam.
cytat "podstawowym sposobem zapisu daty w systemie unix jest tzw. timestamp. jest to ilosc sekund jaka upłuneła od 1.1.1970."
Użytkownik panczo12d edytował ten post 08.08.2012 18:49
wyjaśnię Ci.
Pole expired jest to data do kiedy admin jest ważny w formacie timestamp.
Przykład:
data w timestamp: (php) [na teraz aktualna]
$godzina = 19;
$minuta = 29;
$sekunda = 0;
$miesiac = 8;
$dzien = 8;
$rok = 2012;
$ts = mktime($godzina, $minuta, $sekunda, $miesiac, $dzien, $rok);
echo $ts;
powyższy skrypt wyświetli datę w formacie timestamp.
amxbans robi to tak, że bierze aktualną datę, do tego dodaje te days powiedzmy + 5 dni, tworzy timestamp i zapisuje do bazy danych.
musze jeszcze poogarniać jak się dodaje timestampy i kilka rzeczy, muślę że mi się uda.
Pozdrawiam.
cytat "podstawowym sposobem zapisu daty w systemie unix jest tzw. timestamp. jest to ilosc sekund jaka upłuneła od 1.1.1970."
Użytkownik panczo12d edytował ten post 08.08.2012 18:49
Kawon
08.08.2012
Źle się zrozumieliśmy ponieważ nie wspomniałem o UNIX_TIMESTAMP()
zmienna days jest mnożona przez 86400 (1 dzień na sekundy) liczby które zostaną wygenerowane są zapisywane do bazy, kolumna expired
następnie na stronie jest wyświetlana kompletna data
zmienna days jest mnożona przez 86400 (1 dzień na sekundy) liczby które zostaną wygenerowane są zapisywane do bazy, kolumna expired
następnie na stronie jest wyświetlana kompletna data
panczo12d
08.08.2012
ok.musze zmienic pole days i expired. tylko nie rozumiem jaka wartosc wpisac w expired.
wytlumacz mi na przykladzie.
admina utworzylem 01.01.2012 12.00.00
dalem mu aktywny przez 6 dni
wiec bedzie aktywny do 07.01.2012 12.00.00
w poly days jest liczba 6 a w expired jakas, nie wiem jaka.
teraz przez moj skrypt zmieniam days z 6 na 10 i jak mam zmienic pole exoired?
moze pole created+days*86400
Użytkownik panczo12d edytował ten post 08.08.2012 20:11
wytlumacz mi na przykladzie.
admina utworzylem 01.01.2012 12.00.00
dalem mu aktywny przez 6 dni
wiec bedzie aktywny do 07.01.2012 12.00.00
w poly days jest liczba 6 a w expired jakas, nie wiem jaka.
teraz przez moj skrypt zmieniam days z 6 na 10 i jak mam zmienic pole exoired?
moze pole created+days*86400
Użytkownik panczo12d edytował ten post 08.08.2012 20:11
Kawon
08.08.2012
tak jak już pisałem z kolumny expired jest wyświetlana ważność admina (pełna data do kiedy) (zerknij na screen)
'admin aktywny przez:' w tym polu jest pobierana kolumna days
'ważny przez:' data 7.08.... jest to kolumna epired
natomiast 'rozszerzony o' jest to dodanie do created wartości jaka zostanie dodana i pomnożona przez 86400
przy dodawaniu admina kolumna created ma automatycznie aktualną datę poprzez funkcję UNIX_TIMESTAMP().
wartość dodawania do kolumny expired
w zmiennej exp zostaje to pomnożone oraz dodane do UNIX_TIMESTAMP
Przy rozszerzaniu kod zmiennej exp się zmienia
Spoiler
'admin aktywny przez:' w tym polu jest pobierana kolumna days
'ważny przez:' data 7.08.... jest to kolumna epired
natomiast 'rozszerzony o' jest to dodanie do created wartości jaka zostanie dodana i pomnożona przez 86400
przy dodawaniu admina kolumna created ma automatycznie aktualną datę poprzez funkcję UNIX_TIMESTAMP().
wartość dodawania do kolumny expired
$days=(int)$_POST["days"]; $exp="(UNIX_TIMESTAMP()+(".($days * 86400).")),";zmienna days ma wartość dni np. 30
w zmiennej exp zostaje to pomnożone oraz dodane do UNIX_TIMESTAMP
Przy rozszerzaniu kod zmiennej exp się zmienia
$exp="(`created`+(".($days * 86400)."))";teraz do daty utworzenia admina (wygenerowane przez UNIX_TIMESTAMP) zostaje dodany wynik mnożenia dni dodania z 86400
panczo12d
10.08.2012
Ja jednak rozumiem to. Dziękuję za pomoc. Skrypt udało mi się dokończyć i działa jak marzenie Można zamknąć, ale jeszcze musze Cię poprawić
$nowy_expired = $stary_expired + $dni_w_formularzu_na_stronie * 86400
- nie unix_timestamp() tylko pole created
- oraz dodanie wartości pola created
No ale najważniejsze że nakierowałeś mnie na trop i udało mi się osiągnąć cel Jeszcze raz dzięki
Pozdrawiam.
Użytkownik panczo12d edytował ten post 10.08.2012 08:36
- jest to zmodyfikowanie pól `days` i `expired`. Do `days` jest dodawana liczba którą tam wpiszemy a pole `expired` jest modyfikowane w następujący sposóbnatomiast 'rozszerzony o' jest to dodanie do created wartości jaka zostanie dodana i pomnożona przez 86400
$nowy_expired = $stary_expired + $dni_w_formularzu_na_stronie * 86400
wartość dodawania do kolumny expired
$days=(int)$_POST["days"];
$exp="(UNIX_TIMESTAMP()+(".($days * 86400).")),";
- nie unix_timestamp() tylko pole created
zmienna days ma wartość dni np. 30
w zmiennej exp zostaje to pomnożone oraz dodane do UNIX_TIMESTAMP
- oraz dodanie wartości pola created
No ale najważniejsze że nakierowałeś mnie na trop i udało mi się osiągnąć cel Jeszcze raz dzięki
Pozdrawiam.
Użytkownik panczo12d edytował ten post 10.08.2012 08:36
Kawon
10.08.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL