• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

teile einer session in verbindung mit der db als array registrieren und auslesen

Status
Für weitere Antworten geschlossen.

XraYSoLo

Senior HTML'ler
hallo,

der titel hört sich vielleicht etwas komplex und/oder unverständlich an, aber ich habe folgendes problem:

ein datenbankgestützter login muss her. zur erstellung von jenem habe ich mit weithin am code von bens tutorial im developers-guide orientiert, aber nahezu alles für mich nochmal selber geschrieben. ich bin jetzt an einem punkt, an dem eine session registriert werden muss, damit der user auch auf geschützten seiten dauerhaft identifizierbar bleibt. das habe ich folgendermaße versucht:

PHP:
/* Wenn Abgleich mit Datenbank erfolgreich, den Session-Wert auf 1 setzen */
$_SESSION['state_login'] = true;

bis hier hin geht alles.

nur müssen jetzt noch user-spezifische daten wie die id oder mail hinzugefügt werden:

PHP:
/* User-spezifische Daten zur Session hinzufügen */
$user = mysql_fetch_object($result);
$_SESSION['name_db_1'] = $user->name_db_1;
$_SESSION['id_db_1'] = $user->id_db_1;

funktioniert auch (zumindest ohne fehlermeldung), am vorhergehenden SQL ($result) liegts nicht.
auf der geschützten seite möchte ich jetzt den user gleichmal begrüßen, ungefähr so:

PHP:
/* Zum Test den Usernamen ausgeben */
echo "Hallo" .$user->name_db_1;

und da kelmmts. wieso gibt er den usernamen nicht aus?
hoffe mal, ich hab' das einigermaßen verständlich formuliert.
thx schonmal

Nils aka XraYSoLo
 
Werbung:
Hallo :>
wenn du den wert von $user->name_db_1 in die session schreibst, dann solltest du ihn von dort auch wieder holen.

echo "Hallo" .$_SESSION['name_db_1'];
 
Werbung:
Bastian Born schrieb:
stimmt, du musst
session_start();
drinnen haben

denkste, ich hab' das vergessen? nein. falls es dir entfallen sein sollte, das ist ein CODE-AUSSCHNITT...

EDIT: komischerweise wird alles, was bloß ziffern oder zahlen beinhaltet fehlerlos ausgegeben, nur nicht konstrukte aus buchstaben und zeichen...

Nils aka XraYSoLo
 
Werbung:
zeig mal die kompletten scripts, und mach mal überall ein var_dump($_SESSION); und guck dir das an
 
das einzige was mir dazu noch einfällt, wäre dass die session nich gestartet wird, weils in der php.ini nich so angegeben is.
war bei mir in der schule ma so. in der phpinfo stand zwar dass es 'enabled' is, aber ich musst in der ini dennoch was ändern und dann ging's.
den genauen punkt weiß ich nun nimmer. hatte da einfach nach 'session' gesucht...

aber vielleicht erstmal das machen, was niklas sagt.
 
so,

PHP:
var_dump($_SESSION);

hat ergeben, dass einige felder leer zu sein scheinen (=> NULL), frägt sich nur, warum, blick in phpmyadmin sagt mir, dass sie voll sind...

Nils aka XraYSoLo
 
Werbung:
vielleicht gibts ein problem mit dem feldnamen weil du es als object ausliest. überprüf mal ob du beim objekt alle felder auslesen kannst ;)
 
niklasboelter schrieb:
überprüf mal ob du beim objekt alle felder auslesen kannst ;)

gerade das hakt ja. habs jetzt mit

PHP:
mysql_fetch_object();
mysql_fetch_array();
mysql_fetch_field();
mysql_fetch_row();

versucht, werden überall nur die felder mit zahlen angegeben.

Nils aka XraYSoLo
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben