• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Usuwanie użytkownika po minięciu pewnego czasu

Object Storage Arubacloud
0 głosów
315 wizyt
pytanie zadane 3 czerwca 2017 w PHP przez Nessvet Nowicjusz (230 p.)
zamknięte 4 czerwca 2017 przez Nessvet
Witam

Jaki mam wprowadzić kod w php który będzie powodował że jak użytkownik po zarejestrowaniu nie potwierdzi konta za pomocą linka aktywującego to po tygodniu usuwa się jego konto z bazy danych ?

Pozdrawiam
komentarz zamknięcia: Od trzymanie wielu przydatnych odpowiedzi

4 odpowiedzi

+3 głosów
odpowiedź 4 czerwca 2017 przez rusk Obywatel (1,640 p.)
Cron to program działający w linuxie, czyli w OS'ie na którym działa serwer. Zasada działania crona polega na okresowym uruchamianiu poleceń/skryptów w systemie. W szczególnym przypadku mogą to być skrypty PHP.

Czyli:

1. piszesz odpowiedni skrypt w PHP

2. ustawiasz crona, żeby wykonywał ten skrypt np. raz na dobę i voila! - gotowe.

Korzystanie z crona jest stosunkowo proste - w necie znajdziesz przykłady. W skrócie: w konsoli piszesz crontab -f, w nowej linijce ustawiasz okres wykonania wg. określonego formatu i po spacji podajesz ścieżkę do sryptu, który ma sie wykonywać.

W skrypcie PHP sprawdzasz daty zarejestrowania użytkowników i potwierdzenia aktywacji przechowywane w bazie i, jeśli minęło 7 dni lub więcej i konto dotąd nie zostało aktywowane - kasujesz konto. Możesz to zrobić np. tak, że pobierasz z bazy tylko rekordy bez potwierdzonej rejestracji, sprawdzasz ich daty i kasujesz te które spełniaja te dwa warunki.
komentarz 4 czerwca 2017 przez efiku Szeryf (75,160 p.)
Biorąc pod uwagę że odpali cronem skrypt co 7dni sprawdzanie dat będzie zbędne. Po prostu niech usunie tylko tych użytkowników którzy nie dokonali aktywacji.:)
komentarz 4 czerwca 2017 przez 0e85dc6eaf Dyskutant (8,840 p.)
A co jeżeli ktoś zarejestruje konto, np. minutę przed wykonaniem skryptu, też mu usunąć konto? ...
komentarz 4 czerwca 2017 przez rusk Obywatel (1,640 p.)
Zalozeniem bylo ze konto bedzie kasowane po 7 dniach. W rozwiazaniu o ktorym piszesz moze minac nawet 13 dni od utworzenia do skasowania.
komentarz 4 czerwca 2017 przez rusk Obywatel (1,640 p.)
SPAP, warunkiem jest ze uplywa 7 dni, nie minuta
+1 głos
odpowiedź 3 czerwca 2017 przez Boshi VIP (100,240 p.)
Odpalaj cronem plik skrypt usuwający nieaktywnych użytkowników, np codziennie..

nie wiem czy jakiś trigger/event w mysql też tego nie załatwi, ale nie bawiłem się tym i nie jestem pewien czy to działa, musiałbyś poczytać.
komentarz 3 czerwca 2017 przez Nessvet Nowicjusz (230 p.)
A w jakim języku programistycznym mam utworzyć tego crona , czy to w php a jak tak to jak zrobić automatyczne odświeżanie tego pliku ?
komentarz 3 czerwca 2017 przez Boshi VIP (100,240 p.)
cron to taki task manager.. on ci odpala podany mu skrypt co okreslony czas.
komentarz 3 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)

nie wiem czy jakiś trigger/event w mysql też tego nie załatwi, ale nie bawiłem się tym i nie jestem pewien czy to działa, musiałbyś poczytać.

z CREATE EVENT to bym uważał, bo nie na wszystkich hostingach jest to dostępne i trzeba mieć odpowiednią wersję bazy (z tego co pamiętam chyba 5.6 albo 5.7 ale nie jestem tu pewien).

Natomiast trigger jest wywoływany dla określonego zdarzenia, np. dla INSERT/UPDATE/DELETE w konkretnej tabeli jako BEFORE/AFTER i służy do czegoś innego - na przykład jestem zwolennikiem unikania definitywnego kasowania danych z bazy i często na DELETE FROM zakładam właśnie trigger żeby BEFORE DELETE skopiować dane do innej tabeli, którą w razie potrzeby można np. co miesiąc, rok itp. czyścić jeśli już na prawdę konieczne jest całkowite usunięcie informacji.

W Twoim wypadku (dot. autora wątku) można faktycznie użyć crona (zakładając oczywiście serwerek Unixowy ale to chyba dziś raczej standard). Możesz np. weryfikować bazę po dacie aktywacji i sprawdzać czy jest tam NULL (co oznaczałoby np. oczekiwanie na aktywację).

0 głosów
odpowiedź 3 czerwca 2017 przez Vento Pasjonat (17,120 p.)
Nie lepiej w bazie umieszczać datę wygaśnięcia kodu później sprawdzić ją w php jeżeli obecna data jest większa od tej w bazie, to wtedy pokazać informacje, że kod wygasł. A w bazie ustawić np. co 24h schedulera, który będzie wykonywał odpowiednią procedurę usuwania takich rekordów z bazy..
komentarz 3 czerwca 2017 przez Nessvet Nowicjusz (230 p.)
A jaki będzie to kod w php ?
komentarz 3 czerwca 2017 przez Vento Pasjonat (17,120 p.)

Taki jaki sobie napiszesz laugh

komentarz 3 czerwca 2017 przez Nessvet Nowicjusz (230 p.)
A jaki mam wprowadzić kod w php co pobiera czas rzeczywisty i porównuje go ze zmienną w bazie danych (a połączenie z bazą danych sam ogarnę) , za bardzo nie wiem za co się za brać
komentarz 3 czerwca 2017 przez dervil Gaduła (3,030 p.)
obejrz filmiki pana Zelenta tam jest jedna lekcja dokładnie opisana na temat czasu
komentarz 4 czerwca 2017 przez Milesq Nałogowiec (32,020 p.)

chyba brakuje ci podstaw... time()+ilość sekund,

potem sprawdzasz czy obcne wywołanie time() jest większe niż data wygaśnięcia jeśli tak to usuwasz

–1 głos
odpowiedź 3 czerwca 2017 przez Chess Szeryf (76,710 p.)
<?php 
$link = new mysqli('localhost','root','','nessvet');
$variable = date('Y-m-d H:i:s',time()+60);
echo $variable;

//$nextWeek = time() + (7 * 24 * 60 * 60);
//date('Y-m-d H:i:s', $nextWeek)

$link_activate = 0; 

// jeśli link nie dotarł, nie potwierdził email'a to: 

  if($link_activate==0){ 
 var_dump(	$link->query(<<<EOD
	create event e_totals 
	 on schedule at "{$variable}"
	 do
	 delete from orzechy;
EOD
));
 
}else{ 
	echo 'Email confirmed, you can create a account!';
} 
 
?>

 

komentarz 4 czerwca 2017 przez efiku Szeryf (75,160 p.)
Człowieku weź się ogarnij...
komentarz 4 czerwca 2017 przez efiku Szeryf (75,160 p.)
Dlaczego tak paskudna odpowiedź jest wybrana jako najlepsza?

Podobne pytania

0 głosów
1 odpowiedź 1,658 wizyt
pytanie zadane 31 grudnia 2016 w PHP przez nielotweb Bywalec (2,240 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 14 października 2019 w PHP przez manager96 Bywalec (2,050 p.)
0 głosów
0 odpowiedzi 78 wizyt
pytanie zadane 1 lipca 2018 w JavaScript przez Bakr Mądrala (6,850 p.)

92,631 zapytań

141,498 odpowiedzi

319,869 komentarzy

62,011 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...