dareo95
22.03.2011, 21:27:26
witam,
wysylam w formularzu
odczytuje to na drugiej stronie $_POST['date']
i teraz jak z tego wyciagnac same minuty, a potem sprawdzic czy jest wiecej czy mniej roznicy o 10 minut od aktualnego czasu?
sadistic_son
22.03.2011, 21:32:05
$minuty=explode(':',$_POST['data']); $minuty=$minuty[1];
$minuty=$minuty*60; //zamiana na sekundy
$za_x_minut=time()+$minuty; if($za_10_minut<$za_x_minut){
echo 'wiecej niz 10 minut'; }
dareo95
22.03.2011, 21:37:23
dzieki wielkie
thek
22.03.2011, 21:41:19
Tak... o od jedenastej minuty każdej godziny warunek zawsze będzie prawdziwy, bo nie sprawdzasz różnicy, ale o prostu wartość minut.
sadistic_son
22.03.2011, 21:44:03
Moja wina, nie doczytałem czy ma być wiecej
czy mniej niz 10 minut. Poprawka:
if($za_10_minut<$za_x_minut){
echo 'wiecej niz 10 minut'; }else{
echo 'mniej niz 10 minut'; }
Powyższe pokaże ze jest mniej równierz dla przypadku kiedy bedzie dokladnie rowne 10 minut.
dareo95
22.03.2011, 21:54:19
Cytat(thek @ 22.03.2011, 21:41:19 )

Tak... o od jedenastej minuty każdej godziny warunek zawsze będzie prawdziwy, bo nie sprawdzasz różnicy, ale o prostu wartość minut.
teraz juz sie pogubilem...
chodzi mi tylko o taka sytuacje, ze przesylam artykul formularzem, dolaczam aktualny czas i przez 10 minut od jego wyslania mozna go edytowac. wiec to chyba jest dobre co sadistic napisal? nie mam jak w tej chwili sprawdzic
sadistic_son
22.03.2011, 22:02:55
W takim razie:
if($za_10_minut>=$za_x_minut){
//edycja
}
dareo95
22.03.2011, 22:08:01
hmmm a taka sytuacja, ze wysylam formularz o 20:13. o 20:24 juz sie nie da edytowac, ale jak bedzie 21:14 to chyba znowu bedzie sie dalo edytowac? wychodzi na to, ze trzeba by dodac godziny, dni, miesiace i lata, a to juz troche chyba jest roboty? chyba ze jest jakas funkcja specjalna do tego?
darko
22.03.2011, 22:10:58
Przecież to i tak można obejść.
dareo95
22.03.2011, 22:17:33
i dlatego mam nawet nie probowac?
Grzyw
22.03.2011, 22:33:25
Jeśli chcesz z tym działać, to skorzystaj przede wszystkim z funkcji
strtotime z interwałem czasowym, żeby nie mordować się z explode'ami i mnożnikami czasu....
darko
22.03.2011, 22:34:42
Możesz tylko po co? Tutaj lepiej sprawdziłby się jakiś system tokenów oparty o aktualną datę i czas. Możliwości jest wiele.
dareo95
22.03.2011, 22:41:50
no to nie wiedzialem o czyms takim, jesli to jest lepsze to oczywiscie zastosuje, tylko jak sie do tego zabrac? mozna jakies materialy?
sadistic_son
22.03.2011, 22:43:54
A co robisz z tymi danymi wysłanymi z formularza? Zapisujesz je w bazie? Jeśli tak to dodaj tylko dodatkowe pole w tabeli i wrzucaj do niego w zapytaniu datę obecną + 600 sekund. Potem jeśli ktoś będzie chciał edytować to tylko sprawdzasz czy time() <= $data_z_bazy i jeśli tak to zezwalasz na edycję.
dareo95
22.03.2011, 23:11:40
tzn poki co wysylalem to przez POST, zeby sprobowac czy to w ogole bedzie dzialalo, a domyslnie ma isc wlasnie do bazy. tylko w jakim formacie to zapisac, zebym potem mogl sprawdzac tak jak piszesz?
i o co z tymi tokenami chodzi co darko pisal?

bo skoro to lepsze to bym wolal sprobowac
darko
22.03.2011, 23:21:40
W b azie tworzysz pole datetime albo timestamp. Natomiast kwestia tokenów opartych o czas jest nieco bardziej skomplikowana, ale generalnie należałoby użyć two way encryption np. za pomocą
MCrypt i
mcrypt_generic oraz
mdecrypt_generic albo zamiennika w postaci
mcrypt_ofb
dareo95
22.03.2011, 23:25:43
zostane jednak przy samej bazie bez tokenow

czyli wrzucam aktualna date do bazy, a potem ja wyciagam, przerabiam strtotime, dodaje do wyniku 600 i potem porownuje?
sadistic_son
24.03.2011, 11:34:36
Możesz uniknąć przerabiania jej za pomocą strtotime i od razu wrzucić do bazy, do kolumny typu INT wartość czasu unixowego. Zacznij działać i zapodawaj efekty to będziemy na bieżąco pomagać bo takie gadanie "co by można, czego nie, a gdyby to zrobić tak i tak, a tak nie" to nie ma sensu.
F5
I co? Jakieś postępy?
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.