WinFuture-Forum.de: Login Auf Bestimmte Seite - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Login Auf Bestimmte Seite


#1 Mitglied ist offline   Skiller 

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

geschrieben 19. Januar 2006 - 09:08

Hi,
Habe mir mit folgenden script einen Login gemacht.

Die Mysql Tabelle
 CREATE TABLE benutzerdaten ( 
  Id Int(11) NOT NULL auto_increment, 
  Nickname VarChar(50) NOT NULL default '', 
  Kennwort VarChar(50) NOT NULL default '', 
  Nachname VarChar(50) NOT NULL default '', 
  Vorname VarChar(50) NOT NULL default '', 
  PRIMARY KEY (Id) 
)



Zum Benutzer hinzufügen
<?php  
// Definition der Benutzer  
$benutzer[0]["Nickname"] ="admin";  
$benutzer[0]["Kennwort"] = "admin";  
$benutzer[0]["Nachname"] = "Mustermann";  
$benutzer[0]["Vorname"] = "Max";  

$benutzer[1]["Nickname"] = "test";  
$benutzer[1]["Kennwort"] = "abc";  
$benutzer[1]["Nachname"] = "Kunze";  
$benutzer[1]["Vorname"] = "Martin";  

// Sie können an dieser Stelle beliebig viele Benutzer anlegen.  
// Achten Sie dabei nur auf die Fortführung der Nummer.  

// Aufbau der Datenbankverbindung  
$connectionid  = mysql_connect ("localhost", "root", "");  
if (!mysql_select_db ("LoginSystem", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

// Zuerst alle Datensätze löschen um keine Dopplungen zu bekommen.  
mysql_query ("DELETE FROM benutzerdaten");  

// Daten eintragen  
while (list ($key, $value) = each ($benutzer))  
{  
  // SQL-Anweisung erstellen  
  $sql = "INSERT INTO ". 
	"benutzerdaten (Nickname, Kennwort, Nachname, Vorname) ". 
  "VALUES ('".$value["Nickname"]."', '". 
					   md5 ($value["Kennwort"])."', '". 
					   $value["Nachname"]."', '". 
					   $value["Vorname"]."')";  
  mysql_query ($sql);  

  if (mysql_affected_rows ($connectionid) > 0)  
  {  
	echo "Benutzer erfolgreich angelegt.<br>\n";  
  }  
  else  
  {  
   echo "Fehler beim Anlegen der Benutzer.<br>\n";  
  }  
}  
?>


Das Loginformular
<?php session_start (); ?> 
<html>  
<head>  
  <title>Login</title>  
</head>  

<body>  
<?php  
if (isset ($_REQUEST["fehler"]))  
{  
  echo "Die Zugangsdaten waren ungültig.";  
}  
?>  
<form action="login.php" method="post">  
  Name: <input type="text" name="name" size="20"><br>  
  Kennwort: <input type="password" name="pwd" size="20"><br>  
  <input type="submit" value="Login">  
</form>  
</body>  
</html>


Die Login Datei
<?php  
// Session starten 
session_start (); 

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

$sql = "SELECT ".  
	"Id, Nickname, Nachname, Vorname ".  
  "FROM ".  
	"benutzerdaten ".  
  "WHERE ".  
	"(Nickname like '".$_REQUEST["name"]."') AND ".  
	"(Kennwort = '".md5 ($_REQUEST["pwd"])."')";  
$result = mysql_query ($sql);  

if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["Id"];  
  $_SESSION["user_nickname"] = $data["Nickname"];  
  $_SESSION["user_nachname"] = $data["Nachname"];  
  $_SESSION["user_vorname"] = $data["Vorname"];  

  header ("Location: intern.php");  
}  
else  
{  
  header ("Location: formular.php?fehler=1");  
}  
?>


Checkuser Datei
<?php  
session_start ();  
if (!isset ($_SESSION["user_id"]))  
{  
  header ("Location: formular.php");  
}  
?>


Interner Bereich
<?php  
include ("checkuser.php");  
?>  
<html>  
<head>  
  <title>Interne Seite</title>  
</head>  
<body>  
  BenutzerId: <?php echo $_SESSION["user_id"]; ?><br>  
  Nickname: <?php echo $_SESSION["user_nickname"]; ?><br>  
  Nachname: <?php echo $_SESSION["user_nachname"]; ?><br>  
  Vorname: <?php echo $_SESSION["user_vorname"]; ?>  
  <hr>  
  <a href="logout.php">Ausloggen</a>  
</body>  
</html>


Logout
<?php  
// Wird ausgeführt um mit der Ausgabe des Headers zu warten.  
ob_start ();  

session_start ();  
session_unset ();  
session_destroy ();  

header ("Location: formular.php");  
ob_end_flush ();  
?>


Meine Frage ist jetzt wenn ich eine Neu Seite anlege z.B. Intern2.php und der User wenn er eingelogt ist auf die Seite geht und auf dieser dann den Logout macht kann mann diese Seite man so speichern das sie beim nächsten mal direkt gewählt wird? Also der User direkt auf Intern2 landet (die intern2 is genauso wie die intern)
0

Anzeige



#2 Mitglied ist offline   tobiasndw 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.800
  • Beigetreten: 24. September 03
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 19. Januar 2006 - 10:47

Du speicherst einfach bei jedem Zugriff auf eine Seite diese in der Datenbank für den angemeldeten Benutzer.

Wenn sich der Benutzer jetzt anmeldet, wird aus der Datenbank gelesen auf welcher Seite der Benutzer zuletzt war und dann kannst du dorthin weiterleiten.
0

#3 Mitglied ist offline   Skiller 

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

geschrieben 19. Januar 2006 - 10:52

Ok so hab ich ich mir es fats auch schon gedacht.
Thx

aba kannste mir noch nen beispiel geben?
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. Januar 2006 - 11:23

[bissel OT]
Ich würde die Passwörter nicht im Klartext in die Datenbank speichern. Nimm am besten die php funktion md5 um eine einseitige Verschlüsselung einzusetzen. Dann kannst du den Datentyp in CHAR(32) ändern.
[/bissel OT]
0

#5 Mitglied ist offline   Skiller 

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

geschrieben 19. Januar 2006 - 13:07

Ja ok aber es währe nicht schlecht wenn ich nen komplettes beispeil hätte weil ich hab da nich so die ahnung von. Ich mache ja auch nur mit dem script rum weil ich das lernen will!
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. Januar 2006 - 13:26

Beitrag anzeigenZitat (Skiller: 19.01.2006, 13:07)

Ja ok aber es währe nicht schlecht wenn ich nen komplettes beispeil hätte weil ich hab da nich so die ahnung von. Ich mache ja auch nur mit dem script rum weil ich das lernen will!


Upps...vergiss es. Ich war eben irgendwie blind wie ein Fisch.

Das Script benutzt schon md5 für die Passwörter. Dann kannst du nur noch in der Datenbank, wie schon erwähnt, diese Änderung machen: Kennwort Char(32) NOT NULL default ''

Sorry, für das Missverständnis...
0

#7 Mitglied ist offline   Skiller 

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

geschrieben 19. Januar 2006 - 14:51

ja ok
trotzdem weiß ich jetzt irrgend wie noch nich wie ich das mahcen kann.
Ich meine was muss ich jetzt in der Datenbank anlegen wo muss ich noch nen script hinzufügen oder so?

Dieser Beitrag wurde von Skiller bearbeitet: 19. Januar 2006 - 14:51

0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.686
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 19. Januar 2006 - 15:02

In die Tabelle legst du eine zusätzliche Spalte an. z.B."letzte_seite".

Am Anfang jeder deiner Seiten, musst du dir den Namen der Seite merken.
Das erreicht du mit:
$_SERVER['PHP_SELF']

Jetzt hast du zwei Möglichkeiten die mir spontan einfallen:
Entweder du speichert die Seite in die Session $_SESSION['letzte_seite'] = $_SERVER['PHP_SELF'] und speicherst die Seite beim logout in die Datenbank.
Oder du speicherst es direkt beim Aufruf jeder Seite in die Datenbank.

Edit: Hier noch das SQL-Statement, wenn du es nicht wissen solltest. Könnte ungefähr so aussehen
UPDATE benutzerdaten SET letzte_seite = $die_letzte_seite WHERE KEY = $id

Dieser Beitrag wurde von Witi bearbeitet: 19. Januar 2006 - 15:06

0

#9 Mitglied ist offline   Skiller 

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

geschrieben 19. Januar 2006 - 15:04

Ok so werd ich es ma versuchen
0

#10 Mitglied ist offline   Skiller 

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

  geschrieben 05. Februar 2006 - 13:52

Hi,
ich hab es jetzt mehrer male Probiert kriege es aber einfach nich hin. Könnt ihr das nicht vielleicht mal dierekt ins script einfügen und mir dann posten? Bitte!

Dieser Beitrag wurde von Skiller bearbeitet: 06. Februar 2006 - 09:31

0

Thema verteilen:


Seite 1 von 1

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