phpbar.de logo

Mailinglisten-Archive

Re: [php] Einfaches Beispiel
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [php] Einfaches Beispiel



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"



Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive