Session IDs

Hm... Also ich muss den Thread doch nochmal neu auffrischen, da meine eigentliche Frage nicht beantwortet wurde und ich es selbst einfach nicht richtig hinbekomm.
Also:
Ich hab gefrag wie ich es schaff, die Daten von den Usern auszulesen und anzeigen zu lassen <--- nicht schwer... jetzt kommts :
Ich hab sozusagen eine Art profil von jedem user.
Ich hab den Nickname, die e-mail, ICQ, herkunft etc. für alles auch verschiedene Felder in einer Tabelle (auch id) . Jetzt stellt sich mir die Frage wie ich es hinbekomm so ein profil zu erstellen wo alles von EINEM user ausgelesen wird... also nur die Daten die auch zu ihm gehören. Seine e-mail, ICQ etc.

Ich bin soweit das ich das über die das Feld id laufen lassen muss, weiß nur nicht wie der genaue Code aussehen könnte.

Wäre nett wenn mir da jetzt jemand die passende Antwort liefern könnte :)

MFG sonicks
 
hi,
na du hast doch sicher die ID des Users beim einloggen als Sessionvariable gespeichert (sollte man machen, hab ich dir auch vorgeschlagen). Die Session Variablen werden für gewöhnlich (wenn register_global on ist -> Webservereinstellung) von PHP automatisch zur Verfügung gestellt. Wenn nicht, könnte man mit $id = $_SESSION[userid]; auf die Sessionvariable userid zugreifen. Danach setzt du einfach einen mysql_query ab, indem du nur die Daten von diesem User abfragst:

$userid = $_SESSION[userid];
$userProfile = mysql_fetch_array(mysql_query("SELECT * FROM usertable WHERE userid = '$userid'"));

So, dann kannst du einfach das Profil des eingeloggten Users durchforsten.

Wenn es nicht der User der eingeloggt ist, dessen Daten du angezeigt bekommen willst, dann ist das ganze auch kein Session Problem. Willst du nämlich eine Admin Oberfläche für deine Redaktuere oder was auch immer erstellen, dann musst du eine Tabelle basteln, alle User dort ausgeben, und bei jedem User einen Link setzen, der an ein Script gerichtet ist und die entsprechende ID enthält. Im Folgescript kannst du dann anhand der ID in ähnlicher Weise wie oben die Daten des Users ausgeben und Möglichkeiten geben, die Daten zu verändern, nach session_start(); versteht sich :)

Das ist dann im Prinzip ein normales Script, nur dass es durch Sessions und Logins vor unbefugten Veränderungen geschützt ist.

Ciao, F.o.G.
 
Zuletzt bearbeitet:
danke... so hab ichs mir auch vorgestellt. Aber es hat nicht wirklich geklappt. Jetzt hab ich nur ein Problem damit... es kommt bei mir ein Fehler, den ich nicht wirklich kapier.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sonicks/public_html/www/skow/logged/includes/showprofil.php on line 13



PHP:
<?php
session_start();
?>
<?php 
$host = "localhost"; 
$user = "bla"; 
$pw = "bla"; 
$db = "bla"; 

$conn = mysql_connect($host,$user,$pw); 
mysql_select_db($db,$conn);

$userProfile = mysql_fetch_array(mysql_query("SELECT * FROM zugriff WHERE userid = '$userid'")); //linie 13  

echo $userProfile; 
 

mysql_close($conn); 

?>
 
ich bin mir nicht sicher, aber kann es sein, dass
PHP:
$userProfile = mysql_fetch_array(mysql_query("SELECT * FROM zugriff WHERE userid = '$userid'"));
PHP:
$userProfile = mysql_fetch_array(mysql_query("SELECT * FROM zugriff WHERE userid = '$userid'",$conn));
heissen muss?
 
nein, daran kanns net liegen. Wenn $conn weg lässt nimmt sich PHP glaub ich die erste Verbindung (genau weiß ich das nicht, ich lass mich korrigieren).

Zeig mal, wie die Struktur deiner Tabelle aussieht.

Übrigens: mit echo $userProfile; wist du nur array auf dem Bildschirm lesen, denn $userProfile ist ein assoziatives Array. Wenn schon dann so: echo $userProfile[spaltenname];

Ciao, F.o.G.
 
hmpf

sorry leute, aber das klappt absolut nicht...


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/sonicks/public_html/www/skow/logged/includes/showprofil.php on line 13



^^ hab keine ahnung was der fehler bedeutet
 
Doch, die Verbindung zur Datenbank ist anscheinend korrekt. Da MySQL ja auch einen Fehler zurück gibt, wurde das Query von MySQL bearbeitet.

Sonicks: du solltest mal die Struktur deiner User Tabelle posten.
ich will sehen, oib bei dir die Spalte userid überhaupt exisitiert. Ein solcher MySQL Fehler, wie du ihn nennst, kommt dann zustande, wenn man ein Query mit falschen Tabellennamen oder falschen Spaltennamen abschickt. Das Query an sich sieht nämlich in Ordnung aus, weshalb ich glaube, dass deine Bezeichner irgendwie falsch sein müssen.

Ciao, F.o.G.
 
nun gut, das mit dem fehler hab ich selbst jetzt herraus gefunden... jetzt wird auch kein fehler mehr angezeigt. Nur das echo genau so wenig.
Tabellen struktur:

CREATE TABLE zugriff (
id int(11) NOT NULL auto_increment,
name varchar(20) NOT NULL default '',
pass varchar(20) NOT NULL default '',
level tinyint(4) NOT NULL default '0',
email varchar(255) NOT NULL default '',
hp varchar(255) NOT NULL default '',
herkunft varchar(255) NOT NULL default '',
icq varchar(255) NOT NULL default '',
hobbies varchar(255) NOT NULL default '',
signatur varchar(255) NOT NULL default '',
geschlecht varchar(255) NOT NULL default '',
aim varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

jetziger code:

<?php
session_start();
?>
<?php
$host = "localhost";
$user = "xx";
$pw = "xx";
$db = "xx";

$conn = mysql_connect($host,$user,$pw);
mysql_select_db($db,$conn);

$userProfile = mysql_fetch_array(mysql_query("SELECT * FROM zugriff WHERE id = '$userid'"));

echo $userProfile[spaltenname];



mysql_close($conn);

?>

da muss ich jetzt irgendwas am echo verändern. Hab auch schon nachgeschaut, aber nix gefunden.
 
Bei
echo $userProfile[spaltenname];
stand 'spaltenname' tatsächlich für den Namen einer Spalte. Da es in deiner Tabelle keine Spalte mit dem Namen 'spaltenname' gibt, kann auch nichts ausgegeben werden. Versuch stattdessen einfach:

echo $userProfile[name];

Für eine erweiterte Ansicht:

echo $userProfile[name]." - ".$userProfile[ email]." - aus: ".$userProfile[herkunft];

Hehe ... Ich denke das wird funktionieren. Nimm die Aussagen von mir nicht allzu wörtlich, ich kenn mich in deinem System net aus. Ich weiß nicht, wie du Spalten benennst, deshalb kommen bei mir so Namen wie Spaltenname rein, die du selber anpassen musst. Ohne Informationen deinerseits, erfinde ich mir eigene Infos.

Ich hoffe das klappt jetzt,
Ciao, F.o.G.
 
Zurück