Username anhand der ID ausgeben

cille

Erfahrenes Mitglied
hi ho,
habe noch ein Problem ;)
will einwenig mein Login Erweitern,
Wenn man sich einlogt soll da stehen,
Sie sind eingelogt als:
$username

Und das ist mein Problem, habe das Forum durchsucht und bin zwar auf einiges gestoßen,
aber es bringt mich nicht weiter.
Habe die Datenbank ID als SESSION ID gespeichert:
PHP:
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
$result = mysql_query($sql);   
$data = mysql_fetch_array($result);   
$_SESSION["user_id"] = $data["id"];

Jetzt ist mein Problem,
dass ich anhand der ID nur,
die ID ausgeben kann :(
Will aber daraus den Usernamen des Eingelogten ausgeben.

Hier mal der code wo es rein soll:
PHP:
	} else {
			include("config.php");
			
			echo "<b>Eingelogt als:</b><br>";
			echo "<i>".$username."</i>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?interface'>Profil</a>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?logout=yes'>Ausloggen</a>";
}

Hoffe Ihr könnt mir weiter helfen
 
versuchs mal so:

PHP:
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
$result = mysql_query($sql);   
$data = mysql_fetch_array($result);   
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_username"] = $data["username"];
PHP:
} else {
            include("config.php");
            
            echo "<b>Eingelogt als:</b><br>";
            echo "<i>".$_SESSION["user_username"]."</i>";
            echo "<br>";
            echo "<br>";
            echo "<a href='index.php?interface'>Profil</a>";
            echo "<br>";
            echo "<br>";
            echo "<a href='index.php?logout=yes'>Ausloggen</a>";
}
 
funktioniert leider net,
da dies 2 verschieden Datein sind:

system/login.php
PHP:
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
$result = mysql_query($sql);   
$data = mysql_fetch_array($result);   
$_SESSION["user_id"] = $data["id"];

show/login.php
PHP:
			include("config.php");
			$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
			$result = mysql_query($sql);   
			$data = mysql_fetch_array($result);   
			
			echo "<b>Eingelogt als:</b><br>";
			echo "<i>".."</i>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?interface'>Profil</a>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?logout=yes'>Ausloggen</a>";

Obwohl ich die $_SESSION mitnehme
PHP:
header ("Location: ../index.php?interface" . session_name() . '=' . session_id());
 
hi,

um die session mitzunehmen, musst du
session_start();
auch in der show/login.php eintragen.

Wenn du darin die checkuser.php verwendest, sollte das eigentlich schon geschehen sein.

Dann musste nur noch den usernamen aus der Datenbank auslesen, die ID hast du ja.

MfG
paddz

[EDIT]
hab noch vergessen den sql string musst du da auch umschreiben:

von

PHP:
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
nach
PHP:
$sql = "SELECT username FROM user WHERE id=".$_SESSION['user_id'].";";

[/EDIT]
 
Zuletzt bearbeitet:
Sessions brauchst du nicht übergeben das ist ja der Vorteil daran du musst nur session_start() auf den entsprechenden php-Seiten haben. Die Sessions werden dann auf dem Server gespeichert und sind für jede Seite einfach mit $_Session['blablubb'] verfügbar...
 
Meines Erachtens wurde bereits alles Wissenswerte genannt. Wo genau kommst du nicht weiter, Cille?
 
Also du schreibst in deine php-Dateien in die erste Zeile session_start() also in jede wo du mit Sessions arbeitest ...

Dann kannst de die eine Abfrage so schreiben:

PHP:
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
$result = mysql_query($sql);   
$data = mysql_fetch_array($result);   
$_SESSION['username'] = $data['username'];

und in der anderen:

PHP:
} else {
            include("config.php");
            
            echo "<b>Eingelogt als:</b><br>";
            echo "<i>".$_SESSION['username']."</i>";
            echo "<br>";
            echo "<br>";
            echo "<a href='index.php?interface'>Profil</a>";
            echo "<br>";
            echo "<br>";
            echo "<a href='index.php?logout=yes'>Ausloggen</a>";
}

natürlich muss dort auch dann in der 1. Zeile session_start() stehen

Dann sollte es klappen.
 
Danke für die Antowrt bin echt schon am verzweifeln,
also, erstmal zum grundgerüst meiner HP.
Ich habe eine index.php über die alles gemacht wird,
habe verschiedene unterordner

images -> Bilder
system -> nicht sehbare aber programierte .php datein
show -> sichtbare datein

Wenn man sich z.b. einloggt kommt man danach auf
index.php?interface

d.h. system und show ordner werden nur includet,
aber ich will ja den Usernamen bzw, später auch alles ausgeben und dies einzelnd (Benutzerdaten und so)
Aber ich kriege irgendwie nicht mal hin ein
Eingelog als: $username
komischerweise ^^

Hier nochmal meine Index und Login daten: (Schreibe nur PHP code)
index.php
PHP:
// Oberer Teil der index.php
ob_start();
session_start();

// Obere mitte der index.php
include("show/login.php");

// Mitte der index.php

// Standard Links wie in der Navigation
include("show/news.php");
include("show/buchanfrage.php");
include("show/job.php");
include("show/booking.php");
include("show/bewerben.php");
include("show/kartei.php");
include("show/fotographen.php");
include("show/galerie.php");
include("show/infos.php");
include("show/faq.php");
include("show/impressum.php");
include("show/guestbook.php");
include("show/agb.php");

// Login includes
include("show/interface.php");
include("system/logout.php");
			
// bei Fehleranzeige z.B.: index.php?fehler=1
include("system/fehler.php");


// Ende der index.php
ob_end_flush ();

show/login.php
PHP:
// Oberer Teil der show/login.php
session_start ();
if(!isset($_SESSION["user_id"])) { // wurd Logout nicht gedrückt, wird geprüft ob die Session "user_id" nicht gesetzt ist und das Formular eingeblendet
	echo "<hr>";
	echo "<div id='h1'> <b>Login</b> </div>";

// Unterer Teil der show/login.php
echo "<a href='index?lost_pw' value='Neues Password anfordern'>Password vergessen</a>";
	} else {
			include("config.php");
			$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
			$result = mysql_query($sql);   
			$data = mysql_fetch_array($result);   
			
			echo "<hr>";
			
			echo "<b>Eingelogt als:</b><br>";
			echo "<i>".$_SESSION["username"]."</i>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?interface'>Profil</a>";
			echo "<br>";
			echo "<br>";
			echo "<a href='index.php?logout=yes'>Ausloggen</a>";
			
			echo "<hr>";
}

system/login.php
PHP:
ob_start();
// Datenbankverbindung aufbauen  
include("../config.php"); 
if (!mysql_select_db("$dbname", $dbconnect)) {  
  die ("Keine Verbindung zur Datenbank");  
}  
$sql = "SELECT id, username, nachname, vorname, email, password FROM user WHERE username = '".$_REQUEST["username"]."'";
$result = mysql_query($sql);   

if (mysql_num_rows ($result) > 0)  {   
  // Benutzerdaten in ein Array auslesen.   
    $data = mysql_fetch_array($result);   
    if($data["password"] == md5($_REQUEST["password"])) {
        session_start();
  // Sessionvariablen erstellen und registrieren   
        $_SESSION["user_id"] = $data["id"];
				$_SESSION["user_username"] = $date["username"];
				$_SESSION["user_name"] = $date["nachname"];
				$_SESSION["user_vorname"] = $date["vorname"];
     
        header ("Location: ../index.php?interface"; 
				//echo "Erfolgreich Eingeloggt";
    } else {
        echo "Falsches Passwort!";
    }
} else {
   header ("Location: ../index.php?fehler=1");   
	 // echo "Es ist ein Fehler aufgetreten!";
} 
ob_end_flush();

Hoffe Ihr könnt damit was anfangen. ^^
Also ich will die Userdaten sozusagen angezeigt bekommen :)

[EDIT]
Das einzige was funktioniert auszugeben ist komischerweise nur
$_SESSION["user_id];
das andere funktioniert nicht
 
Zuletzt bearbeitet:
hi,

PHP:
  // Sessionvariablen erstellen und registrieren   
        $_SESSION["user_id"] = $data["id"];
                $_SESSION["user_username"] = $date["username"];
                $_SESSION["user_name"] = $date["nachname"];
                $_SESSION["user_vorname"] = $date["vorname"];

du schreibst da, dass die Daten aus dem Array date[] kommen.
Das sollte aber data[] heisen.

PHP:
  // Sessionvariablen erstellen und registrieren   
        $_SESSION["user_id"] = $data["id"];
                $_SESSION["user_username"] = $data["username"];
                $_SESSION["user_name"] = $data["nachname"];
                $_SESSION["user_vorname"] = $data["vorname"];

Auserdem startest du in der show/login.php die session nochmal obwohl du in der index.php,
wo die die login.php includierst die session schon gestartet hast.
Einmal reicht da glaube ich.

MfG
paddz
 
Zuletzt bearbeitet:
Zurück