WinFuture-Forum.de: Session Daten Aktualisieren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Session Daten Aktualisieren


#1 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 22. Februar 2006 - 21:05

Hi,

Ich habe ein klrines Login script in dem die Daten wie z.B. Username in eine Session geschrieben werden. Nun könnte aber z.b. ein User seinen Usernamen ändern und dafür müssen die Session Daten Aktualisiert werden. Ich habe gedacht es geht so wie es unten steht nur bekommen ich so garnichts angezeigt. Ich hatte mir es so gedacht das ich dieses script in jeder Internen datei include damit der Quellcode etwas kürzer wird!

Aktualisierung
<?php

$connectionid = mysql_connect ("localhost", "user", "******");  
if (!mysql_select_db ("tabelle", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

$sql = "SELECT ".  
	"Id, Email, Kennwort, Username,  ".  
  "FROM ".  
	"benutzerdaten ".  
  "WHERE `Id`='$_SESSION["user_id"]';"  
  
  $result = mysql_query ($sql);  
  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["Id"];  
  $_SESSION["user_email"] = $data["Email"];  
  $_SESSION["user_kennwort"] = $data["Kennwort"];  
  $_SESSION["user_username"] = $data["Username"];  

?>


Interndatei
<?php
include ("aktualisierung.php")
echo $_SESSION["user_username"];
?>

Alle daten werden natürlich zuvor in der Mysql Tabelle geändert!
0

Anzeige



#2 Mitglied ist offline   Yaenzi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 139
  • Beigetreten: 17. November 03
  • Reputation: 0
  • Wohnort:Ludwigsburg

geschrieben 26. Februar 2006 - 21:17

Spontan: erste Idee:

Wo ist das session_start(); ?
0

#3 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 27. Februar 2006 - 09:18

Meinst du das so? Auf jeden Fall geht es so auch nicht!
<?php  
// Session starten 
session_start (); 

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "user", "*****");  
if (!mysql_select_db ("DB", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

"SELECT ".  
	"Id, Nickname, Nachname, Vorname ".  
  "FROM ".  
	"benutzerdaten ".  
  "WHERE ".  
	"Id =$_SESSION["user_id"];".	
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array;  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["Id"];  
  $_SESSION["user_nickname"] = $data["Nickname"];  
  $_SESSION["user_nachname"] = $data["Nachname"];  
  $_SESSION["user_vorname"] = $data["Vorname"];  
 
?>
PS: das script dazu is aus nen Tutorial

Dieser Beitrag wurde von Skiller bearbeitet: 27. Februar 2006 - 09:21

0

#4 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 11:49

Kann mir niemand helfen?
0

#5 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 13:26

In der DB-Abfrage vergleichst du einen Eintrag (Id) mit einer nicht vorhandenen Variable $_SESSION["user_id"].
0

#6 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 13:30

Beitrag anzeigenZitat (axx: 28.02.2006, 13:26)

In der DB-Abfrage vergleichst du einen Eintrag (Id) mit einer nicht vorhandenen Variable $_SESSION["user_id"].

Wie kriege ich das dann hin? Es muss ja schon von jeden user speziell die daten holen.

Ich hbae jetzt mal Id = $Session['user_id'] durch Id = 1 getauscht und jetzt wird mir "m" angezeigt!

Dieser Beitrag wurde von Skiller bearbeitet: 28. Februar 2006 - 13:46

0

#7 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 13:51

Lass' mal sehen, ob ich das richtig verstanden habe: Der Benutzer ist angemeldet und will nichts weiter tun als seine Benutzerdaten zu ändern. Dazu loggt er sich ein, ändert alles, loggt sich aus, später mit neuen Namen wieder ein. Soweit richtig?

Du erzeugst eine Session in dem Augenblick, wenn der Benutzer sich anmeldet, nachdem Benutzername und Passwort für gut befunden wurden. Der Benutzername wird mit POST übergeben.
Die Anmeldedaten werden in die Session übernommen. Da der Benutzername (ich vermute Nickname) eindeutig ist, kannst du den entsprechenden Datensatz in der DB finden und aktualisieren.
<?php  
// Session starten
session_start ();
$_SESSION['Nickname'] = $_POST['Nickname'];

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "user", "*****");  
if (!mysql_select_db ("DB", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

"SELECT ".  
	"Id, Nickname, Nachname, Vorname ".  
  "FROM ".  
	"benutzerdaten ".  
  "WHERE ".  
	"Id =$_SESSION["Nickname"];".	
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array;  

  // usw.  

?>


so in etwa...
0

#8 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 14:01

Klar kann er sich ausloggen und dann wider einlogen. Wäre auch sinnvoll. Aber ich hätte es gern so das die SESSION Daten während der User Eingelogt ist Aktualisiert werden. Ist das nicht möglich?
0

#9 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 14:09

Der Sinn erschließt sich mir gerade nicht. Aber klar, du identifizierst den Benutzer anhand der Anmeldedaten, holst dir evtl. noch zusätzlich benötigte aus dem Datensatz, und kannst dann nch Lust und Laune den Datensatz oder Sessionvariablen aktualisieren. Da sehe ich gar kein Problem. Wie das im Einzelnen in deinem Fall umzusetzen ist, kann ich schlecht sagen, dafür müssen wohl mehr Informationen her.
0

#10 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 14:13

War mir klar das du das Antworten würdest. Naja ich hab oben scho mal gepostet http://www.tutorials.de/forum/php-tutorial...t-sessions.html. Mit diesen Tutorial habe ich das Loginscript gemacht (Kopiert). Also das is genauso, ich wollt hier nich alles posten da es sehr lang ist!
0

#11 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 14:46

Na ja, ich kann jetzt unmöglich das ganze tutorial durchgehen, ich muss noch arbeiten nebenbei ;)
Für das Ändern der Benutzerdaten wirst du ein zweites Formular brauchen. Die von dort übergebenen Variablen $_POST['neuer_name'] oder $_POST['wasauchimmer'] kannst du weiterverwenden im Sinne von
$_SESSION['user_nickname'] = $_POST['neuer_name'];

oder
mysql_query("UPDATE benutzerdaten SET Nickname = '".$_POST['neuer_name']."' WHERE Id = '".$_SESSION["user_id"]."'");

0

#12 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 14:54

So weit war mir das alles auch klar ich bräuchte nee möglichkeit das die SESSION Daten immer aktuell sind ohne das der Benutzer sich wieder neu Einloggen muss! Das ändern habe ich bereits, mir fehlt nur eine möglichkeit die die session daten erneuert ohne das der benutzer sich wieder neu anmelden muss.

Ps: Ich bin auch aufer Arbeit aber hab grad nich ganz so viel zu tun (FOS Praktikum).

Dieser Beitrag wurde von Skiller bearbeitet: 28. Februar 2006 - 14:55

0

#13 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 15:10

Hmm, ich bin nicht sicher, ob ich es heute noch begreife. Nach dem Anmelden werden die Benutzerdaten als Session-Variablen gespeichert. Damit stehen sie dir jederzeit zur Verfügung. Du kannst sie auch jederzeit aktualisieren (überschreiben), wenn du z.B. willst, dass die Anzeige des Benutzernamens sofort aktuell ist. Vor dem Ausloggen müssen die Änderungen im Datensatz aktualisiert werden. Nichts Besonderes eigentlich, vielleicht kann ich es bloß nicht erklären.
0

#14 Mitglied ist offline   Skiller 

  • Gruppe: aktive Mitglieder
  • Beiträge: 164
  • Beigetreten: 06. September 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Negenborn

geschrieben 28. Februar 2006 - 15:17

Meinst du es folgender maßen:

während der Benutzer einlogt und z.b. seinen namen ändert wird nur folgendes gemacht
$SESSION['user_id'] = $POST['username']


und wenn der Benutzer nen logout macht wird es in der Db gespeichert?

mysql_query("UPDATE benutzerdaten SET Nickname = '".$_POST['neuer_name']."' WHERE Id = '".$_SESSION["user_id"]."'");

0

#15 Mitglied ist offline   axx 

  • Gruppe: aktive Mitglieder
  • Beiträge: 487
  • Beigetreten: 19. Mai 05
  • Reputation: 0

geschrieben 28. Februar 2006 - 15:32

Die Aktualisierung des Datensatzes kann natürlich sofort erfolgen, sollte es sogar, falls der Benutzer "vergisst", sich ordendlich auszuloggen. Denn wenn er den Browser schließt, sind die Session und alle darin gespeicherten Daten weg. Also besser beides sofort erledigen.
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0