Erstmal vielen Dank für das Tutorial "Login mit Hilfe von PHP und mySQL".
Funktioniert soweit alles wunderbar, nur jetzt möchte ich das Script erweitern und stehe vor folgender Frage:
Wie kann ich den angemeldeten Nutzernamen auslesen? :dontknow:
Ich wär ja schon glücklich, wenn das Script mir bei der logged_in.php statt "Sie sind eingeloggt.", "Sie sind eingeloggt als Admin." ausspucken würde.
Wäre super, wenn mir jemand da nen kleinen Tipp geben könnte! :)
Am Besten schreibst du eine neue Funktion auf Basis der logged_in() Funktion. Statt der UserID fragst du einfach den UserNamen aus der Datenbank ab, und gibst diesen zurück.
Al Gerüst sollte dir dies reichen:
function checkUser()
{
$sql = 'Wie in logged_in(), nur statt UserID den Usernamen abfragen';
$result = mysql_query($sql) or die(mysql_error());
$name = 'Usernamen aus dem Abfrageresultat herausholen, z.B. mit mysql_fetch_row()';
return $name;
}
Hoffe mal, das funktioniert so...bin selbst n' Noob. Wenn du mehr Hilfe brauchst, wirst du dich schon wieder melden ;).
Hi,
fall es noch jemand interessiert. Ich habe das so gelöst:
$sessionid = session_id();
$result = mysql_query("Select * from users where UserSession = '$sessionid'") or die(mysql_error());
if ($result)
{
$row= mysql_fetch_array($result);
$name=$row["UserName"]; //$name wurde der Username zugewissen
mysql_free_result($result);
}
echo "<p>Hallo <strong>$name</strong><br>bist eingelogt</p>";
echo '<p><a href="index.php?id=logout">Ausloggen</a></p>';
Noch einfacher gehts, indem du die sessionhelpers-Datei um diese Funktion erweiterst:
function get_userid()
{
$sql="SELECT id
FROM tab_user
WHERE sessionid='".session_id()."' LIMIT 1";
$result= mysql_query($sql);
$user= mysql_fetch_assoc($result);
return $user['id'];
}
Dann kannst du, einen include 'sessionhelpers.inc.php'; vorausgesetzt, mithilfe von
$meineid=get_userid();
die User ID des eingeloggten Users abfragen. Dann kann man aus jeder PHP-Datei, die vom eingeloggten User aufgerufen wird, die User ID abfragen...
Analog dazu kann man beim jeweiligen User z.B. ein Admin-Flag im Datensatz setzen (also z.B. 0 bei Normalanwender, 1 bei Admin) , die sessionhelpers.inc.php um diese Prozedur erweitern
function get_userstatus()
{
$sql="SELECT status
FROM tab_user
WHERE sessionid='".session_id()."' LIMIT 1";
$result= mysql_query($sql);
$status= mysql_fetch_assoc($result);
return $user['status'];
}
und dann über
$userstatus=get_userstatus();
if($userstatus=0)
{
echo "Ich bin kein Admin";
}
else
{
echo "Ich bin ein Admin!";
}
das entsprechende ausgeben...
um welche Spalte muss ich denn dann noch die DB erweitern????
UNd wie kann man sich da jetzt regiestrieren???