hab nen problem mit ner session =/

Murphy_A

Grünschnabel
hi all ...

ich habe da ein kleines problem ... ich gucke schon die ganze zeit was ich flasch mache... lese schon im meinem php buch und google mir die finger wund ... bin mittlerweile verzweifelt ... naja ich stelle dann mal meine frage....


und zwar habe ich ein login die mit session funktioniert ... meine datenbank sieht so aus

PHP:
 CREATE TABLE users ( UserID int(11) PRIMARY KEY auto_increment, 
  UserName varchar(30) NOT NULL default '', UserPass varchar(32) NOT NULL 
  default '', UserSession varchar(32), UserMail varchar(150) NOT NULL default 
  '', UNIQUE KEY NickName (UserName), UNIQUE KEY UserMail (UserMail) )


... dazu kommt nocht eine function.php in der steht meine mysql_connect befehle und
mein get_template kram so dir...

jetzt zu meiner eigentlichen frage

wie difiniere ich eine funktion um über die UserSession meine UserName aus der datenbank auszulesen und es in eine variable difiniere um sie nachher auszugeben ...
 
Ungefaehr sowas sollte Dir helfen koennen:
PHP:
function getusername($uid)
{
 $users=mysql_query("select * from `users` where `id`=".$uid);
 $user=mysql_fetch_assoc($users);
 return $user['username'];
}
Genutzt wird die Funktion dann so:
PHP:
$username=getusername($_SESSION['id']);

Und halte Dich bitte an Gross- und Kleinschreibung.
 
vielen dank für deine schnelle hilfe ...anfangs zeigte er mir ein fehler an die function sieht jetzt so aus ...

function getusername($uid)
{
$users=mysql_query("select * from users where userid ='.$uid' ") or die(mysql_error());
$user=mysql_fetch_assoc($users);

return $user['username'];

}

jetzt ist der fehler zwar weg aber ergibt mir immer noch keine ausgabe =/

woran könnte es denn liegen ? die session funktionier an sich selber das kann es nicht sein .... aber was dann ? =/
 
Hi

es gab noch nen Fehler in deinem Script. Du hast nen Punkt vor $uid angebracht der hier nichts nütz. Des Weiteren schreibst du, dass das Script dir keine Ausgabe liefert.
Mit return gibt er dir bloß den $user['username'] zurückt.

Probier es mal so:

PHP:
function getusername($uid)
   {
     $users=mysql_query("select * from users where userid = '$uid' ") or die(mysql_error());
      $user=mysql_fetch_assoc($users);
  
     return $user['username'];

}

$username = getusername(1);
echo $username;
 
so wird das leider auch nichts ...

aber ich glaube das ihr mich falsch verstanden habt ...

ich möchte gerne eine begrüßung machen ....

da mein login mit einer session gemacht wirde diese auch in der UserSession abgespeichert .... ich weiss gar nicht warum ihr die die userID benutzt ....

ich möchte das wenn ich mich einlogge die Sessions mit einander verglichen werden und anschliessen sollte dann der passende UserName ausgegeben werden ....

....

vielleicht habt ihr ja noch bessere vorschläge wie ich es am besten hinbekomme

danke noch mals =D
 
Funktioniert denn Dennis’ Vorschlag nicht? Dieser erfüllt doch genau deine Erwartungen.
 
Der User muss ja in der Session irgendwie identifiziert werden, optimal ist dafuer eigentlich die ID. Anhand dieser kann man dann, wie in meiner Funktion gezeigt, den Usernamen aus der Datenbank holen. Der Username wird, wie exed schon sagte, von der Funktion nicht ausgegeben sondern nur zurueckgegeben. Darum auch $username=getusername($_SESSION['id']);, der Username steht dann in $username.

Was genau funktioniert denn jetzt nicht? Gibt die Funktion nichts zurueck? Gibt es vielleicht einen Fehler?
 
Wahrscheinlich haben bloß die Anführungszeichen gefehlt. Probier mal folgende Funktion:
PHP:
function getUsername( $sid )
{
	$query = '
		SELECT
		        `username`
		  FROM
		        `users`
		  WHERE
		        `sid` = "'.$sid.'"
		';
	return mysql_result(mysql_query($query), 0);
}
Die Abfrage musst du natürlich noch deinen Bedingungen anpassen.
 
Bei numerischen IDs sollte es doch im Grunde auch ohne gehen. Kann sein, dass ich mich irre, aber ich mein bei Zahlen werden diese nicht benoetigt.
Naja, einen Versuch ist es auf jeden Fall wert.
 
Zurück