PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : session_start() funktioniert nicht ganz


Wesley
11.10.2004, 19:19:18
hallo
ich habe ein login script gebastelt, und bis jetzt funktioniert es schon (fast) wie es soll,.
da ich mich mit cookies nicht auskenne und ich nicht ewig die $PHPSESSID über die url weitergeben will habe ich das so gemacht dass beim login die phpsessid in die mysql tabelle eingetragen wird in der auch die user stehen, sozusagen als ein extra feld.
bei jeden neuem anmelden überprüft er erst den angemeldeten namen ob dieser bereits eine solche id in der tabelle stehen hzat, wenn dies nicht der fall ist, oder wenn die session nicht mehr aktuel ist wird sie erneuert.
nur habe ich ein problem:
php scheint nicht besonders schnell zu sein, zumindest ist die mysql datenbank schneller, und beim login muss ich erst 2 mal auf aktualisieren klicken, damit er beim login endlich eine session id rausrückt...
einfacher würde es natürlich gehen mit
session start();
session_encode("username","userrechte");
und sie dann mit session_decode() auf den anderen seiten wieder abrufen, aber ich hab echt keine ahnung wie ich das anstellen soll, wie gesagt, ich habe keine ahnung wie das geht, ich bin selber überrascht dass der weg mit der mysql tabelle funktioniert^^

echja:
die daten für den jeweiligen account werden unter der tabelle user in den spalten: 'name' 'passwort' 'typ'(das ist der user typ, 1 für admin, 2 für moderator, 3 für super user, 4 für normalen user) 'phpsessid' 'registerdatum' gespeichert, wie kann ich es anstellen dass er das passwort verschlüsselt übermittelt, und bei jeder passwort abfrage das passwort entschlüsselt?
also, ohne ssl, gibt es einen vefehl der den wert einer variable verschlüsseln udn entschlüsseln kann?

xabbuh
11.10.2004, 20:34:43
Wenn in deinem PHP session.use_cookies und session.use_trans_sid eingeschaltet sowie session.use_only_cookies ausgeschaltet ist, brauchst du dir über die Weitergabe der Session praktisch keine Gedanken machen.
Dann wird zunächst versucht die Session per Cookie zu übermitteln. Sollte das nicht möglich sein, weil der User beispielsweise Cookies verbietet, wird die Session-Id automatisch an die URL angehangen.

Wesley
11.10.2004, 21:19:51
und wie stelle ich das an?
auf meinem heimserver würde ich jetzt einfach in der php.ini rumstochern, aber ich will das projekt auch irgendwann ins internet stellen, und ich glaube kaum dass mir mein provider freudig den pfad zu seiner php ini freigibt^^

xabbuh
11.10.2004, 21:43:24
Ob er dir den Pfad freigibt, hängt natürlich immer davon ab, wieviel du für den Webspace hinblätterst. Allerdings hast du Recht, dass dieses bei den meisten relativ günstigen Angeboten nicht möglich ist. Ich denke allerdings, dass die von mir genannten Einstellungen so in dieser Art bei den meisten Anbietern anzutreffen sein werden. Möglicherweise kann man sich dieses auch vom Provider einstellen lassen.
Die aktuellen Einstellungen kannst du über eine phpinfo abrufen.

Wesley
11.10.2004, 22:26:34
stimmt, du müsstest recht haben...
ich versuch einfach mal mein glück und lade es hoch^^


EDIT
bei mir geht es, sogar um einiges besser als die methode mit mysql(3 mal auf aktualisieren XD)
danke