[Timereport-dev-se] sessionssystem och databas
Status: Beta
Brought to you by:
kling
|
From: Eric P. <er...@pe...> - 2002-12-07 12:36:50
|
Hallå,
Nu har jag förstört en massa... :)
Jag har bara gjort det lokalt än så länge, tänkte kolla innan jag
comittade det.
Jag har bl.a gjort om users tabellen och sen lagt till en sessions
tabell enligt följande:
CREATE TABLE sessions (
uid int(10) unsigned DEFAULT '0' NOT NULL,
session_id varchar(50) NOT NULL,
timestamp int(10) unsigned DEFAULT '0' NOT NULL,
persistant enum('y','n') DEFAULT 'n' NOT NULL,
PRIMARY KEY (uid, session_id)
);
#
# Table structure for table `users`
#
CREATE TABLE users (
uid int(10) unsigned NOT NULL auto_increment,
username varchar(20) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (uid),
UNIQUE username (username)
);
Det hör förstör ju lite saker, bl.a användarhanteringen, resten fungerar
hjälpligt just nu, tack vara ett fulhack i config.php.
Jag har modifierat index.php så att den visar en loginruta istället för
det vanliga framesetet om man inte loggat in.
När man loggat in etableras en session i sessions tabellen och de
fungerar som tidigare, jag har dock tagit bort användarnamnskollen i
config.php och istället lagt till följande:
$login_shortname = $session['uid'];
$login_longname = $session['username'];
Jag har också lagt till en databasklass som finns i $GLOBALS['db']
fungerar så här lite snabbt:
$db->query('SELECT field FROM table');
while( $db->next_record() ){
echo $db->f('field');
}
föjande funktioner finns i klassen med:
$db->num_rows();
$db->insert_id();
$db->equery(); // Skriver ut senaste sqlfrågan.
Vid databasfel skrivs frågan automatiskt ut samt ev. felmeddelande från
mysql. Den tar oxå sina uppgifter från timereport_localcfg.php,
visserligen på ett fult sätt, men det fungerar.
Vad tror ni? Kan jag comitta det här, det förstör ju rätt mycket,
enklast är nog o dumpa databasen o börja om så... men de kanske inte gör
något? :)
//Eric
|