Mailinglisten-Archive |
Alexander Schott schrieb: > Konkretes Problem: > > ich möchte 3 Variablen (vorname, nachname, email) in eine Datenbank > schreiben, von der Datenbank einen Index (z.B. 1234) zurückbekommen und dann > später über den Index die 3 Variablen wieder auslesen. Hallo... ich glaube, ich habe gerade sowas gebastelt was du suchst, allerdings ist es ein bisschen umfangreicher. Ich setze es hier ein für den geschützten Kundenbereich von http://www.autoshop.de und hoffe es hilft dir vielleicht weiter. Es benutzt Cookies und erzeugt u.a. auch SessionIDs, nur werden diese leider NOCH nicht aus der DB gelöscht nach einer bestimmten Expire-Time. Hat dafuer jemand eine Lösung ? Ich dachte an ein kleines C Programm das alle 2h Stunden über CRON gestartet wird. Die Datenbank enthält u.a. folgende Tables: # # Table structure for table 'session' # CREATE TABLE session ( session varchar(50), uid int(11), time bigint(21) ); # # Table structure for table 'user' # CREATE TABLE user ( user varchar(30), password varchar(30), name varchar(30), str varchar(30), ort varchar(30), plz int(11), email varchar(30), telefon varchar(30), telefax varchar(30), ID int(11) DEFAULT '0' NOT NULL auto_increment, PRIMARY KEY (ID) ); ------------------------------------------------------------------------- Die Variablen $user und $pass kommen aus dem Formular indem username und passwort abfragt werden. <? $db = mysql_connect("dbhost","dbuser","dbpass") or die ("Permission denied"); mysql_select_db("autoshop") or die( "Error opening database"); /* Username / Passwort überprüfen */ $result = mysql_query ("select password,id,name from user where user='$user'"); $row = mysql_fetch_row($result); if(!$row) DIE ("USER/Passwort falsch!"); if($row[0]!=$pass) DIE ("Passwort falsch!"); $uid = $row[1]; $time = date("U"); $name = $row[2]; /* ** Session ID erzeugen und in DB sowie Cookie schreiben */ srand((double)microtime()*1000000); $prefix = rand(); $prefix = "FS$prefix"; $setsesid = uniqid($prefix); SetCookie("sesid",$setsesid); $insert = mysql_query ("insert into session values('$setsesid',$uid,$time)"); /* Datenbank schliessen, alles hat mal ein Ende */ mysql_close($db); ?> Jetzt kannst du auf den folgenden Seiten auf die Variable $sesid zugreifen und brauchst sie nicht mehr in jeder url mit zu übergeben. Beispiel für eine der folgenden Seiten auf die nur angemeldete User zugreifen können: <? $db = mysql_connect("dbhost","dbuser","dbpass") or die ("Permission denied"); mysql_select_db("autoshop") or die( "Error opening database"); $result = mysql_query ("select uid from session where sesid='$sesid'"); $row = mysql_fetch_row($result); if(!$row) DIE ("Seite ist ungültig - bitte <a href=\"http://www.autoshop.de/kunden/\">melden Sie sich neu an</a>."); $result = mysql_query ("select * from user where id=$row[0]"); $row = mysql_fetch_row($result); // z.b. Username des angemeldeten Users ausgeben... echo $row[3]; /* Datenbank schliessen, alles hat mal ein Ende */ mysql_close($db); ?> -- Daniel Stüwe Administration/Programmierung Tel: 04131/87218-33 ENS Network Service GmbH Fax: 04131/87218-55 Stadtkoppel 26 http://www.eunetz.de D-21337 Lüneburg http://www.autoshop.de "Linux is like a Wigwam, No Gates, No Windows, Apache inside"
php::bar PHP Wiki - Listenarchive