Ik heb nu de volgende 2 pgSQL tabellen:

CREATE TABLE anime.user (
	id			serial				primary key,
	naam			varchar(16),
	wachtwoord		varchar(40),
	email			varchar(60),
	geactiveerd		boolean				default false,
	datum_aangemeld		date				default now(),
	ip_aangemeld		inet,
	laatst_online		date,
	laatst_ingelogt		date
);

CREATE TABLE anime.users_sessies (
	uid			integer,
	ip			inet,
	code			varchar(40),
	wanneer			date				default now()
);


Ik wil nu dat wanneer user.laatst_ingelogt word geupdate en de tijd daarvoor met de huidige tijd groter is als 3 minuten er in de tabel users_sessies een insert word gedaan...

Hoe zouw ik dit kunnen doen? Dus ik wil niet gewoon een insertje in een PHP bestand maar gewoon op de achtergrond wanneer user.laatst_ingelogt word geupdate.
Paul v/d Knaap schreef op 02.05.2007 22:11
*Roept frank & Remco van Arkelen* ;)


Frank ligt tussen de meiden op het strand en Remco zit met zijn meiden te rijden op de A7:p
mebus schreef op 02.05.2007 22:12
[quote='Paul v/d Knaap schreef op 02.05.2007 22:11']*Roept frank & Remco van Arkelen* ;)


Frank ligt tussen de meiden op het strand en Remco zit met zijn meiden te rijden op de A7:p[/quote]
Op het strand? Zo laat nog :P
Paul v/d Knaap schreef op 02.05.2007 22:17
[quote='mebus schreef op 02.05.2007 22:12'][quote='Paul v/d Knaap schreef op 02.05.2007 22:11']*Roept frank & Remco van Arkelen* ;)


Frank ligt tussen de meiden op het strand en Remco zit met zijn meiden te rijden op de A7:p[/quote]
Op het strand? Zo laat nog :P[/quote]

Frank leeft niet in holland maar ergens aan de andere kant van de wereld:p
Waarom zou je een INSERT willen doen? Je hebt de data al in de tabel anime.users_sessies staan, het is dus volkomen overbodig om dit nogmaals op te gaan slaan.

Het ip-adres sla je zo te zien ook al dubbel op, niet doen.

Bij de kolommen 'wachtwoord' en 'code' verwacht ik een sha1-hash o.i.d. (zie lengte 40), neem dan gewoon een CHAR(40), een sha1 is tenslotte altijd 40 karakters lang.

I.p.v. een date kun je beter een timestamptz nemen. Die slaat ook de tijd en tijdzone op. En het is een PG-timestamp, dat is geen Unix-timestamp die pas begint bij 1970. Zie verder de manual.
haha sorry frank die data types had ik al veranderd in een timestamp:):P En ik zal morgen nog even kijken naar een manier om die tabellen wat beter te maken ja:):P
...en Remco zit met zijn meiden te rijden op de A7:p


w0000t :D...waar héb je het over?¿ :))

Maar, ik heb nog maar weinig toe te voegen, volgens mij is het niet nodig wat je wilt bereiken, maar die informatie heb je hier en op PFZ al gehad.
Ik gebruik die tabel leden_sessies om te kijken of de sessies wel geldig zijn:

$_SESSION['uid']	= $res_a['id'];
$_SESSION['ip']		= $_SERVER['REMOTE_ADDR'];
$_SESSION['code']	= $code;


Maar dit zouw dus ook gewoon op een andere manier kunnen?
Oke, even resume:
Je wilt via je tabel user_sessies kijken of een login nog geldig is / nog bestaat. Bij een entry in die tabel wil je automatisch de datum+tijd in je usertabel bijwerken om zo de laatst_ingelogt-tijd van een gebruiker te bepalen, right?

Als je dit wilt doen ben je er toch met die rule?

Persoonlijk zou ik alle logins loggen (en gewoon laten bestaan), op die manier is met een eenvoudige join de laatste ingelogde tijd zo te bepalen maar dat is geen veilige manier als je daar ook nog iets met validatie wilt doen...
Inderdaad dan ben ik er gewoon met die rule... Maar ik krijg ik dan ook het ip adress en die $code in die rule terecht?

Reageren