Variable über Session weitergeben

PaZiHH

Grünschnabel
hi,
ich hab mir hier von den tutorials ein Login Script mit Session-IDs installiert. Das Funktioniert soweit wunderbar. nur möchte ich die Variable "Benutzername" Über den Login mit aufnehmen, und diese dann in den folgenden Seiten aufrufen.
Also quasi den Username mit über die Session registrieren und dann per echo $benutzername; in einer darauffolgenden Datei ausgeben.
Der code von der loginseite ist:


PHP:
<?
session_start (); 


$connID = mysql_connect ("$host","$user","$pw") or die ("Keine Verbindung moeglich");
@mysql_select_db ("$db", $connID) or die ("Die Datenbank existiert nicht");


$sql = "SELECT * FROM $tabelle_members WHERE (Benutzername like '$username') AND (Kennwort = '$password')";
$result = mysql_query ($sql, $connID);

if (mysql_num_rows ($result) > 0) {
	
	
  // Ein Datensatz wurde gefunden.
  $datenrichtig = true;
   
  $user_eingeloggt = true; 

    
} else {
  // Die Benutzerdaten waren falsch.
  $datenrichtig = false;
  // Variable $user_eingeloggt erstellen.
  $user_eingeloggt = false;
}

session_register ("user_eingeloggt");
?>

<html>
<head>
<link rel="stylesheet" type="text/css" href="style_admin.css">
<title><?=$title?> - Adminbereich</title>
  <?php if ($datenrichtig) { ?>
  <meta http-equiv="Refresh" content="1; url=index.php?<?=session_name()?>=<?=session_id()?>">
  <?php } ?>
</head>
<body bgcolor=#c0c0c0>
<?php

if ($datenrichtig) { 
  echo "<center><br>Adminbereich von <b>$clan</b><br><br><br>Das Einloggen war erfolgreich.<br>Du wirst nun zu der Adminseite weitergeleitet. Solltest du nicht weitergeleitet werden, klicke [ <a href=index.php?"; ?><?=session_name()?>=<?=session_id()?><? echo ">hier</a> ]";
} else {
  echo "<center><br>Adminbereich von <b>$clan</b><br><br><br>Die angegebenen Benutzerdaten waren falsch!<br>[ <a href=javascript:history.go(-1)>zurück</a> ]";
}

echo "</body>
</html>";
?>

THX schonmal im vorraus :)
 
Mit session_register kannst Du so ziemlich alles in die Session schreiben, was Du willst. Auch den Benutzernamen, das Kennwort oder sonstige Daten aus der Datenbank.
Ansonsten fällt mir an dem Code noch auf, dass Du je nach Fall zwei Variablen den gleichen Wert gibst (daten_richtig und user_eingeloggt) - davon ist meiner Ansicht nach eine überflüssig. Auch wenn das nicht zum Thema gehört.
 
hmm, also einfach unter die bereits gesetzte session, noch ein session_register ?
werd ich nachhe rma ausprobieren. thx :)
 
hmm... das mit der sessin weitergehen geht nun :)
hab ich einfach mit session_register "username"; hinzugefügt - dann ging das...
aber nun hab ich nen anderes prob:
der loggt sich nur über EINEN benutzernamen ein. bei allen anderen sagt der, dss der Username nicht gefunden wurde bzw password falsch... weiss ener woran das liegen könnt?!
 
hmm... gute frage... nein, bin nicht sicher :)
wie könnt ich das denn herausfinden bzw was müsste ich tun?!
(habe noch den quellcode von obene nur eben mit noch ner session register)
 
so :)
ich habs nu geschafft dass sich auch mehrere einlgogen können...
das ist mien php code:

PHP:
<?
session_start();
          $connID = mysql_connect ("$localhost", "$user", "$pw");
@mysql_select_db ("$db", $connID);
$sql = "SELECT * FROM adminzone WHERE (name like '$username') AND (pass = '$password')";
$result = mysql_query ($sql, $connID);
if (mysql_num_rows ($result) > 0) {
  $datenrichtig = true;
  $user_eingeloggt = true; 
} else {
  $datenrichtig = false;
  $user_eingeloggt = false;
}
session_register ("user_eingeloggt");
session_register ("username");
session_register ("id");
session_register ("email");
?>


jedoch hab ich nun das prob.. dass wenn ich auf einer Eingeloggten Seite die Variable $username aufrufen will, IMMER der user mit der ID 1 angezeigt wird. (soweit ich das überblick)
der code von der index seite ist:

PHP:
<?
session_start (); 

if ((session_is_registered ("user_eingeloggt")) AND ($user_eingeloggt))

{
 	
 echo "Du bist geloggt als $username";
 
}
?>


und bei $username wird nun immer der user mit der 1sten ID angezeigt... weisss einer, wo der fehler ist? :(
 
Zurück